All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 00/12] vxlan metadata device vnifiltering support
@ 2022-02-22  2:52 Roopa Prabhu
  2022-02-22  2:52 ` [PATCH net-next v2 01/12] vxlan: move to its own directory Roopa Prabhu
                   ` (11 more replies)
  0 siblings, 12 replies; 28+ messages in thread
From: Roopa Prabhu @ 2022-02-22  2:52 UTC (permalink / raw)
  To: davem, kuba; +Cc: netdev, stephen, nikolay, idosch, dsahern, bpoirier

This series adds vnifiltering support to vxlan collect metadata device.

Motivation:
You can only use a single vxlan collect metadata device for a given
vxlan udp port in the system today. The vxlan collect metadata device
terminates all received vxlan packets. As shown in the below diagram,
there are use-cases where you need to support multiple such vxlan devices in
independent bridge domains. Each vxlan device must terminate the vni's
it is configured for.
Example usecase: In a service provider network a service provider
typically supports multiple bridge domains with overlapping vlans.
One bridge domain per customer. Vlans in each bridge domain are
mapped to globally unique vxlan ranges assigned to each customer. 

This series adds vnifiltering support to collect metadata devices to
terminate only configured vnis. This is similar to vlan filtering in
bridge driver. The vni filtering capability is provided by a new flag on
collect metadata device. 

In the below pic:
	- customer1 is mapped to br1 bridge domain
	- customer2 is mapped to br2 bridge domain
	- customer1 vlan 10-11 is mapped to vni 1001-1002
	- customer2 vlan 10-11 is mapped to vni 2001-2002
	- br1 and br2 are vlan filtering bridges
	- vxlan1 and vxlan2 are collect metadata devices with
	  vnifiltering enabled

┌──────────────────────────────────────────────────────────────────┐
│  switch                                                          │
│                                                                  │
│         ┌───────────┐                 ┌───────────┐              │
│         │           │                 │           │              │
│         │   br1     │                 │   br2     │              │
│         └┬─────────┬┘                 └──┬───────┬┘              │
│     vlans│         │               vlans │       │               │
│     10,11│         │                10,11│       │               │
│          │     vlanvnimap:               │    vlanvnimap:        │
│          │       10-1001,11-1002         │      10-2001,11-2002  │
│          │         │                     │       │               │
│   ┌──────┴┐     ┌──┴─────────┐       ┌───┴────┐  │               │
│   │ swp1  │     │vxlan1      │       │ swp2   │ ┌┴─────────────┐ │
│   │       │     │  vnifilter:│       │        │ │vxlan2        │ │
│   └───┬───┘     │   1001,1002│       └───┬────┘ │ vnifilter:   │ │
│       │         └────────────┘           │      │  2001,2002   │ │
│       │                                  │      └──────────────┘ │
│       │                                  │                       │
└───────┼──────────────────────────────────┼───────────────────────┘
        │                                  │
        │                                  │
  ┌─────┴───────┐                          │
  │  customer1  │                    ┌─────┴──────┐
  │ host/VM     │                    │customer2   │
  └─────────────┘                    │ host/VM    │
                                     └────────────┘

v2:
  - remove stale xstats declarations pointed out by Nikolay Aleksandrov
  - squash selinux patch with the tunnel api patch as pointed out by
    benjamin poirier
  - Fix various build issues:
	Reported-by: kernel test robot <lkp@intel.com>



Nikolay Aleksandrov (2):
  drivers: vxlan: vnifilter: per vni stats
  drivers: vxlan: vnifilter: add support for stats dumping

Roopa Prabhu (10):
  vxlan: move to its own directory
  vxlan_core: wrap label in ipv6 enabled checks in vxlan_xmit_one
  vxlan_core: move common declarations to private header file
  vxlan_core: move some fdb helpers to non-static
  vxlan_core: make multicast helper take rip and ifindex explicitly
  vxlan_core: add helper vxlan_vni_in_use
  rtnetlink: add new rtm tunnel api for tunnel id filtering
  vxlan_multicast: Move multicast helpers to a separate file
  vxlan: vni filtering support on collect metadata device
  selftests: add new tests for vxlan vnifiltering

 drivers/net/Makefile                          |   2 +-
 drivers/net/vxlan/Makefile                    |   7 +
 drivers/net/{vxlan.c => vxlan/vxlan_core.c}   | 414 +++-----
 drivers/net/vxlan/vxlan_multicast.c           | 272 +++++
 drivers/net/vxlan/vxlan_private.h             | 178 ++++
 drivers/net/vxlan/vxlan_vnifilter.c           | 962 ++++++++++++++++++
 include/net/vxlan.h                           |  54 +-
 include/uapi/linux/if_link.h                  |  47 +
 include/uapi/linux/rtnetlink.h                |   9 +
 security/selinux/nlmsgtab.c                   |   5 +-
 .../selftests/net/test_vxlan_vnifiltering.sh  | 581 +++++++++++
 11 files changed, 2271 insertions(+), 260 deletions(-)
 create mode 100644 drivers/net/vxlan/Makefile
 rename drivers/net/{vxlan.c => vxlan/vxlan_core.c} (94%)
 create mode 100644 drivers/net/vxlan/vxlan_multicast.c
 create mode 100644 drivers/net/vxlan/vxlan_private.h
 create mode 100644 drivers/net/vxlan/vxlan_vnifilter.c
 create mode 100755 tools/testing/selftests/net/test_vxlan_vnifiltering.sh

-- 
2.25.1


^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2022-02-26  2:15 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-02-22  2:52 [PATCH net-next v2 00/12] vxlan metadata device vnifiltering support Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 01/12] vxlan: move to its own directory Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 02/12] vxlan_core: fix build warnings in vxlan_xmit_one Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 03/12] vxlan_core: move common declarations to private header file Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 04/12] vxlan_core: move some fdb helpers to non-static Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 05/12] vxlan_core: make multicast helper take rip and ifindex explicitly Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 06/12] vxlan_core: add helper vxlan_vni_in_use Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 07/12] rtnetlink: add new rtm tunnel api for tunnel id filtering Roopa Prabhu
2022-02-23  1:26   ` Jakub Kicinski
2022-02-23  2:49     ` Roopa Prabhu
2022-02-23  3:50       ` Jakub Kicinski
2022-02-23  6:31         ` Roopa Prabhu
2022-02-23 16:22           ` Jakub Kicinski
2022-02-22  2:52 ` [PATCH net-next v2 08/12] vxlan_multicast: Move multicast helpers to a separate file Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 09/12] vxlan: vni filtering support on collect metadata device Roopa Prabhu
2022-02-24  4:04   ` Jakub Kicinski
2022-02-25 17:50     ` Roopa Prabhu
2022-02-24  4:25   ` Jakub Kicinski
2022-02-25 18:00     ` Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 10/12] selftests: add new tests for vxlan vnifiltering Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 11/12] drivers: vxlan: vnifilter: per vni stats Roopa Prabhu
2022-02-24  4:02   ` Jakub Kicinski
2022-02-25 17:49     ` Roopa Prabhu
2022-02-25 22:34       ` Jakub Kicinski
2022-02-26  2:15         ` Roopa Prabhu
2022-02-22  2:52 ` [PATCH net-next v2 12/12] drivers: vxlan: vnifilter: add support for stats dumping Roopa Prabhu
2022-02-24  3:56   ` Jakub Kicinski
2022-02-24 17:19     ` Roopa Prabhu

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.