In order to allow handlers directly read upcalls from datapath, we need to support per-handler netlink socket for each vport in datapath. This commit makes this happen. Also, it is guaranteed to be backward compatible with previous branch.
Showing the changes to include/uapi/linux (1 of 4 files). Show all
Unified · Split
| @@ -118,6 +118,9 @@ struct ovs_vport_stats { · 117 unmodified lines | ||
| 118 | 118 | /* Allow last Netlink attribute to be unaligned */ |
| 119 | 119 | #define OVS_DP_F_UNALIGNED (1 << 0) |
| 120 | 120 | |
| 121 | +/* Allow datapath to associate multiple Netlink PIDs to each vport */ | |
| 122 | +#define OVS_DP_F_VPORT_PIDS (1 << 1) | |
| 123 | + | |
| 121 | 124 | /* Fixed logical ports. */ |
| 122 | 125 | #define OVSP_LOCAL ((__u32)0) |
| 123 | 126 | |
| @@ -203,9 +206,10 @@ enum ovs_vport_type { · 79 unmodified lines | ||
| 203 | 206 | * this is the name of the network device. Maximum length %IFNAMSIZ-1 bytes |
| 204 | 207 | * plus a null terminator. |
| 205 | 208 | * @OVS_VPORT_ATTR_OPTIONS: Vport-specific configuration information. |
| 206 | − * @OVS_VPORT_ATTR_UPCALL_PID: The Netlink socket in userspace that | |
| 207 | − * OVS_PACKET_CMD_MISS upcalls will be directed to for packets received on | |
| 208 | − * this port. A value of zero indicates that upcalls should not be sent. | |
| 209 | + * @OVS_VPORT_ATTR_UPCALL_PID: The array of Netlink socket pids in userspace | |
| 210 | + * among which OVS_PACKET_CMD_MISS upcalls will be distributed for packets | |
| 211 | + * received on this port. If this is a single-element array of value 0, | |
| 212 | + * upcalls should not be sent. | |
| 209 | 213 | * @OVS_VPORT_ATTR_STATS: A &struct ovs_vport_stats giving statistics for |
| 210 | 214 | * packets sent or received through the vport. |
| 211 | 215 | * |
| @@ -228,7 +232,8 @@ enum ovs_vport_attr { · 16 unmodified lines | ||
| 228 | 232 | OVS_VPORT_ATTR_TYPE, /* u32 OVS_VPORT_TYPE_* constant. */ |
| 229 | 233 | OVS_VPORT_ATTR_NAME, /* string name, up to IFNAMSIZ bytes long */ |
| 230 | 234 | OVS_VPORT_ATTR_OPTIONS, /* nested attributes, varies by vport type */ |
| 231 | − OVS_VPORT_ATTR_UPCALL_PID, /* u32 Netlink PID to receive upcalls */ | |
| 235 | + OVS_VPORT_ATTR_UPCALL_PID, /* array of u32 Netlink socket PIDs for */ | |
| 236 | + /* receiving upcalls */ | |
| 232 | 237 | OVS_VPORT_ATTR_STATS, /* struct ovs_vport_stats */ |
| 233 | 238 | __OVS_VPORT_ATTR_MAX |
| 234 | 239 | }; |