Commit 1dc94dd
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 e5db1c6 commit 1dc94dd
1 file changed
+4
-7
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1160 | 1160 | | |
1161 | 1161 | | |
1162 | 1162 | | |
1163 | | - | |
1164 | 1163 | | |
1165 | 1164 | | |
| 1165 | + | |
1166 | 1166 | | |
1167 | 1167 | | |
1168 | 1168 | | |
| |||
1196 | 1196 | | |
1197 | 1197 | | |
1198 | 1198 | | |
1199 | | - | |
| 1199 | + | |
1200 | 1200 | | |
1201 | 1201 | | |
1202 | 1202 | | |
| |||
1232 | 1232 | | |
1233 | 1233 | | |
1234 | 1234 | | |
1235 | | - | |
1236 | 1235 | | |
1237 | | - | |
1238 | | - | |
1239 | | - | |
| 1236 | + | |
1240 | 1237 | | |
1241 | 1238 | | |
1242 | 1239 | | |
| |||
1284 | 1281 | | |
1285 | 1282 | | |
1286 | 1283 | | |
1287 | | - | |
1288 | 1284 | | |
| 1285 | + | |
1289 | 1286 | | |
1290 | 1287 | | |
1291 | 1288 | | |
| |||
0 commit comments