History

openvswitch: Allow each vport to have an array of 'port_id's.

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.

Alex Wang committed 12 years ago

Commit 5cd667b1 parent f6e67534 files · +148 −16Browse files

Showing the changes to include/uapi/linux (1 of 4 files). Show all

Unified · Split

include/uapi/linux/openvswitch.h+9−4
@@ -118,6 +118,9 @@ struct ovs_vport_stats { · 117 unmodified lines
118118 /* Allow last Netlink attribute to be unaligned */
119119 #define OVS_DP_F_UNALIGNED (1 << 0)
120120
121+/* Allow datapath to associate multiple Netlink PIDs to each vport */
122+#define OVS_DP_F_VPORT_PIDS (1 << 1)
123+
121124 /* Fixed logical ports. */
122125 #define OVSP_LOCAL ((__u32)0)
123126
@@ -203,9 +206,10 @@ enum ovs_vport_type { · 79 unmodified lines
203206 * this is the name of the network device. Maximum length %IFNAMSIZ-1 bytes
204207 * plus a null terminator.
205208 * @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.
209213 * @OVS_VPORT_ATTR_STATS: A &struct ovs_vport_stats giving statistics for
210214 * packets sent or received through the vport.
211215 *
@@ -228,7 +232,8 @@ enum ovs_vport_attr { · 16 unmodified lines
228232 OVS_VPORT_ATTR_TYPE, /* u32 OVS_VPORT_TYPE_* constant. */
229233 OVS_VPORT_ATTR_NAME, /* string name, up to IFNAMSIZ bytes long */
230234 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 */
232237 OVS_VPORT_ATTR_STATS, /* struct ovs_vport_stats */
233238 __OVS_VPORT_ATTR_MAX
234239 };