X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fvport.h;h=995889c382b455554ccf35dab3229ebfd338fb82;hb=6b900de4efd368be88ef3db88b1eff8f835a7cf7;hp=8325ee1a78ff982b474e430aeb12b37ed0672f5c;hpb=be7cd27e44258bdb3c4e7dd8fd7389b5db56d55a;p=sliver-openvswitch.git diff --git a/datapath/vport.h b/datapath/vport.h index 8325ee1a7..995889c38 100644 --- a/datapath/vport.h +++ b/datapath/vport.h @@ -94,9 +94,6 @@ struct vport { struct ovs_vport_stats offset_stats; }; -#define VPORT_F_REQUIRED (1 << 0) /* If init fails, module loading fails. */ -#define VPORT_F_TUN_ID (1 << 1) /* Sets OVS_CB(skb)->tun_id. */ - /** * struct vport_parms - parameters for creating a new vport * @@ -122,12 +119,6 @@ struct vport_parms { * struct vport_ops - definition of a type of virtual port * * @type: %OVS_VPORT_TYPE_* value for this type of virtual port. - * @flags: Flags of type VPORT_F_* that influence how the generic vport layer - * handles this vport. - * @init: Called at module initialization. If VPORT_F_REQUIRED is set then the - * failure of this function will cause the module to not load. If the flag is - * not set and initialzation fails then no vports of this type can be created. - * @exit: Called at module unload. * @create: Create a new vport configured as specified. On success returns * a new vport allocated with ovs_vport_alloc(), otherwise an ERR_PTR() value. * @destroy: Destroys a vport. Must call vport_free() on the vport but not @@ -143,11 +134,6 @@ struct vport_parms { */ struct vport_ops { enum ovs_vport_type type; - u32 flags; - - /* Called at module init and exit respectively. */ - int (*init)(void); - void (*exit)(void); /* Called with ovs_mutex. */ struct vport *(*create)(const struct vport_parms *); @@ -205,7 +191,8 @@ static inline struct vport *vport_from_priv(const void *priv) return (struct vport *)(priv - ALIGN(sizeof(struct vport), VPORT_ALIGN)); } -void ovs_vport_receive(struct vport *, struct sk_buff *); +void ovs_vport_receive(struct vport *, struct sk_buff *, + struct ovs_key_ipv4_tunnel *); void ovs_vport_record_error(struct vport *, enum vport_err_type err_type); /* List of statically compiled vport implementations. Don't forget to also @@ -217,4 +204,10 @@ extern const struct vport_ops ovs_gre64_vport_ops; extern const struct vport_ops ovs_vxlan_vport_ops; extern const struct vport_ops ovs_lisp_vport_ops; +static inline void ovs_skb_postpush_rcsum(struct sk_buff *skb, + const void *start, unsigned int len) +{ + if (skb->ip_summed == CHECKSUM_COMPLETE) + skb->csum = csum_add(skb->csum, csum_partial(start, len, 0)); +} #endif /* vport.h */