anchor.diff:      (assertHasField "Name")
       (assertHasField "Kind")
       (assertValueOneOf "Kind" [
  -      "bridge" "bond" "vlan" "macvlan" "vxlan" "ipip"
  -      "gre" "sit" "vti" "veth" "tun" "tap" "dummy"
  +      "bond" "bridge" "dummy" "gre" "gretap" "ip6gre" "ip6tnl" "ip6gretap" "ipip"
  +      "ipvlan" "macvlan" "macvtap" "sit" "tap" "tun" "veth" "vlan" "vti" "vti6"
  +      "vxlan" "geneve" "vrf" "vcan" "vxcan" "wireguard" "netdevsim"
       ])
       (assertByteFormat "MTUBytes")
       (assertMacAddress "MACAddress")
     ];
   
     checkVlan = checkUnitConfig "VLAN" [
  -    (assertOnlyFields ["Id"])
  +    (assertOnlyFields ["Id" "GVRP" "MVRP" "LooseBinding" "ReorderHeader"])
       (assertRange "Id" 0 4094)
  +    (assertValueOneOf "GVRP" boolValues)
  +    (assertValueOneOf "MVRP" boolValues)
  +    (assertValueOneOf "LooseBinding" boolValues)
  +    (assertValueOneOf "ReorderHeader" boolValues)
     ];
   
     checkMacvlan = checkUnitConfig "MACVLAN" [
  
positive.code:   checkBond = checkUnitConfig "Bond" [
      (assertOnlyFields [
        "Mode" "TransmitHashPolicy" "LACPTransmitRate" "MIIMonitorSec"
        "UpDelaySec" "DownDelaySec" "GratuitousARP"
      ])
      (assertValueOneOf "Mode" [
        "balance-rr" "active-backup" "balance-xor"
        "broadcast" "802.3ad" "balance-tlb" "balance-alb"
      ])
      (assertValueOneOf "TransmitHashPolicy" [
        "layer2" "layer3+4" "layer2+3" "encap2+3" "802.3ad" "encap3+4"
      ])
      (assertValueOneOf "LACPTransmitRate" ["slow" "fast"])
    ];
  
    checkNetwork = checkUnitConfig "Network" [
      (assertOnlyFields [
        "Description" "DHCP" "DHCPServer" "IPForward" "IPMasquerade" "IPv4LL" "IPv4LLRoute"
        "LLMNR" "MulticastDNS" "Domains" "Bridge" "Bond" "IPv6PrivacyExtensions"
      ])
      (assertValueOneOf "DHCP" ["both" "none" "v4" "v6"])
      (assertValueOneOf "DHCPServer" boolValues)
      (assertValueOneOf "IPForward" ["yes" "no" "ipv4" "ipv6"])
      (assertValueOneOf "IPMasquerade" boolValues)
      (assertValueOneOf "IPv4LL" boolValues)
      (assertValueOneOf "IPv4LLRoute" boolValues)
      (assertValueOneOf "LLMNR" boolValues)
      (assertValueOneOf "MulticastDNS" boolValues)
      (assertValueOneOf "IPv6PrivacyExtensions" ["yes" "no" "prefer-public" "kernel"])
    ];
  
    checkAddress = checkUnitConfig "Address" [
      (assertOnlyFields ["Address" "Peer" "Broadcast" "Label"])
      (assertHasField "Address")
    ];
  
    checkRoute = checkUnitConfig "Route" [
      (assertOnlyFields ["Gateway" "Destination" "Metric"])
      (assertHasField "Gateway")
    ];
  
    checkDhcp = checkUnitConfig "DHCP" [
      (assertOnlyFields [
        "UseDNS" "UseMTU" "SendHostname" "UseHostname" "UseDomains" "UseRoutes"
        "CriticalConnections" "VendorClassIdentifier" "RequestBroadcast"
        "RouteMetric"
      ])
      (assertValueOneOf "UseDNS" boolValues)
      (assertValueOneOf "UseMTU" boolValues)
      (assertValueOneOf "SendHostname" boolValues)
      (assertValueOneOf "UseHostname" boolValues)
      (assertValueOneOf "UseDomains" boolValues)
      (assertValueOneOf "UseRoutes" boolValues)
      (assertValueOneOf "CriticalConnections" boolValues)
      (assertValueOneOf "RequestBroadcast" boolValues)
    ];
  
    checkDhcpServer = checkUnitConfig "DHCPServer" [
      (assertOnlyFields [
        "PoolOffset" "PoolSize" "DefaultLeaseTimeSec" "MaxLeaseTimeSec"
        "EmitDNS" "DNS" "EmitNTP" "NTP" "EmitTimezone" "Timezone"
      ])
      (assertValueOneOf "EmitDNS" boolValues)
      (assertValueOneOf "EmitNTP" boolValues)
      (assertValueOneOf "EmitTimezone" boolValues)
    ];
  
  
negative.code:   ];
  
    checkVxlan = checkUnitConfig "VXLAN" [
      (assertOnlyFields [
        "Id" "Remote" "Local" "TOS" "TTL" "MacLearning" "FDBAgeingSec"
        "MaximumFDBEntries" "ReduceARPProxy" "L2MissNotification"
        "L3MissNotification" "RouteShortCircuit" "UDPChecksum"
        "UDP6ZeroChecksumTx" "UDP6ZeroChecksumRx" "RemoteChecksumTx"
        "RemoteChecksumRx" "GroupPolicyExtension" "DestinationPort" "PortRange"
        "FlowLabel"
      ])
      (assertRange "TTL" 0 255)
      (assertValueOneOf "MacLearning" boolValues)
      (assertValueOneOf "ReduceARPProxy" boolValues)
      (assertValueOneOf "L2MissNotification" boolValues)
      (assertValueOneOf "L3MissNotification" boolValues)
      (assertValueOneOf "RouteShortCircuit" boolValues)
      (assertValueOneOf "UDPChecksum" boolValues)
      (assertValueOneOf "UDP6ZeroChecksumTx" boolValues)
      (assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
      (assertValueOneOf "RemoteChecksumTx" boolValues)
      (assertValueOneOf "RemoteChecksumRx" boolValues)
      (assertValueOneOf "GroupPolicyExtension" boolValues)
      (assertRange "FlowLabel" 0 1048575)
    ];
  
    checkTunnel = checkUnitConfig "Tunnel" [
      (assertOnlyFields [
        "Local" "Remote" "TOS" "TTL" "DiscoverPathMTU" "IPv6FlowLabel" "CopyDSCP"
        "EncapsulationLimit" "Key" "InputKey" "OutputKey" "Mode" "Independent"
        "AllowLocalRemote"
      ])
      (assertRange "TTL" 0 255)
      (assertValueOneOf "DiscoverPathMTU" boolValues)
      (assertValueOneOf "CopyDSCP" boolValues)
      (assertValueOneOf "Mode" ["ip6ip6" "ipip6" "any"])
      (assertValueOneOf "Independent" boolValues)
      (assertValueOneOf "AllowLocalRemote" boolValues)
    ];
  
    checkPeer = checkUnitConfig "Peer" [
  