Topologies and use cases
This section describes the compute-node layout used to validate NVIDIA ASAP² Direct on MOSK and the traffic paths that were exercised. Paths that only look plausible from vendor or upstream behavior, but were not part of this lab, are called out separately. Discovered incompatibilities with MOSK Networking service (OpenStack Neutron) features are summarized here and detailed in Limitations.
Validated host OS network layout
Reserve the ASAP² adapter for tenant traffic offload. Do not share that NIC with MOSK life-cycle management, Kubernetes underlay, or storage networks. Mixing infrastructure and tenant traffic on one SmartNIC is not a supported MOSK LCM layout.
The validated compute node used three LACP bonds:
Declare the ASAP² bond (<ASAP_BOND_IFACE> in
Configuration and activation) and the tenant underlay VLAN
(<TENANT_UNDERLAY_IFACE>) in the compute L2Template. Use the same names
in OpenStackDeployment.
VF-LAG — Enslave both ports of the same dual-port ASIC into an IEEE
802.3ad (LACP) bond with transmit hash layer3+4. Cross-card bonding of two
PCIe NICs is unsupported. Both PFs (<PF0_IFACE> and <PF1_IFACE> in
configuration) must be in switchdev before the ASAP² bond comes up. Use a
jumbo MTU on the ASAP² bond and the underlay VLAN so encapsulated frames fit.
VF-LAG initialization fails if firmware NUM_OF_VFS exceeds 64.
ToR switch — Configure a matching LACP port-channel (typically MLAG) and trunk the underlay VLAN on that channel.
The following diagram illustrates the network topology used for validation:
Underlay, overlay, and physical networks
The validated accelerated datapath is a VXLAN tenant overlay.
Instances attach ports with vnic-type=direct and capabilities:
["switchdev"], with port security disabled. The underlay is a tagged VLAN
(<TENANT_UNDERLAY_IFACE>) on the ASAP² bond (<ASAP_BOND_IFACE>).
tunnel_interface in OpenStackDeployment must be set to that VLAN netdev
so that OVS sends overlay traffic out the ASAP² underlay. After OVS programs
the flow, VXLAN encapsulation and decapsulation run in the SmartNIC.
Provider VLANs on the same SmartNIC were also validated: direct SR-IOV
switchdev ports on the ASAP² physnet. The eSwitch performs hardware VLAN
push and pop. That is not a self-service tenant VLAN. It is a provider network
on the ASAP² adapter. A separate infrastructure physnet stays on the non-ASAP²
NICs. To learn how to declare that mapping in OpenStackDeployment, refer to
Configuration and activation.
Caution
Do not collocate VXLAN tenant overlay networks and VLAN-based self-service tenant networks on the same SmartNIC. Combined OpenStack Nova scheduler and OVS bond IP-assignment limits make that layout unsupported.
If you need VLAN tenants, keep them off the ASAP² NIC. VLAN tenant networks were not a target for hardware offload in this validation in the first place.
Keep the bond in the kernel (Netplan from L2Template). Do not enslave
an active VF-LAG bond into br-ex or an SR-IOV bridge from generic OVS
startup. Neutron attaches VF representors to br-int. For details, see
Configuration and activation.
Validated use cases and traffic paths
The primary accelerated traffic was east-west TCP and UDP between two instances
on different ASAP² compute nodes, on one VXLAN overlay, each with a direct
switchdev port:
For the throughput numbers, see Performance.
For slow-path versus fast-path behavior, see Architecture.
East-west VXLAN overlay
Two instances, two compute nodes, one VXLAN network, both ports
vnic-type=direct with capabilities: ["switchdev"] and port security
disabled:
The guest transmits on its VF.
On a flow miss, the eSwitch traps the packet to the VF representor. Open vSwitch classifies it and programs TC Flower (VXLAN encap toward the peer underlay IP, or delivery to a local VF).
Subsequent matching packets: guest VF → eSwitch VXLAN encapsulation → underlay VLAN on the VF-LAG bond → ToR → peer compute node → eSwitch VXLAN decapsulation → peer VF. The host CPU is not on that path until the idle timeout (
max-idle30000ms in the validated setup) expires.
ARP, IPv6 Neighbor Discovery, and the first packet of each new flow stay on the host. Eligible TCP/UDP flows after that run in the eSwitch. IPv6 tenant unicast was not validated explicitly. It should use the same miss-then-hit path.
Provider VLAN
Create a VLAN network on the ASAP² physnet and attach a direct switchdev
port the same way. The instance is on the provider segment directly: guest VF →
eSwitch VLAN push/pop → PF or VF-LAG uplink.
Note
That path does not use a Neutron logical router or a floating IP. See Configuration and activation.
VF-LAG high availability
The eSwitch distributes VF egress across both bond members and delivers ingress
from either wire to the destination VF. The ToR port-channel must match LACP
802.3ad and trunk the underlay VLAN.
VirtIO on the same overlay
Legacy instances with vnic-type=normal can attach to the same VXLAN
overlay. Attachment was validated. Traffic uses host Open vSwitch on the
switchdev PF. That is not the direct VF hardware path used for line-rate
tests.
Guest virtual router or firewall
Neutron routers do not offload. For north-south that must stay accelerated,
attach a guest appliance with two switchdev ports: one on the accelerated
VXLAN overlay and one on a provider or external network (VLAN or VXLAN) that is
also on the ASAP² path. The appliance performs routing, NAT, or stateful policy
in the guest. Overlay and provider hops that match hardware flows still run in
the eSwitch.
Compute A Fabric Compute B
Guest A VF --+ +-- Guest B VF
| |
eSwitch -- VXLAN encap -- underlay VLAN -- eSwitch
| on VF-LAG / ToR |
Guest appliance (optional): overlay VF + provider VF
Provider VLAN: Guest VF -- eSwitch VLAN push/pop -- uplink
Non-validated use cases and traffic paths
The following topologies and traffic paths are not part of the blueprint. However, some of them may work on other Neutron or NIC layout combinations. Because this validation did not cover them, do not treat them as supported.
Use case |
Why it might work |
Offload |
Status |
|---|---|---|---|
Floating IP on a |
NAT is not performed on the compute node that hosts the VF |
None. North-south still traverses a Neutron router and NAT |
Not validated. Association was not tested outside DVR |
IPv6 tenant unicast |
Same eSwitch miss-then-hit path as IPv4 after ND |
Eligible flows should offload after the first packet |
Not validated explicitly. Expected to work |
Geneve tenant overlay |
NVIDIA / OVS hardware offload literature includes Geneve |
Vendor claim |
Not validated. Target overlay was VXLAN only |
ASAP² on a single PF (no VF-LAG) |
VF-LAG is optional; a single uplink can still run |
Same eSwitch model on one uplink |
Not validated. |
Infrastructure and tenant traffic on one SmartNIC |
Some vendor reference designs use one high-speed bond with QoS (PFC/ECN), typically on later adapters |
Depends on hardware and lossless fabric. Not characterized on ConnectX-6 Lx |
Not validated. Not a supported MOSK LCM layout |
Hardware IPsec on VXLAN |
Documented for ConnectX-6 Dx and later, VXLAN only |
Not available on the validated ConnectX-6 Lx |
Out of scope. See Limitations |
Live migration of a direct ASAP² port, or vDPA |
Newer adapters can be tuned for SR-IOV live migration; vDPA keeps virtio in the guest |
Not used on ConnectX-6 Lx |
Not validated. Future requirement |
Centralized floating IP, if association succeeds, still does not gain ASAP²
acceleration. For accelerated external access, attach the instance to a
provider VLAN or an external VXLAN through a switchdev port, or use a guest
appliance as described in
Guest virtual router or firewall.