Commit 285eeb3
dpif: Maintain upcall_pid, mtu and hash.
The commit in the fixes tag extended struct dpif_execute with an
upcall_pid member.
This member was left uninitialized in dpif_execute_helper_cb(),
leading to Open vSwitch providing the kernel with a PID for which
it does not have a listener, we fix this by extending the
execute_helper_aux struct to include the previous dpif_execute struct
which we use to carry over various values such as the mtu, hash and
upcall_pid.
This condition is caught by one of the existing system-traffic
tests which is extended to explicitly check for presence of lost
upcalls in the datapath, however only with linux kernel >= 6.17.0-5.5
and gcc < 15.
Fixes: 0d9dc8e ("dpif-netlink: Provide original upcall pid in 'execute' commands.")
Fixes: 2713022 ("dpif-netlink: Allow MRU packet attribute.")
Fixes: 0442bfb ("ofproto-dpif-upcall: Echo HASH attribute back to datapath.")
Fixes: f9d3039 ("dpif: Fix use of uninitialized execute hash.")
Signed-off-by: MJ Ponsonby <[email protected]>
Signed-off-by: Ilya Maximets <[email protected]>1 parent 7dc1b3c commit 285eeb3
1 file changed
+4
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1161 | 1161 | | |
1162 | 1162 | | |
1163 | 1163 | | |
1164 | | - | |
1165 | 1164 | | |
1166 | 1165 | | |
| 1166 | + | |
1167 | 1167 | | |
1168 | 1168 | | |
1169 | 1169 | | |
| |||
1199 | 1199 | | |
1200 | 1200 | | |
1201 | 1201 | | |
1202 | | - | |
| 1202 | + | |
1203 | 1203 | | |
1204 | 1204 | | |
1205 | 1205 | | |
| |||
1235 | 1235 | | |
1236 | 1236 | | |
1237 | 1237 | | |
1238 | | - | |
1239 | 1238 | | |
1240 | | - | |
1241 | | - | |
1242 | | - | |
| 1239 | + | |
1243 | 1240 | | |
1244 | 1241 | | |
1245 | 1242 | | |
| |||
1287 | 1284 | | |
1288 | 1285 | | |
1289 | 1286 | | |
1290 | | - | |
1291 | 1287 | | |
| 1288 | + | |
1292 | 1289 | | |
1293 | 1290 | | |
1294 | 1291 | | |
| |||
0 commit comments