Lines Matching +full:pcie +full:- +full:mac
1 .. SPDX-License-Identifier: GPL-2.0
8 used to control internal switching on SmartNICs. For the closely-related port
9 representors on physical (multi-port) switches, see
13 ----------
15 Since the mid-2010s, network cards have started offering more complex
16 virtualisation capabilities than the legacy SR-IOV approach (with its simple
17 MAC/VLAN-based switching model) can support. This led to a desire to offload
18 software-defined networks (such as OpenVSwitch) to these NICs to specify the
23 virtual switches and IOV devices. Just as each physical port of a Linux-
41 -----------
43 This document uses the term "switchdev function" to refer to the PCIe function
47 Depending on NIC design, a multi-port NIC might have a single switchdev function
52 only create representors for the ports on the (sub-)switch it directly
59 ---------------------------
68 fast-path rules in the virtual switch. Packets transmitted on the
87 -----------------------------------------
98 - VFs belonging to the switchdev function.
99 - Other PFs on the local PCIe controller, and any VFs belonging to them.
100 - PFs and VFs on external PCIe controllers on the device (e.g. for any embedded
101 System-on-Chip within the SmartNIC).
102 - PFs and VFs with other personalities, including network block devices (such
103 as a vDPA virtio-blk PF backed by remote/distributed storage), if (and only
107 - Subfunctions (SFs) belonging to any of the above PFs or VFs, if they have
109 - Any accelerators or plugins on the device whose interface to the network is
110 through a virtual switch port, even if they do not have a corresponding PCIe
116 It is a common misunderstanding to conflate virtual ports with PCIe virtual
120 A PCIe function which does not have network access through the internal switch
126 The representor represents the virtual port, not the PCIe function nor the 'end
137 Contrast this with the case of a virtio-blk implementation which forwards the
140 run over the virtual switch and the virtio-blk PF should thus *not* have a
144 -----------------------------
147 port on the switch, create a pure-software netdevice which has some form of
148 in-kernel reference to the switchdev function's own netdevice or driver private
160 --------------------------------
162 The representor netdevice should *not* directly refer to a PCIe device (e.g.
163 through ``net_dev->dev.parent`` / ``SET_NETDEV_DEV()``), either of the
169 :ref:`Documentation/networking/devlink/devlink-port.rst <devlink_port>` for the
178 correspond to PCIe functions (e.g. accelerators and plugins).
181 -------------------------------------------
210 Of course the rules can (if supported by the NIC) include packet-modifying
231 perform an ARP/neighbour table lookup to find the MAC addresses to use in the
242 Configuring the representee's MAC
243 ---------------------------------
252 the representor MTU should correspond to the representee's MRU and vice-versa.)
255 MAC address of the representee; other methods available to do this include:
257 - legacy SR-IOV (``ip link set DEVICE vf NUM mac LLADDR``)
258 - devlink port function (see **devlink-port(8)** and
259 :ref:`Documentation/networking/devlink/devlink-port.rst <devlink_port>`)