From: Jesse Gross Date: Sun, 6 Nov 2011 03:13:55 +0000 (-0700) Subject: datapath: Renumber non-upstreamable interfaces. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cdb1a85bba8adf03e6dac40e603f0cb7206fe2d6;p=openvswitch datapath: Renumber non-upstreamable interfaces. The interfaces related to tunneling aren't finalized enough to be sent upstream but we also still want to retain them in the OVS repository. Since userspace should be compatible with both versions of the kernel, this renumbers the tunnel interfaces to high numbers so that we can continue to add new interfaces without conflict. Signed-off-by: Jesse Gross Acked-by: Ben Pfaff --- diff --git a/datapath/flow.c b/datapath/flow.c index 670b6f8f..2dc87aee 100644 --- a/datapath/flow.c +++ b/datapath/flow.c @@ -1214,11 +1214,6 @@ int flow_to_nlattrs(const struct sw_flow_key *swkey, struct sk_buff *skb) struct ovs_key_ethernet *eth_key; struct nlattr *nla; - /* This is an imperfect sanity-check that FLOW_BUFSIZE doesn't need - * to be updated, but will at least raise awareness when new - * datapath key types are added. */ - BUILD_BUG_ON(__OVS_KEY_ATTR_MAX != 15); - if (swkey->phy.priority) NLA_PUT_U32(skb, OVS_KEY_ATTR_PRIORITY, swkey->phy.priority); diff --git a/include/linux/openvswitch.h b/include/linux/openvswitch.h index a1ffc7dd..1ce2a1e0 100644 --- a/include/linux/openvswitch.h +++ b/include/linux/openvswitch.h @@ -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 }; @@ -264,7 +265,6 @@ struct ovs_flow_stats { enum ovs_key_attr { OVS_KEY_ATTR_UNSPEC, OVS_KEY_ATTR_PRIORITY, /* 32-bit skb->priority */ - OVS_KEY_ATTR_TUN_ID, /* 64-bit tunnel ID */ OVS_KEY_ATTR_IN_PORT, /* 32-bit OVS dp port number */ OVS_KEY_ATTR_ETHERNET, /* struct ovs_key_ethernet */ OVS_KEY_ATTR_8021Q, /* struct ovs_key_8021q */ @@ -277,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, /* 64-bit tunnel ID */ __OVS_KEY_ATTR_MAX }; diff --git a/lib/odp-util.h b/lib/odp-util.h index eceeae6b..c916abf8 100644 --- a/lib/odp-util.h +++ b/lib/odp-util.h @@ -80,11 +80,6 @@ void format_odp_actions(struct ds *, const struct nlattr *odp_actions, */ #define ODPUTIL_FLOW_KEY_BYTES 140 -/* This is an imperfect sanity-check that ODPUTIL_FLOW_KEY_BYTES doesn't - * need to be updated, but will at least raise awareness when new OVS - * datapath key types are added. */ -BUILD_ASSERT_DECL(__OVS_KEY_ATTR_MAX == 15); - /* A buffer with sufficient size and alignment to hold an nlattr-formatted flow * key. An array of "struct nlattr" might not, in theory, be sufficiently * aligned because it only contains 16-bit types. */