From: David Ahern <firstname.lastname@example.org> To: Parav Pandit <email@example.com>, Saeed Mahameed <firstname.lastname@example.org>, Jakub Kicinski <email@example.com>, Jason Gunthorpe <firstname.lastname@example.org> Cc: "email@example.com" <firstname.lastname@example.org>, "email@example.com" <firstname.lastname@example.org>, "email@example.com" <firstname.lastname@example.org>, Jiri Pirko <email@example.com>, "firstname.lastname@example.org" <email@example.com>, Leon Romanovsky <firstname.lastname@example.org>, "email@example.com" <firstname.lastname@example.org> Subject: Re: [PATCH net-next 00/13] Add mlx5 subfunction support Date: Wed, 25 Nov 2020 07:37:58 -0700 [thread overview] Message-ID: <email@example.com> (raw) In-Reply-To: <BY5PR12MB43221CF1FAD99DF931ADE99CDCFA0@BY5PR12MB4322.namprd12.prod.outlook.com> On 11/24/20 11:00 PM, Parav Pandit wrote: > Hi David, > >> From: David Ahern <firstname.lastname@example.org> >> Sent: Wednesday, November 25, 2020 11:04 AM >> >> On 11/18/20 10:57 PM, Saeed Mahameed wrote: >>> >>> We are not slicing up any queues, from our HW and FW perspective SF == >>> VF literally, a full blown HW slice (Function), with isolated control >>> and data plane of its own, this is very different from VMDq and more >>> generic and secure. an SF device is exactly like a VF, doesn't steal >>> or share any HW resources or control/data path with others. SF is >>> basically SRIOV done right. >> >> What does that mean with respect to mac filtering and ntuple rules? >> >> Also, Tx is fairly easy to imagine, but how does hardware know how to direct >> packets for the Rx path? As an example, consider 2 VMs or containers with the >> same destination ip both using subfunction devices. > Since both VM/containers are having same IP, it is better to place them in different L2 domains via vlan, vxlan etc. ok, so relying on <vlan, dmac> pairs. > >> How does the nic know how to direct the ingress flows to the right queues for >> the subfunction? >> > Rx steering occurs through tc filters via representor netdev of SF. > Exactly same way as VF representor netdev operation. > > When devlink eswitch port is created as shown in example in cover letter, and also in patch-12, it creates the representor netdevice. > Below is the snippet of it. > > Add a devlink port of subfunction flavour: > $ devlink port add pci/0000:06:00.0 flavour pcisf pfnum 0 sfnum 88 > > Configure mac address of the port function: > $ devlink port function set ens2f0npf0sf88 hw_addr 00:00:00:00:88:88 > ^^^^^^^^^^^^^^ > This is the representor netdevice. It is created by port add command. > This name is setup by systemd/udev v245 and higher by utilizing the existing phys_port_name infrastructure already exists for PF and VF representors. hardware ensures only packets with that dmac are sent to the subfunction device. > > Now user can add unicast rx tc rule for example, > > $ tc filter add dev ens2f0np0 parent ffff: prio 1 flower dst_mac 00:00:00:00:88:88 action mirred egress redirect dev ens2f0npf0sf88 > > I didn't cover this tc example in cover letter, to keep it short. > But I had a one line description as below in the 'detail' section of cover-letter. > Hope it helps. > > - A SF supports eswitch representation and tc offload support similar > to existing PF and VF representors. > > Now above portion answers, how to forward the packet to subfunction. > But how to forward to the right rx queue out of multiple rxqueues? > This is done by the rss configuration done by the user, number of channels from ethtool. > Just like VF and PF. > The driver defaults are similar to VF, which user can change via ethtool. > so users can add flow steering or drop rules to SF devices. thanks,
next prev parent reply other threads:[~2020-11-25 14:38 UTC|newest] Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-11-12 19:24 Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 01/13] devlink: Prepare code to fill multiple port function attributes Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 02/13] devlink: Introduce PCI SF port flavour and port attribute Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 03/13] devlink: Support add and delete devlink port Parav Pandit 2020-11-18 16:21 ` David Ahern 2020-11-18 17:02 ` Parav Pandit 2020-11-18 18:03 ` David Ahern 2020-11-18 18:38 ` Jason Gunthorpe 2020-11-18 19:36 ` David Ahern 2020-11-18 20:42 ` Jason Gunthorpe 2020-11-18 19:22 ` Parav Pandit 2020-11-19 0:41 ` Jacob Keller 2020-11-19 1:17 ` David Ahern 2020-11-19 1:56 ` Samudrala, Sridhar 2020-11-19 0:52 ` Jacob Keller 2020-11-12 19:24 ` [PATCH net-next 04/13] devlink: Support get and set state of port function Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 05/13] devlink: Avoid global devlink mutex, use per instance reload lock Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 06/13] devlink: Introduce devlink refcount to reduce scope of global devlink_mutex Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 07/13] net/mlx5: SF, Add auxiliary device support Parav Pandit 2020-12-07 2:48 ` David Ahern 2020-12-07 4:53 ` Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 08/13] net/mlx5: SF, Add auxiliary device driver Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 09/13] net/mlx5: E-switch, Prepare eswitch to handle SF vport Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 10/13] net/mlx5: E-switch, Add eswitch helpers for " Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 11/13] net/mlx5: SF, Add SF configuration hardware commands Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 12/13] net/mlx5: SF, Add port add delete functionality Parav Pandit 2020-11-12 19:24 ` [PATCH net-next 13/13] net/mlx5: SF, Port function state change support Parav Pandit 2020-11-16 22:52 ` [PATCH net-next 00/13] Add mlx5 subfunction support Jakub Kicinski 2020-11-17 0:06 ` Saeed Mahameed 2020-11-17 1:58 ` Jakub Kicinski 2020-11-17 4:08 ` Parav Pandit 2020-11-17 17:11 ` Jakub Kicinski 2020-11-17 18:49 ` Jason Gunthorpe 2020-11-19 2:14 ` Jakub Kicinski 2020-11-19 4:35 ` David Ahern 2020-11-19 5:57 ` Saeed Mahameed 2020-11-20 1:31 ` Jakub Kicinski 2020-11-25 5:33 ` David Ahern 2020-11-25 6:00 ` Parav Pandit 2020-11-25 14:37 ` David Ahern [this message] 2020-11-20 1:29 ` Jakub Kicinski 2020-11-20 17:58 ` Alexander Duyck 2020-11-20 19:04 ` Samudrala, Sridhar 2020-11-23 21:51 ` Saeed Mahameed 2020-11-24 7:01 ` Jason Wang 2020-11-24 7:05 ` Jason Wang 2020-11-19 6:12 ` Saeed Mahameed 2020-11-19 8:25 ` Parav Pandit 2020-11-20 1:35 ` Jakub Kicinski 2020-11-20 3:34 ` Parav Pandit 2020-11-17 18:50 ` Parav Pandit 2020-11-19 2:23 ` Jakub Kicinski 2020-11-19 6:22 ` Saeed Mahameed 2020-11-19 14:00 ` Jason Gunthorpe 2020-11-20 3:35 ` Jakub Kicinski 2020-11-20 3:50 ` Parav Pandit 2020-11-20 16:16 ` Jason Gunthorpe
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [PATCH net-next 00/13] Add mlx5 subfunction support' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).