X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fdatapath.h;h=15a989892862a99392a70e261bd581edc2cf3e41;hb=0c58c0c4da31b554e88be581cca39d314ded9b6b;hp=befa55cbe78583f73520bddd89464b66934c4a51;hpb=254f2dc8e3eb18debf4a8f238b9c87cf4d4dbd3f;p=openvswitch diff --git a/datapath/datapath.h b/datapath/datapath.h index befa55cb..15a98989 100644 --- a/datapath/datapath.h +++ b/datapath/datapath.h @@ -20,8 +20,10 @@ #include #include "checksum.h" +#include "compat.h" #include "flow.h" #include "dp_sysfs.h" +#include "vlan.h" struct vport; @@ -100,18 +102,26 @@ struct datapath { * 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. + * @tun_id: ID of the tunnel that encapsulated this packet. It is 0 if the * @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 + * @csum_start: Stores the offset from which to start checksumming independent + * of the transport header on all kernel versions. * 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; + __be64 tun_id; #ifdef NEED_CSUM_NORMALIZE enum csum_type ip_summed; + u16 csum_start; +#endif +#ifdef NEED_VLAN_FIELD + u16 vlan_tci; #endif - __be64 tun_id; }; #define OVS_CB(skb) ((struct ovs_skb_cb *)(skb)->cb)