X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fdatapath.h;h=a7795105f37ad3fc0f6c307584eb0b0c7bcdb471;hb=76f1c218bd84e44666c5a0ae54d543dbce42c376;hp=176282bd40ef7a71964222c0dd4a3266777090fb;hpb=982b88105d0a82ab90b233bf68e4e51ac9cddd23;p=openvswitch diff --git a/datapath/datapath.h b/datapath/datapath.h index 176282bd..a7795105 100644 --- a/datapath/datapath.h +++ b/datapath/datapath.h @@ -22,6 +22,7 @@ #include "checksum.h" #include "flow.h" #include "dp_sysfs.h" +#include "vlan.h" struct vport; @@ -56,7 +57,8 @@ struct dp_stats_percpu { /** * struct datapath - datapath for flow-based packet switching * @rcu: RCU callback head for deferred destruction. - * @dp_idx: Datapath number (index into the dps[] array in datapath.c). + * @dp_ifindex: ifindex of local port. + * @list_node: Element in global 'dps' list. * @ifobj: Represents /sys/class/net//brif. Protected by RTNL. * @drop_frags: Drop all IP fragments if nonzero. * @n_flows: Number of flows currently in flow table. @@ -75,7 +77,8 @@ struct dp_stats_percpu { */ struct datapath { struct rcu_head rcu; - int dp_idx; + int dp_ifindex; + struct list_head list_node; struct kobject ifobj; int drop_frags; @@ -102,6 +105,8 @@ struct datapath { * 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; @@ -110,6 +115,9 @@ struct ovs_skb_cb { 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)