#include "openflow/openflow-common.h"
-/* Port numbering. Physical ports are numbered starting from 1. */
+/* Port number(s) meaning
+ * --------------- --------------------------------------
+ * 0x0000 not assigned a meaning by OpenFlow 1.0
+ * 0x0001...0xfeff "physical" ports
+ * 0xff00...0xfff7 "reserved" but not assigned a meaning by OpenFlow 1.0
+ * 0xfff8...0xffff "reserved" OFPP_* ports with assigned meanings
+ */
enum ofp_port {
- /* Maximum number of physical switch ports. */
- OFPP_MAX = 0xff00,
+ /* Ranges. */
+ OFPP_MAX = 0xff00, /* Maximum number of physical switch ports. */
+ OFPP_FIRST_RESV = 0xfff8, /* First assigned reserved port number. */
+ OFPP_LAST_RESV = 0xffff, /* Last assigned reserved port number. */
- /* Fake output "ports". */
+ /* Reserved output "ports". */
OFPP_IN_PORT = 0xfff8, /* Send the packet out the input port. This
virtual port must be explicitly used
in order to send back out of the input
#define OFP_DL_TYPE_NOT_ETH_TYPE 0x05ff
/* The VLAN id is 12-bits, so we can use the entire 16 bits to indicate
- * special conditions. All ones indicates that no VLAN id was set.
+ * special conditions. All ones indicates that 802.1Q header is not present.
*/
#define OFP10_VLAN_NONE 0xffff