From 50ca89433c2a29367a36f5f049821a9bedb39d24 Mon Sep 17 00:00:00 2001
From: Jernej Jakob <jernej.jakob@gmail.com>
Date: Fri, 1 May 2020 19:44:17 +0200
Subject: pseudo-ethernet: T2241: make address and bridge membership mutually
 exclusive

Bridge members should not have any addresses assigned.
---
 src/conf_mode/interfaces-pseudo-ethernet.py | 8 ++++++++
 1 file changed, 8 insertions(+)

(limited to 'src')

diff --git a/src/conf_mode/interfaces-pseudo-ethernet.py b/src/conf_mode/interfaces-pseudo-ethernet.py
index 9f01cf0c1..e06f14a95 100755
--- a/src/conf_mode/interfaces-pseudo-ethernet.py
+++ b/src/conf_mode/interfaces-pseudo-ethernet.py
@@ -122,6 +122,14 @@ def verify(peth):
     if not peth['source_interface'] in interfaces():
         raise ConfigError('Pseudo-ethernet source-interface does not exist')
 
+    if ( peth['is_bridge_member']
+            and ( peth['address']
+                or peth['ipv6_eui64_prefix']
+                or peth['ipv6_autoconf'] ) ):
+        raise ConfigError((
+            f'Cannot assign address to interface "{peth["intf"]}" '
+            f'as it is a member of bridge "{peth["is_bridge_member"]}"!'))
+
     if peth['vrf']:
         if peth['vrf'] not in interfaces():
             raise ConfigError(f'VRF "{peth["vrf"]}" does not exist')
-- 
cgit v1.2.3