anchor.diff:          ])
           (assertInt "Table")
           (assertMinimum "Table" 0)
  +      ];
  +
  +      sectionBatmanAdvanced = checkUnitConfig "BatmanAdvanced" [
  +        (assertOnlyFields [
  +          "GatewayMode"
  +          "Aggregation"
  +          "BridgeLoopAvoidance"
  +          "DistributedArpTable"
  +          "Fragmentation"
  +          "HopPenalty"
  +          "OriginatorIntervalSec"
  +          "GatewayBandwithDown"
  +          "GatewayBandwithUp"
  +          "RoutingAlgorithm"
  +        ])
  +        (assertValueOneOf "GatewayMode" ["off" "client" "server"])
  +        (assertValueOneOf "Aggregation" boolValues)
  +        (assertValueOneOf "BridgeLoopAvoidance" boolValues)
  +        (assertValueOneOf "DistributedArpTable" boolValues)
  +        (assertValueOneOf "Fragmentation" boolValues)
  +        (assertInt "HopPenalty")
  +        (assertRange "HopPenalty" 0 255)
  +        (assertValueOneOf "RoutingAlgorithm" ["batman-v" "batman-iv"])
         ];
       };
   
  
positive.code:         + optionalString (def.vrfConfig != { }) ''
            [VRF]
            ${attrsToSection def.vrfConfig}
          ''
          + def.extraConfig;
      };
  
negative.code:       '';
      };
  
      batmanAdvancedConfig = mkOption {
        default = {};
        example = {
          GatewayMode = "server";
          RoutingAlgorithm = "batman-v";
        };
        type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBatmanAdvanced;
        description = ''
          Each attribute in this set specifies an option in the
          <literal>[BatmanAdvanced]</literal> section of the unit. See
          <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
          <manvolnum>5</manvolnum></citerefentry> for details.
        '';
      };
  
    };
  
    addressOptions = {
  