yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #85863
[Bug 1925388] Re: Incorrect reference to 802.1ad in network_data.json schema
** Also affects: ironic
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1925388
Title:
Incorrect reference to 802.1ad in network_data.json schema
Status in Ironic:
New
Status in OpenStack Compute (nova):
New
Bug description:
This affects multiple projects, including nova and ironic, and can
(currently, at least) be seen in multiple references to "802.1ad"
across multiple projects:
https://codesearch.opendev.org/?q=802%5C.1ad&i=nope&files=&excludeFiles=&repos=
I'm not sure how, or if it's even appropriate for these projects, to
file the bug in multiple places, so I'm filing it where I perceive the
error originates, in nova's definition of the network_data.json
schema.
802.1ad is a nested VLAN specification, not a bonding mode
specification. When referencing VLANs in the above codesearch results,
it is used correctly. However, when seen in the context of bonding
interfaces, "802.1ad" is not a valid bond mode. It should instead, be
"802.3ad" (s/1/3/), indicating the LACP bonding mode.
This can be confirmed a number of ways, including searching for the
correct string across projects. This can also be seen by comparing the
enum of valid bond modes in the schema to the actual output of the
"bonding" kernel module info.
schema enum in what I believe is the corresponding version tag to
wallaby:
https://opendev.org/openstack/nova/src/tag/23.0.0/doc/api_schemas/network_data.json#L177
output of `modinfo bonding | grep mode:`
parm: mode:Mode of operation; 0 for balance-rr, 1 for
active-backup, 2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5
for balance-tlb, 6 for balance-alb (charp)
Note that the list of modes in the schema enum is almost exactly the
same as the list of modes mentioned in the bonding kernel driver info,
with the exception of the 802.1ad vs. 802.3ad difference. The list
given by the kernel driver is correct.
In terms of expected vs. actual results, my expected result was that
using a "bond_mode" of "802.3ad" when setting up a bond link in my
network_data.json would not trigger a validation error when validating
my JSON against the schema, since "802.3ad" is otherwise a valid bond
mode. However, due to this error, it does trigger a validation error:
Message: Value "802.3ad" is not defined in enum.
Schema path: http://openstack.org/nova/network_data.json#/definitions/bond/properties/bond_mode/enum
I have not yet attempted to use this network_data.json configuration,
so I don't yet know if specifying "802.1ad" results in the correct
bonding mode being used anyway. This bug appears to have existed since
the introduction of the schema: https://specs.openstack.org/openstack
/nova-specs/specs/liberty/implemented/metadata-service-network-
info.html
To manage notifications about this bug go to:
https://bugs.launchpad.net/ironic/+bug/1925388/+subscriptions
References