Allow mac to be set up loopbacks, iff not multicast
This commit is contained in:
@ -14,6 +14,7 @@
|
|||||||
import logging
|
import logging
|
||||||
import config.lcp as lcp
|
import config.lcp as lcp
|
||||||
import config.address as address
|
import config.address as address
|
||||||
|
import config.mac as mac
|
||||||
|
|
||||||
def get_loopbacks(yaml):
|
def get_loopbacks(yaml):
|
||||||
""" Return a list of all loopbacks. """
|
""" Return a list of all loopbacks. """
|
||||||
@ -73,5 +74,8 @@ def validate_loopbacks(yaml):
|
|||||||
if not address.is_allowed(yaml, ifname, iface['addresses'], a):
|
if not address.is_allowed(yaml, ifname, iface['addresses'], a):
|
||||||
msgs.append("loopback %s IP address %s conflicts with another" % (ifname, a))
|
msgs.append("loopback %s IP address %s conflicts with another" % (ifname, a))
|
||||||
result = False
|
result = False
|
||||||
|
if 'mac' in iface and mac.is_multicast(iface['mac']):
|
||||||
|
msgs.append("loopback %s MAC address %s cannot be multicast" % (ifname, iface['mac']))
|
||||||
|
result = False
|
||||||
|
|
||||||
return result, msgs
|
return result, msgs
|
||||||
|
@ -29,6 +29,7 @@ bridgedomain-settings:
|
|||||||
---
|
---
|
||||||
loopback:
|
loopback:
|
||||||
description: str(exclude='\'"',len=64,required=False)
|
description: str(exclude='\'"',len=64,required=False)
|
||||||
|
mac: mac(required=False)
|
||||||
lcp: str(max=15,matches='[a-z]+[a-z0-9-]*',required=False)
|
lcp: str(max=15,matches='[a-z]+[a-z0-9-]*',required=False)
|
||||||
mtu: int(min=128,max=9216,required=False)
|
mtu: int(min=128,max=9216,required=False)
|
||||||
addresses: list(ip_interface(),min=1,max=6,required=False)
|
addresses: list(ip_interface(),min=1,max=6,required=False)
|
||||||
|
17
unittest/yaml/error-loopback2.yaml
Normal file
17
unittest/yaml/error-loopback2.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
test:
|
||||||
|
description: "Loopback MAC address can't be multicast"
|
||||||
|
errors:
|
||||||
|
expected:
|
||||||
|
- "loopback .* MAC address .* cannot be multicast"
|
||||||
|
count: 1
|
||||||
|
---
|
||||||
|
loopbacks:
|
||||||
|
loop0:
|
||||||
|
description: "Cool, local MACs are fine"
|
||||||
|
mac: 02:00:00:00:00:00
|
||||||
|
loop1:
|
||||||
|
description: "Cool, global unicast MACs are fine"
|
||||||
|
mac: 04:00:00:00:00:00
|
||||||
|
loop2:
|
||||||
|
description: "Not cool, multicast MACs"
|
||||||
|
mac: 01:00:00:00:00:00
|
Reference in New Issue
Block a user