mirror of
https://github.com/netbirdio/plugins.git
synced 2026-05-22 18:44:07 -07:00
net/frr: model style and new indent
This commit is contained in:
@@ -13,12 +13,8 @@
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<description type="TextField">
|
||||
<Default></Default>
|
||||
<Required>N</Required>
|
||||
</description>
|
||||
<description type="TextField"/>
|
||||
<address type="NetworkField">
|
||||
<Default></Default>
|
||||
<Required>Y</Required>
|
||||
</address>
|
||||
<multihop type="BooleanField">
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -9,7 +9,6 @@
|
||||
</enabled>
|
||||
<profile type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<Multiple>N</Multiple>
|
||||
<Default>traditional</Default>
|
||||
<OptionValues>
|
||||
<traditional>Traditional</traditional>
|
||||
@@ -30,7 +29,6 @@
|
||||
</enablesnmp>
|
||||
<sysloglevel type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<Multiple>N</Multiple>
|
||||
<Default>notifications</Default>
|
||||
<OptionValues>
|
||||
<critical>Critical</critical>
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,7 @@
|
||||
<Required>Y</Required>
|
||||
</carp_demote>
|
||||
<routerid type="TextField">
|
||||
<Mask>/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/</Mask>
|
||||
<Mask>/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/</Mask>
|
||||
</routerid>
|
||||
<originate type="BooleanField">
|
||||
<Default>0</Default>
|
||||
@@ -28,213 +28,213 @@
|
||||
<ValidationMessage>Must be a number between 0 and 16777214.</ValidationMessage>
|
||||
</originatemetric>
|
||||
<networks>
|
||||
<network type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<!-- XXX: it would make sense to merge both into a single field "network" -->
|
||||
<ipaddr type="NetworkField">
|
||||
<Required>Y</Required>
|
||||
<NetMaskAllowed>N</NetMaskAllowed>
|
||||
<WildcardEnabled>N</WildcardEnabled>
|
||||
<AddressFamily>ipv6</AddressFamily>
|
||||
</ipaddr>
|
||||
<netmask type="IntegerField">
|
||||
<Default>64</Default>
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<Required>Y</Required>
|
||||
<MaximumValue>128</MaximumValue>
|
||||
<ValidationMessage>Network mask must be between 0 and 128.</ValidationMessage>
|
||||
</netmask>
|
||||
<area type="TextField">
|
||||
<Required>Y</Required>
|
||||
<Mask>/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/</Mask>
|
||||
</area>
|
||||
<arearange type="TextField"/>
|
||||
<linkedPrefixlistIn type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>prefixlists.prefixlist</items>
|
||||
<display>name</display>
|
||||
<group>name</group>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related Prefix-List item not found</ValidationMessage>
|
||||
</linkedPrefixlistIn>
|
||||
<linkedPrefixlistOut type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>prefixlists.prefixlist</items>
|
||||
<display>name</display>
|
||||
<group>name</group>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related Prefix-List item not found</ValidationMessage>
|
||||
</linkedPrefixlistOut>
|
||||
</network>
|
||||
<network type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<!-- XXX: it would make sense to merge both into a single field "network" -->
|
||||
<ipaddr type="NetworkField">
|
||||
<Required>Y</Required>
|
||||
<NetMaskAllowed>N</NetMaskAllowed>
|
||||
<WildcardEnabled>N</WildcardEnabled>
|
||||
<AddressFamily>ipv6</AddressFamily>
|
||||
</ipaddr>
|
||||
<netmask type="IntegerField">
|
||||
<Default>64</Default>
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<Required>Y</Required>
|
||||
<MaximumValue>128</MaximumValue>
|
||||
<ValidationMessage>Network mask must be between 0 and 128.</ValidationMessage>
|
||||
</netmask>
|
||||
<area type="TextField">
|
||||
<Required>Y</Required>
|
||||
<Mask>/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/</Mask>
|
||||
</area>
|
||||
<arearange type="TextField"/>
|
||||
<linkedPrefixlistIn type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>prefixlists.prefixlist</items>
|
||||
<display>name</display>
|
||||
<group>name</group>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related Prefix-List item not found.</ValidationMessage>
|
||||
</linkedPrefixlistIn>
|
||||
<linkedPrefixlistOut type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>prefixlists.prefixlist</items>
|
||||
<display>name</display>
|
||||
<group>name</group>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related Prefix-List item not found.</ValidationMessage>
|
||||
</linkedPrefixlistOut>
|
||||
</network>
|
||||
</networks>
|
||||
<interfaces>
|
||||
<interface type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<interfacename type="InterfaceField">
|
||||
<AllowDynamic>Y</AllowDynamic>
|
||||
<filters>
|
||||
<enable>/^(?!0).*$/</enable>
|
||||
</filters>
|
||||
</interfacename>
|
||||
<area type="TextField">
|
||||
<Required>Y</Required>
|
||||
<Mask>/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/</Mask>
|
||||
</area>
|
||||
<passive type="BooleanField">
|
||||
<Default>0</Default>
|
||||
<Required>Y</Required>
|
||||
</passive>
|
||||
<cost type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Cost must be between 0 and 4294967295.</ValidationMessage>
|
||||
</cost>
|
||||
<cost_demoted type="IntegerField">
|
||||
<MinimumValue>1</MinimumValue>
|
||||
<MaximumValue>65535</MaximumValue>
|
||||
<ValidationMessage>Cost must be between 1 and 65535.</ValidationMessage>
|
||||
</cost_demoted>
|
||||
<carp_depend_on type="VirtualIPField">
|
||||
<type>carp</type>
|
||||
</carp_depend_on>
|
||||
<hellointerval type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Hello interval must be between 0 and 4294967295.</ValidationMessage>
|
||||
</hellointerval>
|
||||
<deadinterval type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Dead interval must be between 0 and 4294967295.</ValidationMessage>
|
||||
</deadinterval>
|
||||
<retransmitinterval type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Retransmit interval must be between 0 and 4294967295.</ValidationMessage>
|
||||
</retransmitinterval>
|
||||
<transmitdelay type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Transmit delay must be between 0 and 4294967295.</ValidationMessage>
|
||||
</transmitdelay>
|
||||
<priority type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Priority must be between 0 and 4294967295.</ValidationMessage>
|
||||
</priority>
|
||||
<bfd type="BooleanField"/>
|
||||
<networktype type="OptionField">
|
||||
<OptionValues>
|
||||
<broadcast>Broadcast multi-access network</broadcast>
|
||||
<point-to-point>Point-to-point network</point-to-point>
|
||||
</OptionValues>
|
||||
</networktype>
|
||||
</interface>
|
||||
<interface type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<interfacename type="InterfaceField">
|
||||
<AllowDynamic>Y</AllowDynamic>
|
||||
<filters>
|
||||
<enable>/^(?!0).*$/</enable>
|
||||
</filters>
|
||||
</interfacename>
|
||||
<area type="TextField">
|
||||
<Required>Y</Required>
|
||||
<Mask>/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/</Mask>
|
||||
</area>
|
||||
<passive type="BooleanField">
|
||||
<Default>0</Default>
|
||||
<Required>Y</Required>
|
||||
</passive>
|
||||
<cost type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Cost must be between 0 and 4294967295.</ValidationMessage>
|
||||
</cost>
|
||||
<cost_demoted type="IntegerField">
|
||||
<MinimumValue>1</MinimumValue>
|
||||
<MaximumValue>65535</MaximumValue>
|
||||
<ValidationMessage>Cost must be between 1 and 65535.</ValidationMessage>
|
||||
</cost_demoted>
|
||||
<carp_depend_on type="VirtualIPField">
|
||||
<type>carp</type>
|
||||
</carp_depend_on>
|
||||
<hellointerval type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Hello interval must be between 0 and 4294967295.</ValidationMessage>
|
||||
</hellointerval>
|
||||
<deadinterval type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Dead interval must be between 0 and 4294967295.</ValidationMessage>
|
||||
</deadinterval>
|
||||
<retransmitinterval type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Retransmit interval must be between 0 and 4294967295.</ValidationMessage>
|
||||
</retransmitinterval>
|
||||
<transmitdelay type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Transmit delay must be between 0 and 4294967295.</ValidationMessage>
|
||||
</transmitdelay>
|
||||
<priority type="IntegerField">
|
||||
<MinimumValue>0</MinimumValue>
|
||||
<MaximumValue>4294967295</MaximumValue>
|
||||
<ValidationMessage>Priority must be between 0 and 4294967295.</ValidationMessage>
|
||||
</priority>
|
||||
<bfd type="BooleanField"/>
|
||||
<networktype type="OptionField">
|
||||
<OptionValues>
|
||||
<broadcast>Broadcast multi-access network</broadcast>
|
||||
<point-to-point>Point-to-point network</point-to-point>
|
||||
</OptionValues>
|
||||
</networktype>
|
||||
</interface>
|
||||
</interfaces>
|
||||
<prefixlists>
|
||||
<prefixlist type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<name type="TextField">
|
||||
<Required>Y</Required>
|
||||
<Mask>/^([0-9a-zA-Z\._\-]){1,64}$/u</Mask>
|
||||
<ValidationMessage>The name should only contain alphanumeric characters, dashes, underscores or a dot.</ValidationMessage>
|
||||
</name>
|
||||
<seqnumber type="IntegerField">
|
||||
<Required>Y</Required>
|
||||
<MinimumValue>10</MinimumValue>
|
||||
<MaximumValue>99</MaximumValue>
|
||||
</seqnumber>
|
||||
<action type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<OptionValues>
|
||||
<permit>Permit</permit>
|
||||
<deny>Deny</deny>
|
||||
</OptionValues>
|
||||
</action>
|
||||
<network type="TextField">
|
||||
<Required>Y</Required>
|
||||
</network>
|
||||
</prefixlist>
|
||||
<prefixlist type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<name type="TextField">
|
||||
<Required>Y</Required>
|
||||
<Mask>/^([0-9a-zA-Z\._\-]){1,64}$/u</Mask>
|
||||
<ValidationMessage>The name should only contain alphanumeric characters, dashes, underscores or a dot.</ValidationMessage>
|
||||
</name>
|
||||
<seqnumber type="IntegerField">
|
||||
<Required>Y</Required>
|
||||
<MinimumValue>10</MinimumValue>
|
||||
<MaximumValue>99</MaximumValue>
|
||||
</seqnumber>
|
||||
<action type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<OptionValues>
|
||||
<permit>Permit</permit>
|
||||
<deny>Deny</deny>
|
||||
</OptionValues>
|
||||
</action>
|
||||
<network type="TextField">
|
||||
<Required>Y</Required>
|
||||
</network>
|
||||
</prefixlist>
|
||||
</prefixlists>
|
||||
<routemaps>
|
||||
<routemap type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<name type="TextField">
|
||||
<Required>Y</Required>
|
||||
</name>
|
||||
<action type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<OptionValues>
|
||||
<permit>Permit</permit>
|
||||
<deny>Deny</deny>
|
||||
</OptionValues>
|
||||
</action>
|
||||
<id type="IntegerField">
|
||||
<Required>Y</Required>
|
||||
<MinimumValue>10</MinimumValue>
|
||||
<MaximumValue>99</MaximumValue>
|
||||
</id>
|
||||
<match2 type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>prefixlists.prefixlist</items>
|
||||
<display>name</display>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related item not found</ValidationMessage>
|
||||
</match2>
|
||||
<set type="TextField"/>
|
||||
</routemap>
|
||||
<routemap type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<name type="TextField">
|
||||
<Required>Y</Required>
|
||||
</name>
|
||||
<action type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<OptionValues>
|
||||
<permit>Permit</permit>
|
||||
<deny>Deny</deny>
|
||||
</OptionValues>
|
||||
</action>
|
||||
<id type="IntegerField">
|
||||
<Required>Y</Required>
|
||||
<MinimumValue>10</MinimumValue>
|
||||
<MaximumValue>99</MaximumValue>
|
||||
</id>
|
||||
<match2 type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>prefixlists.prefixlist</items>
|
||||
<display>name</display>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related item not found.</ValidationMessage>
|
||||
</match2>
|
||||
<set type="TextField"/>
|
||||
</routemap>
|
||||
</routemaps>
|
||||
<redistributions>
|
||||
<redistribution type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<description type="DescriptionField"/>
|
||||
<redistribute type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<Default>connected</Default>
|
||||
<OptionValues>
|
||||
<bgp>Border Gateway Protocol (BGP)</bgp>
|
||||
<connected>Connected routes (directly attached subnet or host)</connected>
|
||||
<kernel>Kernel routes (not installed via the zebra RIB)</kernel>
|
||||
<rip>Routing Information Protocol (RIP)</rip>
|
||||
<static>Statically configured routes</static>
|
||||
</OptionValues>
|
||||
</redistribute>
|
||||
<linkedRoutemap type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>routemaps.routemap</items>
|
||||
<display>name</display>
|
||||
<group>name</group>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related Route-Map item not found</ValidationMessage>
|
||||
</linkedRoutemap>
|
||||
</redistribution>
|
||||
<redistribution type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<description type="DescriptionField"/>
|
||||
<redistribute type="OptionField">
|
||||
<Required>Y</Required>
|
||||
<Default>connected</Default>
|
||||
<OptionValues>
|
||||
<bgp>Border Gateway Protocol (BGP)</bgp>
|
||||
<connected>Connected routes (directly attached subnet or host)</connected>
|
||||
<kernel>Kernel routes (not installed via the zebra RIB)</kernel>
|
||||
<rip>Routing Information Protocol (RIP)</rip>
|
||||
<static>Statically configured routes</static>
|
||||
</OptionValues>
|
||||
</redistribute>
|
||||
<linkedRoutemap type="ModelRelationField">
|
||||
<Model>
|
||||
<template>
|
||||
<source>OPNsense.quagga.ospf6</source>
|
||||
<items>routemaps.routemap</items>
|
||||
<display>name</display>
|
||||
<group>name</group>
|
||||
</template>
|
||||
</Model>
|
||||
<ValidationMessage>Related Route-Map item not found.</ValidationMessage>
|
||||
</linkedRoutemap>
|
||||
</redistribution>
|
||||
</redistributions>
|
||||
</items>
|
||||
</model>
|
||||
|
||||
@@ -14,34 +14,28 @@
|
||||
<Required>Y</Required>
|
||||
</version>
|
||||
<networks type="CSVListField">
|
||||
<Required>N</Required>
|
||||
<Mask>/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2},)*(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2})$/</Mask>
|
||||
</networks>
|
||||
<passiveinterfaces type="InterfaceField">
|
||||
<Required>N</Required>
|
||||
<Multiple>Y</Multiple>
|
||||
<Default></Default>
|
||||
<AllowDynamic>Y</AllowDynamic>
|
||||
<filters>
|
||||
<enable>/^(?!0).*$/</enable>
|
||||
</filters>
|
||||
<Multiple>Y</Multiple>
|
||||
<AllowDynamic>Y</AllowDynamic>
|
||||
<filters>
|
||||
<enable>/^(?!0).*$/</enable>
|
||||
</filters>
|
||||
</passiveinterfaces>
|
||||
<redistribute type="OptionField">
|
||||
<Required>N</Required>
|
||||
<Multiple>Y</Multiple>
|
||||
<Default></Default>
|
||||
<OptionValues>
|
||||
<bgp>Border Gateway Protocol (BGP)</bgp>
|
||||
<connected>Connected routes (directly attached subnet or host)</connected>
|
||||
<kernel>Kernel routes (not installed via the zebra RIB)</kernel>
|
||||
<ospf>Open Shortest Path First (OSPF)</ospf>
|
||||
<static>Statically configured routes</static>
|
||||
</OptionValues>
|
||||
<Multiple>Y</Multiple>
|
||||
<OptionValues>
|
||||
<bgp>Border Gateway Protocol (BGP)</bgp>
|
||||
<connected>Connected routes (directly attached subnet or host)</connected>
|
||||
<kernel>Kernel routes (not installed via the zebra RIB)</kernel>
|
||||
<ospf>Open Shortest Path First (OSPF)</ospf>
|
||||
<static>Statically configured routes</static>
|
||||
</OptionValues>
|
||||
</redistribute>
|
||||
<defaultmetric type="IntegerField">
|
||||
<MinimumValue>1</MinimumValue>
|
||||
<MaximumValue>16</MaximumValue>
|
||||
<Required>N</Required>
|
||||
</defaultmetric>
|
||||
</items>
|
||||
</model>
|
||||
|
||||
@@ -3,34 +3,32 @@
|
||||
<description>Staticd Routing configuration</description>
|
||||
<version>1.0.0</version>
|
||||
<items>
|
||||
<enabled type="BooleanField">
|
||||
<Default>0</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<routes>
|
||||
<route type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<network type="NetworkField">
|
||||
<NetMaskRequired>Y</NetMaskRequired>
|
||||
<Required>Y</Required>
|
||||
<ValidationMessage>Specify a valid network matching the gateways ip protocol.</ValidationMessage>
|
||||
</network>
|
||||
<gateway type="NetworkField">
|
||||
<NetMaskAllowed>N</NetMaskAllowed>
|
||||
<Required>N</Required>
|
||||
</gateway>
|
||||
<interfacename type="InterfaceField">
|
||||
<Multiple>N</Multiple>
|
||||
<AllowDynamic>Y</AllowDynamic>
|
||||
<filters>
|
||||
<enable>/^(?!0).*$/</enable>
|
||||
<type>/^(?!group).*$/</type>
|
||||
</filters>
|
||||
</interfacename>
|
||||
</route>
|
||||
</routes>
|
||||
<enabled type="BooleanField">
|
||||
<Default>0</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<routes>
|
||||
<route type="ArrayField">
|
||||
<enabled type="BooleanField">
|
||||
<Default>1</Default>
|
||||
<Required>Y</Required>
|
||||
</enabled>
|
||||
<network type="NetworkField">
|
||||
<NetMaskRequired>Y</NetMaskRequired>
|
||||
<Required>Y</Required>
|
||||
<ValidationMessage>Specify a valid network matching the gateway IP protocol.</ValidationMessage>
|
||||
</network>
|
||||
<gateway type="NetworkField">
|
||||
<NetMaskAllowed>N</NetMaskAllowed>
|
||||
</gateway>
|
||||
<interfacename type="InterfaceField">
|
||||
<AllowDynamic>Y</AllowDynamic>
|
||||
<filters>
|
||||
<enable>/^(?!0).*$/</enable>
|
||||
<type>/^(?!group).*$/</type>
|
||||
</filters>
|
||||
</interfacename>
|
||||
</route>
|
||||
</routes>
|
||||
</items>
|
||||
</model>
|
||||
|
||||
Reference in New Issue
Block a user