mirror of
https://github.com/openvswitch/ovs
synced 2025-09-02 07:15:17 +00:00
datapath: More flexible kernel/userspace tunneling attribute.
Following patch breaks down single ipv4_tunnel netlink attribute into individual member attributes. It will help when we extend tunneling parameters in future. Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com> Bug #14611
This commit is contained in:
@@ -282,13 +282,30 @@ enum ovs_key_attr {
|
||||
OVS_KEY_ATTR_ARP, /* struct ovs_key_arp */
|
||||
OVS_KEY_ATTR_ND, /* struct ovs_key_nd */
|
||||
OVS_KEY_ATTR_SKB_MARK, /* u32 skb mark */
|
||||
OVS_KEY_ATTR_TUNNEL, /* Nested set of ovs_tunnel attributes */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
OVS_KEY_ATTR_IPV4_TUNNEL, /* struct ovs_key_ipv4_tunnel */
|
||||
#endif
|
||||
OVS_KEY_ATTR_TUN_ID = 63, /* be64 tunnel ID */
|
||||
__OVS_KEY_ATTR_MAX
|
||||
};
|
||||
|
||||
#define OVS_KEY_ATTR_MAX (__OVS_KEY_ATTR_MAX - 1)
|
||||
|
||||
enum ovs_tunnel_key_attr {
|
||||
OVS_TUNNEL_KEY_ATTR_ID, /* be64 Tunnel ID */
|
||||
OVS_TUNNEL_KEY_ATTR_IPV4_SRC, /* be32 src IP address. */
|
||||
OVS_TUNNEL_KEY_ATTR_IPV4_DST, /* be32 dst IP address. */
|
||||
OVS_TUNNEL_KEY_ATTR_TOS, /* u8 Tunnel IP ToS. */
|
||||
OVS_TUNNEL_KEY_ATTR_TTL, /* u8 Tunnel IP TTL. */
|
||||
OVS_TUNNEL_KEY_ATTR_DONT_FRAGMENT, /* No argument, set DF. */
|
||||
OVS_TUNNEL_KEY_ATTR_CSUM, /* No argument. CSUM packet. */
|
||||
__OVS_TUNNEL_KEY_ATTR_MAX
|
||||
};
|
||||
|
||||
#define OVS_TUNNEL_KEY_ATTR_MAX (__OVS_TUNNEL_KEY_ATTR_MAX - 1)
|
||||
|
||||
/**
|
||||
* enum ovs_frag_type - IPv4 and IPv6 fragment type
|
||||
* @OVS_FRAG_TYPE_NONE: Packet is not a fragment.
|
||||
@@ -365,21 +382,6 @@ struct ovs_key_nd {
|
||||
__u8 nd_tll[6];
|
||||
};
|
||||
|
||||
/* Values for ovs_key_ipv4_tunnel->tun_flags */
|
||||
#define OVS_TNL_F_DONT_FRAGMENT (1 << 0)
|
||||
#define OVS_TNL_F_CSUM (1 << 1)
|
||||
#define OVS_TNL_F_KEY (1 << 2)
|
||||
|
||||
struct ovs_key_ipv4_tunnel {
|
||||
__be64 tun_id;
|
||||
__u32 tun_flags;
|
||||
__be32 ipv4_src;
|
||||
__be32 ipv4_dst;
|
||||
__u8 ipv4_tos;
|
||||
__u8 ipv4_ttl;
|
||||
__u8 pad[2];
|
||||
};
|
||||
|
||||
/**
|
||||
* enum ovs_flow_attr - attributes for %OVS_FLOW_* commands.
|
||||
* @OVS_FLOW_ATTR_KEY: Nested %OVS_KEY_ATTR_* attributes specifying the flow
|
||||
|
Reference in New Issue
Block a user