How a flow matches an incoming packet is explained in the following field assignments. The FLOW_MATCH field is treated as a wildcard if any of these assignment statements is removed from the syntax of a flow. Therefore, if all of these fields are removed, then the resulting flow matches all packets; all or any can be used to specify a flow that matches all packets.
- The in_port=port_no assignment matches physical port port_no with the port number of the incoming packet. Switch ports are numbered as they are listed by fvctl getDeviceInfo DPID command.
- The dl_vlan=vlan assignment matches IEEE 802.1Q virtual LAN tag vlan with the value of the VLAN in the incoming packet. In order to match packets not tagged with a VLAN, you can specify 0xffff as the value of vlan parameter. Otherwise, specify a numeric value between 0 and 4095 (inclusive) as the 12-bit VLAN ID to match.
- The dl_src=mac assignment matches Ethernet source MAC address mac. This MAC address should be specified as six pairs of hexadecimal digits delimited by colons, like 00:0A:E4:25:6B:B0.
- The dl_dst=mac assignment matches Ethernet destination MAC address mac.
- The dl_type=ethertype assignment matches Ethernet protocol type ethertype, which should be specified as an integer between 0 and 65535 (inclusive) either in decimal or as a hexadecimal number prefixed by 0x (for instance to match ARP packets, you can specify 0x0806 as the value of ethertype).
- The nw_src=ip[/netmask] assignment matches IPv4 source address ip (specified as an IP address, for example 192.168.0.1). The optional netmask provides a mechanism to only match on the prefix of an IPv4 address. The netmask is specified in CIDR style; for example, something like 192.168.1.0/24.
- The nw_dst=ip[/netmask] assignment matches IPv4 destination address ip with the destination address of the incoming packet. The netmask allows the prefix matching (for instance 192.168.1.0/24).
- The nw_proto=proto assignment matches IP protocol type proto field, which should be specified as a number integer value between 0 and 255 (for instance 6 to match TCP packets).
- The nw_tos=tos/dscp assignment matches the ToS/DSCP field of IPv4 header value tos/dscp with the same quantity of the incoming packets. This value should be specified as an integer value between 0 and 255.
- The tp_src=port assignment matches transport-layer (for instance TCP, UDP, or ICMP) source port port. It should be specified as an integer number between 0 and 65535 (in the case of TCP or UDP) or between 0 and 255 (in the case of ICMP).
- The tp_dst=port assignment matches transport-layer destination port. The value should be in the same range that was mentioned for the transport layer source port.