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:
1 parent
7e640ed0b4
commit
3087ecedcf
2 files changed
+5
-2
No files matched your search
@@ -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:
|
||||
|
||||
@@ -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. */
|
||||
|
||||
|
||||
Reference in new issue
Block a user