<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/sfc/ef100_rep.h, branch linux-6.18.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.18.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.18.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2023-02-16T11:03:13Z</updated>
<entry>
<title>sfc: add support for devlink port_function_hw_addr_get in ef100</title>
<updated>2023-02-16T11:03:13Z</updated>
<author>
<name>Alejandro Lucero</name>
<email>alejandro.lucero-palau@amd.com</email>
</author>
<published>2023-02-15T09:08:27Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=fa78b01718d2f1cc95ce052fad3aa49c46d024eb'/>
<id>urn:sha1:fa78b01718d2f1cc95ce052fad3aa49c46d024eb</id>
<content type='text'>
Using the builtin client handle id infrastructure, add support for
obtaining the mac address linked to mports in ef100. This implies
to execute an MCDI command for getting the data from the firmware
for each devlink port.

Signed-off-by: Alejandro Lucero &lt;alejandro.lucero-palau@amd.com&gt;
Reviewed-by: Jiri Pirko &lt;jiri@nvidia.com&gt;
Acked-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>sfc: add devlink port support for ef100</title>
<updated>2023-02-16T11:03:12Z</updated>
<author>
<name>Alejandro Lucero</name>
<email>alejandro.lucero-palau@amd.com</email>
</author>
<published>2023-02-15T09:08:25Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=25414b2a64ae7ea8742933bd7b1d056e069b15a7'/>
<id>urn:sha1:25414b2a64ae7ea8742933bd7b1d056e069b15a7</id>
<content type='text'>
Using the data when enumerating mports, create devlink ports just before
netdevs are registered and remove those devlink ports after netdev has
been unregistered.

Signed-off-by: Alejandro Lucero &lt;alejandro.lucero-palau@amd.com&gt;
Reviewed-by: Jiri Pirko &lt;jiri@nvidia.com&gt;
Acked-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>sfc: enumerate mports in ef100</title>
<updated>2023-02-16T11:03:12Z</updated>
<author>
<name>Alejandro Lucero</name>
<email>alejandro.lucero-palau@amd.com</email>
</author>
<published>2023-02-15T09:08:23Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=a6a15aca4207b5f5ed44f594ddd0ddeb6a495654'/>
<id>urn:sha1:a6a15aca4207b5f5ed44f594ddd0ddeb6a495654</id>
<content type='text'>
MAE ports (mports) are the ports on the EF100 embedded switch such
as networking PCIe functions, the physical port, and potentially
others.

Signed-off-by: Alejandro Lucero &lt;alejandro.lucero-palau@amd.com&gt;
Acked-by: Martin Habets &lt;habetsm.xilinx@gmail.com&gt;
Signed-off-by: Paolo Abeni &lt;pabeni@redhat.com&gt;
</content>
</entry>
<entry>
<title>sfc: add a hashtable for offloaded TC rules</title>
<updated>2022-09-28T08:43:22Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-09-26T18:57:34Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f54a28a211664017531aebc997bf3c6a279e0d6f'/>
<id>urn:sha1:f54a28a211664017531aebc997bf3c6a279e0d6f</id>
<content type='text'>
Nothing inserts into this table yet, but we have code to remove rules
 on FLOW_CLS_DESTROY or at driver teardown time, in both cases also
 attempting to remove the corresponding hardware rules.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: insert default MAE rules to connect VFs to representors</title>
<updated>2022-07-30T04:22:06Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-07-28T18:57:49Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=67ab160ed08f5bb55aff55aa41e6bde56cb83661'/>
<id>urn:sha1:67ab160ed08f5bb55aff55aa41e6bde56cb83661</id>
<content type='text'>
Default rules are low-priority switching rules which the hardware uses
 in the absence of higher-priority rules.  Each representor requires a
 corresponding rule matching traffic from its representee VF and
 delivering to the PF (where a check on INGRESS_MPORT in
 __ef100_rx_packet() will direct it to the representor).  No rule is
 required in the reverse direction, because representor TX uses a TX
 override descriptor to bypass the MAE and deliver directly to the VF.
Since inserting any rule into the MAE disables the firmware's own
 default rules, also insert a pair of rules to connect the PF to the
 physical network port and vice-versa.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: receive packets from EF100 VFs into representors</title>
<updated>2022-07-30T04:22:06Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-07-28T18:57:48Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=f50e8fcda6b8d39db9098f7e1146dc491696ab91'/>
<id>urn:sha1:f50e8fcda6b8d39db9098f7e1146dc491696ab91</id>
<content type='text'>
If the source m-port of a packet in __ef100_rx_packet() is a VF,
 hand off the packet to the corresponding representor with
 efx_ef100_rep_rx_packet().

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: ef100 representor RX top half</title>
<updated>2022-07-30T04:22:05Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-07-28T18:57:45Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9fe00c800ecd667acb7748cab7fcd3068c58498a'/>
<id>urn:sha1:9fe00c800ecd667acb7748cab7fcd3068c58498a</id>
<content type='text'>
Representor RX uses a NAPI context driven by a 'fake interrupt': when
 the parent PF receives a packet destined for the representor, it adds
 it to an SKB list (efv-&gt;rx_list), and schedules NAPI if the 'fake
 interrupt' is primed.  The NAPI poll then pulls packets off this list
 and feeds them to the stack with netif_receive_skb_list().
This scheme allows us to decouple representor RX from the parent PF's
 RX fast-path.
This patch implements the 'top half', which builds an SKB, copies data
 into it from the RX buffer (which can then be released), adds it to
 the queue and fires the 'fake interrupt' if necessary.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: ef100 representor RX NAPI poll</title>
<updated>2022-07-30T04:22:05Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-07-28T18:57:44Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=69bb5fa73d2b2d7fa3ccbf16e8b1f055fe2d26b1'/>
<id>urn:sha1:69bb5fa73d2b2d7fa3ccbf16e8b1f055fe2d26b1</id>
<content type='text'>
This patch adds the 'bottom half' napi-&gt;poll routine for representor RX.
See the next patch (with the top half) for an explanation of the 'fake
 interrupt' scheme used to drive this NAPI context.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>sfc: support passing a representor to the EF100 TX path</title>
<updated>2022-07-22T11:50:06Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-07-20T18:33:47Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=02443ab8c9314134c9cd58946121726e4cd9a5c1'/>
<id>urn:sha1:02443ab8c9314134c9cd58946121726e4cd9a5c1</id>
<content type='text'>
A non-null efv in __ef100_enqueue_skb() indicates that the packet is
 from that representor, should be transmitted with a suitable option
 descriptor (to instruct the switch to deliver it to the representee),
 and should not be accounted to the parent PF's stats or BQL.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>sfc: determine representee m-port for EF100 representors</title>
<updated>2022-07-22T11:50:06Z</updated>
<author>
<name>Edward Cree</name>
<email>ecree.xilinx@gmail.com</email>
</author>
<published>2022-07-20T18:29:34Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=da56552d04c54b68788fb3700b5150814e1de3d1'/>
<id>urn:sha1:da56552d04c54b68788fb3700b5150814e1de3d1</id>
<content type='text'>
An MAE port, or m-port, is a port (source/destination for traffic) on
 the Match-Action Engine (the internal switch on EF100).
Representors will use their representee's m-port for two purposes: as
 a destination override on TX from the representor, and as a source
 match in 'default rules' to steer representee traffic (when not
 matched by e.g. a TC flower rule) to representor RX via the parent
 PF's receive queue.

Signed-off-by: Edward Cree &lt;ecree.xilinx@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
