Metadata

The controller must program rules with match on metadata to achieve functionality.

The following table illustrates the values of metadata and metadata mask with which these functionalities can be achieved.

Metadata
 

Metadata

Metadata_mask

L3 match

1

1

L3 miss

0

1

L3 ignore

0

0

Non-IP

   

OpenFlow supports metadata, which is a maskable register value that is used to carry information from one table to the next.

OpenFlow metadata

For example, OFPXMT_OFB_METADATA is part of oxm_ofb_match_fields and is a 64-bit field. It is used to pass information between lookups across multiple tables. This value can be arbitrarily masked. Out of 64 bits, the current release is using 21 bits and the following table illustrates the interpretation of these bits.

OpenFlow metadata
  • SRC MAC GRP

    – 10 bits, which identifies the Source Mac Group ID

  • DST MAC GRP

    – 10 bits, which identifies the destination Mac Group ID

  • L3 match

    – 1 bit, which is used to identify L3 match/miss for IP control table mode.

The following table shows the values of Metadata_match and metadata_write bits advertised for a different table.

Bits advertised

Table #

Metadata_match

Metadata_write

0

0

0

40

0

0x3FF (Bits 0 to 19)

(Bits 0 to 9 are used to write the src GUID for MAC)

41

0

0xFFC00 (Bits 10 to 19)

(Bits 0 to 9 are used to write the dst GUID for MAC)

50

0

0x100000 (Bit 20)

100

0x01FFFFF (Bits 0 to 20)

0

200

0

0

NOTE:
  • Rules on the policy table must match on metadata, which in turn is mapped to a MAC‐group (source/destination MAC).

  • The policy table cannot match on a source MAC and destination MAC address separately when MAC group tables are part of the pipeline.

  • In L3 tables, rules can be added with instructions WRITE_METADATA/MASK and GOTO.

  • On the policy table, the L3 match, the metadata, metadata_mask specified in the rule interprets L3.