From 8e36626e3ed41793c79d95951be6000d9b1e480e Mon Sep 17 00:00:00 2001 From: Maksim Malchuk Date: Thu, 2 Dec 2021 16:09:28 +0300 Subject: [PATCH] Add the bonding 802.3ad aggregation selection option Change-Id: I863e18841924e88c8943c1df0c6753fd90c90ef3 Signed-off-by: Maksim Malchuk --- doc/source/configuration/reference/network.rst | 4 ++++ kayobe/plugins/filter/networkd.py | 2 ++ kayobe/plugins/filter/networks.py | 3 +++ releasenotes/notes/bond-ad-select-8fc711dcd54e9cea.yaml | 4 ++++ requirements.yml | 2 +- 5 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/bond-ad-select-8fc711dcd54e9cea.yaml diff --git a/doc/source/configuration/reference/network.rst b/doc/source/configuration/reference/network.rst index 0149a574d..2ec400e2e 100644 --- a/doc/source/configuration/reference/network.rst +++ b/doc/source/configuration/reference/network.rst @@ -355,6 +355,10 @@ The following attributes are supported: bridge. ``bond_mode`` For bond interfaces, the bond's mode, e.g. 802.3ad. +``bond_ad_select`` + For bond interfaces, the 802.3ad aggregation selection logic to use. Valid + values are ``stable`` (default selection logic if not configured), + ``bandwidth`` or ``count``. ``bond_slaves`` For bond interfaces, a list of names of network interfaces to act as slaves for the bond. diff --git a/kayobe/plugins/filter/networkd.py b/kayobe/plugins/filter/networkd.py index fc9203aba..3abb742c4 100644 --- a/kayobe/plugins/filter/networkd.py +++ b/kayobe/plugins/filter/networkd.py @@ -139,6 +139,7 @@ def _bond_netdev(context, name, inventory_hostname): device = networks.net_interface(context, name, inventory_hostname) mtu = networks.net_mtu(context, name, inventory_hostname) mode = networks.net_bond_mode(context, name, inventory_hostname) + ad_select = networks.net_bond_ad_select(context, name, inventory_hostname) miimon = networks.net_bond_miimon(context, name, inventory_hostname) updelay = networks.net_bond_updelay(context, name, inventory_hostname) downdelay = networks.net_bond_downdelay(context, name, inventory_hostname) @@ -156,6 +157,7 @@ def _bond_netdev(context, name, inventory_hostname): { 'Bond': [ {'Mode': mode}, + {'AdSelect': ad_select}, {'TransmitHashPolicy': xmit_hash_policy}, {'LACPTransmitRate': lacp_rate}, {'MIIMonitorSec': _ms_to_s(miimon)}, diff --git a/kayobe/plugins/filter/networks.py b/kayobe/plugins/filter/networks.py index f7681e725..178d1d7eb 100644 --- a/kayobe/plugins/filter/networks.py +++ b/kayobe/plugins/filter/networks.py @@ -276,6 +276,7 @@ def net_bridge_ports(context, name, inventory_hostname=None): net_bond_mode = _make_attr_filter('bond_mode') +net_bond_ad_select = _make_attr_filter('bond_ad_select') net_bond_slaves = _make_attr_filter('bond_slaves') net_bond_miimon = _make_attr_filter('bond_miimon') net_bond_updelay = _make_attr_filter('bond_updelay') @@ -448,6 +449,7 @@ def net_bond_obj(context, name, inventory_hostname=None): vlan = net_vlan(context, name, inventory_hostname) mtu = net_mtu(context, name, inventory_hostname) mode = net_bond_mode(context, name, inventory_hostname) + ad_select = net_bond_ad_select(context, name, inventory_hostname) slaves = net_bond_slaves(context, name, inventory_hostname) miimon = net_bond_miimon(context, name, inventory_hostname) updelay = net_bond_updelay(context, name, inventory_hostname) @@ -475,6 +477,7 @@ def net_bond_obj(context, name, inventory_hostname=None): 'mtu': mtu, 'bond_slaves': slaves, 'bond_mode': mode, + 'bond_ad_select': ad_select, 'bond_miimon': miimon, 'bond_updelay': updelay, 'bond_downdelay': downdelay, diff --git a/releasenotes/notes/bond-ad-select-8fc711dcd54e9cea.yaml b/releasenotes/notes/bond-ad-select-8fc711dcd54e9cea.yaml new file mode 100644 index 000000000..65a0d7e29 --- /dev/null +++ b/releasenotes/notes/bond-ad-select-8fc711dcd54e9cea.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + Add the bonding 802.3ad aggregation selection option. diff --git a/requirements.yml b/requirements.yml index 691240d44..db7c3d7c7 100644 --- a/requirements.yml +++ b/requirements.yml @@ -14,7 +14,7 @@ roles: # There are no versioned releases of this role. version: 29871bf3279ef95fc8f7339b9abd13f869980750 - src: MichaelRigart.interfaces - version: v1.12.0 + version: v1.13.0 - src: mrlesmithjr.chrony version: v0.1.4 - src: mrlesmithjr.manage-lvm