#
# Sample configuration for onos-app-fwd.
# This configuration file would be placed at: $(KARAF_ROOT)/etc.

#
# Reactive flows default matching is InPort, Src MAC, Dst MAC and EtherType fields 
#

#
# Enable packet-out only forwarding.
# This flag affects to both IPv4 and IPv6.
#
# packetOutOnly = true

#
# Enable forwarding of the first packet by using OFPP_TABLE port in the
# PacketOut message instead of sending it directly to the switch port
#
# packetOutOfppTable = true

#
# Timeout of reactively installed flows (in seconds). 
# Default is 10 sec
#
# flowTimeout = 10

#
# Priority of reactively installed flows
#
# flowPriority = 10

#
# Enable IPv6 forwarding.
#
# ipv6Forwarding = true

#
# Flows matching destination MAC only - as legacy L2 switches 
# - This option overrides all other options below
#
# matchDstMacOnly = true

#
# Matching of VLAN ID in Ethernet header
#
# matchVlanId = true

#
# Matching of IPv4 addresses and Protocol field
# - must be enabled to match IPv4 DSCP, TCP/UDP ports and ICMP type/code
#
# matchIpv4Address = true

#
# Matching of IPv4 DSCP and ECN fields 
#
# matchIpv4Dscp = true

#
# Matching of IPv6 addresses and Next-Header field
# - must be enabled to match IPv6 Flow Label, TCP/UDP ports and ICMP type/code
#
# matchIpv6Address = true

#
# Matching of IPv6 Flow Label
#
# matchIpv6FlowLabel = true

#
# Matching of TCP/UDP ports for IPv4 and IPv6
#
# matchTcpUdpPorts = true

#
# Matching of ICMP Type and Code fields for IPv4 and IPv6 
#
# matchIcmpFields = true

