diff options
-rw-r--r-- | interface-definitions/interfaces-geneve.xml | 26 | ||||
-rwxr-xr-x | src/conf_mode/interfaces-geneve.py | 15 |
2 files changed, 41 insertions, 0 deletions
diff --git a/interface-definitions/interfaces-geneve.xml b/interface-definitions/interfaces-geneve.xml index 3a529c363..4d3897330 100644 --- a/interface-definitions/interfaces-geneve.xml +++ b/interface-definitions/interfaces-geneve.xml @@ -48,6 +48,32 @@ <valueless/> </properties> </leafNode> + <node name="ip"> + <properties> + <help>IPv4 routing parameters</help> + </properties> + <children> + <leafNode name="arp-cache-timeout"> + <properties> + <help>ARP cache entry timeout in seconds</help> + <valueHelp> + <format>1-86400</format> + <description>ARP cache entry timout in seconds (default 30)</description> + </valueHelp> + <constraint> + <validator name="numeric" argument="--range 1-86400"/> + </constraint> + <constraintErrorMessage>ARP cache entry timeout must be between 1 and 86400 seconds</constraintErrorMessage> + </properties> + </leafNode> + <leafNode name="enable-proxy-arp"> + <properties> + <help>Enable proxy-arp on this interface</help> + <valueless/> + </properties> + </leafNode> + </children> + </node> <leafNode name="mtu"> <properties> <help>Maximum Transmission Unit (MTU)</help> diff --git a/src/conf_mode/interfaces-geneve.py b/src/conf_mode/interfaces-geneve.py index 94f88ad6d..b11ef3594 100755 --- a/src/conf_mode/interfaces-geneve.py +++ b/src/conf_mode/interfaces-geneve.py @@ -32,6 +32,8 @@ default_config_data = { 'description': '', 'disable': False, 'intf': '', + 'ip_arp_cache_tmo': 30, + 'ip_proxy_arp': 0, 'mtu': 1450, 'remote': '' } @@ -66,6 +68,14 @@ def get_config(): if conf.exists('disable'): geneve['disable'] = True + # ARP cache entry timeout in seconds + if conf.exists('ip arp-cache-timeout'): + geneve['ip_arp_cache_tmo'] = int(conf.return_value('ip arp-cache-timeout')) + + # Enable proxy-arp on this interface + if conf.exists('ip enable-proxy-arp'): + geneve['ip_proxy_arp'] = 1 + # Maximum Transmission Unit (MTU) if conf.exists('mtu'): geneve['mtu'] = int(conf.return_value('mtu')) @@ -124,6 +134,11 @@ def apply(geneve): # Maximum Transfer Unit (MTU) v.set_mtu(geneve['mtu']) + # configure ARP cache timeout in milliseconds + v.set_arp_cache_tmo(geneve['ip_arp_cache_tmo']) + # Enable proxy-arp on this interface + v.set_proxy_arp(geneve['ip_proxy_arp']) + # Configure interface address(es) - no need to implicitly delete the # old addresses as they have already been removed by deleting the # interface above |