X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=include%2Fopenvswitch%2Ftunnel.h;h=c535a50a51b2d5ee3773a0a3cb7bd094ee5d6689;hb=0d0673857b5b2a50f6aef62e0f042795d9893690;hp=44facfae6cc10b423e74ce6d9c944d388ef0dccc;hpb=e16a28b5854823e2d67099d49f7690235162b555;p=sliver-openvswitch.git diff --git a/include/openvswitch/tunnel.h b/include/openvswitch/tunnel.h index 44facfae6..c535a50a5 100644 --- a/include/openvswitch/tunnel.h +++ b/include/openvswitch/tunnel.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2008, 2009, 2010 Nicira Networks. + * Copyright (c) 2008, 2009, 2010, 2011 Nicira, Inc. * * This file is offered under your choice of two licenses: Apache 2.0 or GNU * GPL 2.0 or later. The permission statements for each of these licenses is @@ -41,26 +41,37 @@ #define OPENVSWITCH_TUNNEL_H 1 #include -#include "openvswitch/datapath-protocol.h" +#include -#define TNL_F_CSUM (1 << 1) /* Checksum packets. */ -#define TNL_F_IN_KEY_MATCH (1 << 2) /* Store the key in tun_id to match in flow table. */ -#define TNL_F_OUT_KEY_ACTION (1 << 3) /* Get the key from a SET_TUNNEL action. */ -#define TNL_F_TOS_INHERIT (1 << 4) /* Inherit the ToS from the inner packet. */ -#define TNL_F_TTL_INHERIT (1 << 5) /* Inherit the TTL from the inner packet. */ -#define TNL_F_PMTUD (1 << 6) /* Enable path MTU discovery. */ -#define TNL_F_HDR_CACHE (1 << 7) /* Enable tunnel header caching. */ -#define TNL_F_IPSEC (1 << 8) /* Traffic is IPsec encrypted. */ - -/* This goes in the "config" member of struct odp_port for tunnel vports. */ -struct tnl_port_config { - __aligned_be64 in_key; - __aligned_be64 out_key; - __u32 flags; - __be32 saddr; - __be32 daddr; - __u8 tos; - __u8 ttl; +/* OVS_VPORT_ATTR_OPTIONS attributes for tunnels. + * + * OVS_TUNNEL_ATTR_DST_IPV4 is required for kernel tunnel ports, all other + * attributes are optional. + * For flow-based tunnels, only the OVS_TUNNEL_ATTR_DST_PORT is useful. + */ +enum { + OVS_TUNNEL_ATTR_UNSPEC, + OVS_TUNNEL_ATTR_FLAGS, /* 32-bit TNL_F_*. */ + OVS_TUNNEL_ATTR_DST_IPV4, /* Remote IPv4 address. */ + OVS_TUNNEL_ATTR_SRC_IPV4, /* Local IPv4 address. */ + OVS_TUNNEL_ATTR_OUT_KEY, /* __be64 key to use on output. */ + OVS_TUNNEL_ATTR_IN_KEY, /* __be64 key to match on input. */ + OVS_TUNNEL_ATTR_TOS, /* 8-bit TOS value. */ + OVS_TUNNEL_ATTR_TTL, /* 8-bit TTL value. */ + OVS_TUNNEL_ATTR_DST_PORT, /* 16-bit UDP port, used by VXLAN. */ + __OVS_TUNNEL_ATTR_MAX }; +#define OVS_TUNNEL_ATTR_MAX (__OVS_TUNNEL_ATTR_MAX - 1) + +#define TNL_F_CSUM (1 << 0) /* Checksum packets. */ +#define TNL_F_TOS_INHERIT (1 << 1) /* Inherit ToS from inner packet. */ +#define TNL_F_TTL_INHERIT (1 << 2) /* Inherit TTL from inner packet. */ +/* Bit 3 was previously used for Don't Fragment inheritance. " */ +#define TNL_F_DF_DEFAULT (1 << 4) /* Set DF bit if inherit off or + * not IP. */ +/* Bit 5 was previously used for path MTU discovery. " */ +/* Bit 6 is reserved since it was previously used for Tunnel header caching. */ +/* Bit 7 was previously used for IPsec tunnel ports. */ + #endif /* openvswitch/tunnel.h */