Virtchnl requests originate in guest-controlled VFs. The existing PF implementation checked message shape but allowed several hardware-facing values through without complete semantic validation. Require the exact RSS key and LUT sizes advertised to the VF, validate every LUT entry, and pass only the validated LUT length to firmware. A short LUT previously caused the AdminQ command to read beyond the received request. Validate queue ring bases, descriptor counts, receive buffer units, maximum frame sizes, and per-VSI consistency before disabling or changing any queue. This also prevents the 32-bit receive ring length from being truncated through a 16-bit validation helper. Advertise the PF frame-size limit in VF resources. Leaving max_mtu zero causes Linux iavf to request a 16382-byte frame, beyond the 9728-byte limit enforced by this driver. Some Linux iavf releases use the advertised maximum as max_pkt_size even when their receive buffers cover fewer bytes within the E810 five-buffer hardware limit. Accept this advisory mismatch for compatibility. ice_setup_rx_ctx() retains the mandatory hardware clamp of RXMAX to five data buffers, as Linux ice does. DPDK sizes its request to the same limit. Preflight the complete interrupt map before changing queue state. Reject invalid ITR indices, traffic on vector zero, duplicate vectors, and queues assigned to multiple vectors. This prevents hostile input from reaching an MPASS or leaving a partially updated mapping. The limits follow the ICE queue context units and the validation policy used by the Intel ICE and FreeBSD ixl PF drivers. MFC after: 2 weeks Sponsored by: BBOX.io
Details
Details
- Reviewers
kgalazka - Group Reviewers
Intel Networking Restricted Owners Package (Owns No Changed Paths)
Diff Detail
Diff Detail
- Lint
Lint Skipped - Unit
Tests Skipped