[ovs-dev] Length of OXM_OF_IPV6_FLABEL and OXM_OF_MPLS_LABEL

Ben Pfaff blp at nicira.com
Mon Jun 18 16:13:04 UTC 2012


On Mon, Jun 18, 2012 at 12:58:24PM +0900, Simon Horman wrote:
> I am a little unsure what the correct length of the payload of
> OXM_OF_IPV6_FLABEL and OXM_OF_MPLS_LABEL should be. The Open Flow 1.2
> specification gives them both a length of 20 bits. Should this be
> interpreted as 3 or 4 bytes?

openflow.h from OF1.2 says: 

/* The IPv6 Flow Label
 *
 * Prereqs:
 *   OXM_OF_ETH_TYPE must match 0x86dd exactly
 *
 * Format: 32-bit integer with 12 most-significant bits forced to 0.
 * Only the lower 20 bits have meaning.
 *
 * Masking: Maskable. */
#define OXM_OF_IPV6_FLABEL   OXM_HEADER  (0x8000, OFPXMT_OFB_IPV6_FLABEL, 4)

/* The LABEL in the first MPLS shim header.
 *
 * Prereqs:
 *   OXM_OF_ETH_TYPE must match 0x8847 or 0x8848 exactly.
 *
 * Format: 32-bit integer in network byte order with 12 most-significant
 * bits forced to 0. Only the lower 20 bits have meaning.
 *
 * Masking: Not maskable. */
#define OXM_OF_MPLS_LABEL  OXM_HEADER  (0x8000, OFPXMT_OFB_MPLS_LABEL, 4)

That is, each one is 4 bytes.

It doesn't seem to be easy to obtain openflow.h for OF1.2, but it's
available in the ONF Git repository, if you have access to it.



More information about the dev mailing list