diff options
| author | Nataliia Solomko <natalirs1985@gmail.com> | 2026-03-05 15:56:23 +0200 |
|---|---|---|
| committer | Nataliia Solomko <natalirs1985@gmail.com> | 2026-03-05 16:12:36 +0200 |
| commit | 78e770e21a2b294566fe8b34ac6497657bbc0b4e (patch) | |
| tree | 530d6bd0d1022cb72c6adff28f519a949540d9e6 /python | |
| parent | fcf57444ab7150e06082627fe196de3c9a87d9e1 (diff) | |
| download | vyos-1x-78e770e21a2b294566fe8b34ac6497657bbc0b4e.tar.gz vyos-1x-78e770e21a2b294566fe8b34ac6497657bbc0b4e.zip | |
vpp: T8342: Add verification of members for bond and bridge interfaces
Diffstat (limited to 'python')
| -rw-r--r-- | python/vyos/vpp/config_deps.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/python/vyos/vpp/config_deps.py b/python/vyos/vpp/config_deps.py index 43cf6036f..a822825c3 100644 --- a/python/vyos/vpp/config_deps.py +++ b/python/vyos/vpp/config_deps.py @@ -74,3 +74,33 @@ def deps_bridge_dict(conf) -> dict[str, list[str]]: bridge_members_dict.update({member_name: bridge_ifaces_list}) return bridge_members_dict + + +def deps_bond_dict(conf) -> dict[str, list[str]]: + """Get a dict of all bonding interface members: + + keys: members + + values: bridge interfaces + + Args: + conf (config): VyOS config object + + Returns: + dict[str, list[str]]: dict of members + """ + bond_members_dict: dict[str, list[str]] = {} + config = conf.get_config_dict( + ['interfaces', 'vpp', 'bonding'], + key_mangling=('-', '_'), + get_first_key=True, + no_tag_node_value_mangle=True, + ) + + for bond_name, bond_config in config.items(): + for member_name in bond_config.get('member', {}).get('interface', []): + bond_ifaces_list = bond_members_dict.get(member_name, []) + bond_ifaces_list.append(bond_name) + bond_members_dict.update({member_name: bond_ifaces_list}) + + return bond_members_dict |
