openvswitch.h: Improve comments.
[sliver-openvswitch.git] / include / linux / openvswitch.h
index 087655c..ea9c6f6 100644 (file)
@@ -182,7 +182,7 @@ enum ovs_vport_type {
        OVS_VPORT_TYPE_UNSPEC,
        OVS_VPORT_TYPE_NETDEV,   /* network device */
        OVS_VPORT_TYPE_INTERNAL, /* network device implemented by datapath */
-       OVS_VPORT_TYPE_PATCH,    /* virtual tunnel connecting two vports */
+       OVS_VPORT_TYPE_PATCH = 100, /* virtual tunnel connecting two vports */
        OVS_VPORT_TYPE_GRE,      /* GRE tunnel */
        OVS_VPORT_TYPE_CAPWAP,   /* CAPWAP tunnel */
        __OVS_VPORT_TYPE_MAX
@@ -198,6 +198,7 @@ enum ovs_vport_type {
  * @OVS_VPORT_ATTR_NAME: Name of vport.  For a vport based on a network device
  * this is the name of the network device.  Maximum length %IFNAMSIZ-1 bytes
  * plus a null terminator.
+ * @OVS_VPORT_ATTR_OPTIONS: Vport-specific configuration information.
  * @OVS_VPORT_ATTR_UPCALL_PID: The Netlink socket in userspace that
  * OVS_PACKET_CMD_MISS upcalls will be directed to for packets received on
  * this port.  A value of zero indicates that upcalls should not be sent.
@@ -224,10 +225,10 @@ enum ovs_vport_attr {
        OVS_VPORT_ATTR_PORT_NO, /* u32 port number within datapath */
        OVS_VPORT_ATTR_TYPE,    /* u32 OVS_VPORT_TYPE_* constant. */
        OVS_VPORT_ATTR_NAME,    /* string name, up to IFNAMSIZ bytes long */
+       OVS_VPORT_ATTR_OPTIONS, /* nested attributes, varies by vport type */
        OVS_VPORT_ATTR_UPCALL_PID, /* u32 Netlink PID to receive upcalls */
        OVS_VPORT_ATTR_STATS,   /* struct ovs_vport_stats */
-       OVS_VPORT_ATTR_ADDRESS, /* hardware address */
-       OVS_VPORT_ATTR_OPTIONS, /* nested attributes, varies by vport type */
+       OVS_VPORT_ATTR_ADDRESS = 100, /* hardware address */
        __OVS_VPORT_ATTR_MAX
 };
 
@@ -263,11 +264,11 @@ struct ovs_flow_stats {
 
 enum ovs_key_attr {
        OVS_KEY_ATTR_UNSPEC,
-       OVS_KEY_ATTR_TUN_ID,    /* 64-bit tunnel ID */
-       OVS_KEY_ATTR_IN_PORT,   /* 32-bit OVS dp port number */
+       OVS_KEY_ATTR_PRIORITY,  /* u32 skb->priority */
+       OVS_KEY_ATTR_IN_PORT,   /* u32 OVS dp port number */
        OVS_KEY_ATTR_ETHERNET,  /* struct ovs_key_ethernet */
        OVS_KEY_ATTR_8021Q,     /* struct ovs_key_8021q */
-       OVS_KEY_ATTR_ETHERTYPE, /* 16-bit Ethernet type */
+       OVS_KEY_ATTR_ETHERTYPE, /* be16 Ethernet type */
        OVS_KEY_ATTR_IPV4,      /* struct ovs_key_ipv4 */
        OVS_KEY_ATTR_IPV6,      /* struct ovs_key_ipv6 */
        OVS_KEY_ATTR_TCP,       /* struct ovs_key_tcp */
@@ -276,6 +277,7 @@ enum ovs_key_attr {
        OVS_KEY_ATTR_ICMPV6,    /* struct ovs_key_icmpv6 */
        OVS_KEY_ATTR_ARP,       /* struct ovs_key_arp */
        OVS_KEY_ATTR_ND,        /* struct ovs_key_nd */
+       OVS_KEY_ATTR_TUN_ID = 100, /* be64 tunnel ID */
        __OVS_KEY_ATTR_MAX
 };
 
@@ -314,14 +316,17 @@ struct ovs_key_ipv4 {
        __be32 ipv4_dst;
        __u8   ipv4_proto;
        __u8   ipv4_tos;
+       __u8   ipv4_ttl;
        __u8   ipv4_frag;       /* One of OVS_FRAG_TYPE_*. */
 };
 
 struct ovs_key_ipv6 {
        __be32 ipv6_src[4];
        __be32 ipv6_dst[4];
+       __be32 ipv6_label;      /* 20-bits in least-significant bits. */
        __u8   ipv6_proto;
-       __u8   ipv6_tos;
+       __u8   ipv6_tclass;
+       __u8   ipv6_hlimit;
        __u8   ipv6_frag;       /* One of OVS_FRAG_TYPE_*. */
 };
 
@@ -366,7 +371,8 @@ struct ovs_key_nd {
  * dumps).
  * @OVS_FLOW_ATTR_ACTIONS: Nested %OVS_ACTION_ATTR_* attributes specifying
  * the actions to take for packets that match the key.  Always present in
- * notifications.  Required for %OVS_FLOW_CMD_NEW requests, optional
+ * notifications.  Required for %OVS_FLOW_CMD_NEW requests, optional for
+ * %OVS_FLOW_CMD_SET requests.
  * @OVS_FLOW_ATTR_STATS: &struct ovs_flow_stats giving statistics for this
  * flow.  Present in notifications if the stats would be nonzero.  Ignored in
  * requests.
@@ -449,9 +455,6 @@ enum ovs_userspace_attr {
  * header.
  * @OVS_ACTION_ATTR_SET: Replaces the contents of an existing header.
  * The argument takes the same form as %OVS_ACTION_ATTR_PUSH.
- * @OVS_ACTION_ATTR_SET_PRIORITY: Sets skb->priority to 32-bit number passed
- * as argument.
- * @OVS_ACTION_ATTR_POP_PRIORITY: Restore skb->priority to original value.
  * @OVS_ACTION_ATTR_SAMPLE: Probabilitically executes actions, as specified in
  * the nested %OVS_SAMPLE_ATTR_* attributes.
  *
@@ -466,8 +469,6 @@ enum ovs_action_attr {
        OVS_ACTION_ATTR_PUSH,         /* One nested OVS_KEY_ATTR_*. */
        OVS_ACTION_ATTR_POP,          /* u16 OVS_KEY_ATTR_*. */
        OVS_ACTION_ATTR_SET,          /* One nested OVS_KEY_ATTR_*. */
-       OVS_ACTION_ATTR_SET_PRIORITY, /* u32 skb->priority value. */
-       OVS_ACTION_ATTR_POP_PRIORITY, /* No argument. */
        OVS_ACTION_ATTR_SAMPLE,       /* Nested OVS_SAMPLE_ATTR_*. */
        __OVS_ACTION_ATTR_MAX
 };