-struct net_bridge_port {
- u16 port_no;
- struct datapath *dp;
- struct net_device *dev;
- struct kobject kobj;
- char linkname[IFNAMSIZ];
- struct list_head node; /* Element in datapath.ports. */
+/**
+ * struct ovs_skb_cb - OVS data in skb CB
+ * @vport: The datapath port on which the skb entered the switch.
+ * @flow: The flow associated with this packet. May be %NULL if no flow.
+ * @ip_summed: Consistently stores L4 checksumming status across different
+ * kernel versions.
+ * @tun_id: ID of the tunnel that encapsulated this packet. It is 0 if the
+ * packet was not received on a tunnel.
+ * @vlan_tci: Provides a substitute for the skb->vlan_tci field on kernels
+ * before 2.6.27.
+ */
+struct ovs_skb_cb {
+ struct vport *vport;
+ struct sw_flow *flow;
+#ifdef NEED_CSUM_NORMALIZE
+ enum csum_type ip_summed;
+#endif
+ __be64 tun_id;
+#ifdef NEED_VLAN_FIELD
+ u16 vlan_tci;
+#endif
+};
+#define OVS_CB(skb) ((struct ovs_skb_cb *)(skb)->cb)
+
+/**
+ * struct dp_upcall - metadata to include with a packet to send to userspace
+ * @cmd: One of %ODP_PACKET_CMD_*.
+ * @key: Becomes %ODP_PACKET_ATTR_KEY. Must be nonnull.
+ * @userdata: Becomes %ODP_PACKET_ATTR_USERDATA if nonzero.
+ * @sample_pool: Becomes %ODP_PACKET_ATTR_SAMPLE_POOL if nonzero.
+ * @actions: Becomes %ODP_PACKET_ATTR_ACTIONS if nonnull.
+ * @actions_len: Number of bytes in @actions.
+*/
+struct dp_upcall_info {
+ u8 cmd;
+ const struct sw_flow_key *key;
+ u64 userdata;
+ u32 sample_pool;
+ const struct nlattr *actions;
+ u32 actions_len;