Spec: Make datapath ID 64 bits, up from 48

This commit allows multiple virtual switch instances to share a single
physical switch.
This commit is contained in:
Brandon Heller authored and Mikio Hara committed 2009-07-15 09:42:37 -07:00
1 parent 7e640ed0b4
commit 3087ecedcf
2 files changed
+5 -2

No files matched your search

+2
View File
@@ -112,6 +112,8 @@ The \verb|vendor| field is the Vendor ID, which takes the same form as in struct
Upon SSL session establishment, the controller sends an \verb|OFPT_FEATURES_REQUEST| message. This message does not contain a body beyond the OpenFlow header. The switch responds with an \verb|OFPT_FEATURES_REPLY| message:
\input{struct/ofp_switch_features}
The \verb|datapath_id| field uniquely identifies a datapath. The lower 48 bits are intended for the switch MAC address, while the top 16 bits are up to the implementer. An example use of the top 16 bits would be a VLAN ID to distinguish multiple virtual switch instances on a single physical switch. This field should be treated as an opaque bit string by controllers.
\\\\
The \verb|n_tables| field describes the number of tables supported by the switch, each of which can have a different set of supported wildcard bits and number of entries. When the controller and switch first communicate, the controller will find out how many tables the switch supports from the Features Reply. If it wishes to understand the size, types, and order in which tables are consulted, the controller sends a \verb|OFPST_TABLE| stats request. A switch must return these tables in the order the packets traverse the tables, with all exact-match tables listed before all tables with wildcards.
\\\\
The \verb|capabilities| field uses the following flags:
+3 -2
View File
@@ -246,8 +246,9 @@ OFP_ASSERT(sizeof(struct ofp_phy_port) == 48);
/* Switch features. */
struct ofp_switch_features {
struct ofp_header header;
uint64_t datapath_id; /* Datapath unique ID. Only the lower 48-bits
are meaningful. */
uint64_t datapath_id; /* Datapath unique ID. The lower 48-bits are for
a MAC address, while the upper 16-bits are
implementer-defined. */
uint32_t n_buffers; /* Max packets buffered at once. */