Value INTERFACE (\d+)
Value DESCRIPTION (.*)
Value VIRTUAL_ROUTER (.*)
Value TYPE (.*)
Value RANDOM_EARLY_DROP (.*)
Value ADMIN_STATE (.*)
Value LINK_STATE (\S+)
Value LINK_UPS_NUM (\d+)
Value LINK_UPS_LAST (.*)
Value LINK_DOWNS_NUM (\d+)
Value LINK_DOWNS_LAST (.*)
Value List VLAN_ID (\d+)

Start
  ^\s*Port:.*$$ -> Continue.Record
  ^\s*Port:\s*${INTERFACE}\s*$$
  ^\s*Description\s+String:\s*\"${DESCRIPTION}\"\s*$$
  ^\s*Virtual-router:\s*${VIRTUAL_ROUTER}\s*$$
  ^\s*Type:\s*${TYPE}\s*$$
  ^\s*Random\s+Early\s+drop:\s*${RANDOM_EARLY_DROP}\s*$$
  ^\s*Admin\s+state:\s*${ADMIN_STATE}
  ^\s*Link\s+State:\s*${LINK_STATE}(,)?(\s)?.*$$
  ^\s*Link\s+Ups:\s*${LINK_UPS_NUM}\s+Last:\s*${LINK_UPS_LAST}\s*$$
  ^\s*Link\s+Downs:\s*${LINK_DOWNS_NUM}\s+Last:\s*${LINK_DOWNS_LAST}\s*$$
  ^.*VLAN\s+ID:\s*${VLAN_ID}\s*$$
  ^\s*\S+\s+cfg:\s*$$
  ^\s*Name:.*,?
  ^\s*\S+\s*Tag=\S+\s+Mode=\S+\s+State=\S+\s*$$
  ^\s*(Protocol|Trunking|Members|EDP|ELSM|Learning|Jumbo):
  ^\s*algorithm\s*$$
  ^\s*(\S+\s+)?Ethernet(\s+OAM)?:
  ^\s*\S+\s+(\S+\s+)*(Flooding|Rate):
  ^\s*(\S+\s+)?Flow\s+Control:
  ^\s*Reflective\s+Relay:
  ^\s*Link\s+up/down\s+SNMP\s+trap
  ^\s*QoS\s+Profile:
  ^\s*(Ingress|Egress)\s+\S+
  ^\s*NetLogin:?
  ^\s*\S+\s+redundan\S+(\s+\S+)?:
  ^\s*(IPFIX|DIP):
  ^\s*IPv\d+\s+Flow\s+Key\s+Mask:
  ^\s*Far-End-Fault-Indication:
  ^\s*Shared\s+packet\s+buffer:
  ^\s*VMAN\s+CEP\s+egress\s+filtering:
  ^\s*(Isolation|PTP\s+Configured|Time-Stamping\s+Mode):
  ^\s*(\S+\s+)+VLANs?(\s+\S+)?:\s+\S+\s*$$
  ^. -> Error
