diff --git a/doc/source/configuration/reference/network.rst b/doc/source/configuration/reference/network.rst index 0149a574d7ddb449cd76e1af4c161c5850d86321..2ec400e2e2df3cf21dfe2e08edf475342b0df3ee 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 fc9203aba603c1e4e413f0fd81a7236fe9c1b97e..3abb742c4968e51171545391dbc86c60a976f83c 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 f7681e725fbb1e67aaf0a18dc033fd7d598d79e4..178d1d7ebf75782d8723a7b2dc97319267406a27 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 0000000000000000000000000000000000000000..65a0d7e2984ed3e05c2ec147c62d0a7cef1dda80 --- /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 691240d441aba9bd73f7dc48476c32a7715176a5..db7c3d7c7562442e839f62c9301156985ecf30bc 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