X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fvport.h;h=30b0cc6b36e6972386d7347d5f0efd96996d9102;hb=e4af561537cfea7d35d2075596b4474847876794;hp=7a3d527ae00051dc0e49c6d52e3b1085050189aa;hpb=780e620781c5237ab6c26d5edbc7edb5b4953c70;p=openvswitch diff --git a/datapath/vport.h b/datapath/vport.h index 7a3d527a..30b0cc6b 100644 --- a/datapath/vport.h +++ b/datapath/vport.h @@ -10,6 +10,7 @@ #define VPORT_H 1 #include +#include #include #include @@ -83,6 +84,7 @@ struct vport_percpu_stats { u64 rx_packets; u64 tx_bytes; u64 tx_packets; + seqcount_t seqlock; }; struct vport_err_stats { @@ -110,7 +112,8 @@ struct vport { #define VPORT_F_REQUIRED (1 << 0) /* If init fails, module loading fails. */ #define VPORT_F_GEN_STATS (1 << 1) /* Track stats at the generic layer. */ -#define VPORT_F_TUN_ID (1 << 2) /* Sets OVS_CB(skb)->tun_id. */ +#define VPORT_F_FLOW (1 << 2) /* Sets OVS_CB(skb)->flow. */ +#define VPORT_F_TUN_ID (1 << 3) /* Sets OVS_CB(skb)->tun_id. */ /** * struct vport_ops - definition of a type of virtual port @@ -219,8 +222,7 @@ void vport_free(struct vport *); * area was allocated on creation. This allows that area to be accessed and * used for any purpose needed by the vport implementer. */ -static inline void * -vport_priv(const struct vport *vport) +static inline void *vport_priv(const struct vport *vport) { return (u8 *)vport + ALIGN(sizeof(struct vport), VPORT_ALIGN); } @@ -235,8 +237,7 @@ vport_priv(const struct vport *vport) * the result of a hash table lookup. @priv must point to the start of the * private data area. */ -static inline struct vport * -vport_from_priv(const void *priv) +static inline struct vport *vport_from_priv(const void *priv) { return (struct vport *)(priv - ALIGN(sizeof(struct vport), VPORT_ALIGN)); } @@ -250,5 +251,6 @@ extern struct vport_ops netdev_vport_ops; extern struct vport_ops internal_vport_ops; extern struct vport_ops patch_vport_ops; extern struct vport_ops gre_vport_ops; +extern struct vport_ops capwap_vport_ops; #endif /* vport.h */