Query each enabled eswitch vport to report its effective MAC and VLAN configuration and administrative link-state policy. Serialize the query with vport enable and disable, and hold the interface state lock so teardown joins an in-progress report. Propagate firmware errors from MAC, administrative link-state, and supported VLAN queries instead of returning a partially initialized configuration. When the hardware lacks CVLAN enforcement, report the remaining status with no imposed access VLAN.
Details
- Reviewers
kib gallatin slavash aehrenberg_nvidia.com
Not sure who to route this to at Nvidia these days
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
This is a basic implementation, someone more familiar with the driver may look at the nvlist schema and https://reviews.freebsd.org/D58739 which demonstrates driver extensions.
Create some VFs with iovctl (can be attached, unattached, passhthru)
On recent main (as of yesterday) run 'ifconfig -v'
Things to watch out for: performance with 0, 1, many VFs. This implementation does some live firmware work, which is different than cached state in my other implementations. The linked ice(4) review above contains an extension syntax example if there is any additional eswitch info that doesn't fit into the schema that should be exposed.
| sys/dev/mlx5/mlx5_en/mlx5_en_main.c | ||
|---|---|---|
| 3710 | I think that you should take the state_lock (AKA PRIV_LOCK) around the call. | |
Update against committed netlink API, propagate firmware query failures, tolerate absent CVLAN support, synchronize teardown.
| sys/dev/mlx5/mlx5_en/mlx5_en_main.c | ||
|---|---|---|
| 3710 | Addressed by holding PRIV_LOCK across validation and firmware snapshot construction | |