Re: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for virtual functions.

2018-05-31 Thread Ferriter, Cian
t; > dpif/show
> > > netdev@ovs-netdev: hit:0 missed:0
> > > br0:
> > > br0 65534/1: (tap)
> > > dpdk0 1/2: (dpdk: configured_rx_queues=1,
> > > configured_rxq_descriptors=2048, configured_tx_queues=2,
> > > configured_txq_descriptors=2048, mtu=1500, requested_rx_queues=1,
> > > requested_rxq_descriptors=2048, requested_tx_queues=2,
> > > requested_txq_descriptors=2048, rx_csum_offload=true)
> > >
> > >
> > > I have also successfully passed traffic into this VF port and out a
> > > regular PF port as summarised by the below CMDs:
> > > sudo $OVS_DIR/utilities/ovs-vsctl --timeout 10 add-port br0 dpdk0 --
> > > set Interface dpdk0 type=dpdk options:dpdk-devargs=:07:02.0 sudo
> > > $OVS_DIR/utilities/ovs-vsctl --timeout 10 add-port br0 dpdk1 -- set
> > > Interface dpdk1 type=dpdk options:dpdk-devargs=:07:00.1 sudo
> > > $OVS_DIR/utilities/ovs-ofctl del-flows br0 sudo
> > > $OVS_DIR/utilities/ovs- ofctl add-flow br0
> > > idle_timeout=0,in_port=1,action=output:2
> > > sudo $OVS_DIR/utilities/ovs-ofctl add-flow br0
> > > idle_timeout=0,in_port=2,action=output:1
> > >
> > > The two findings from my testing:
> > > * There are error messages coming from DPDK about promiscuous mode
> > > on the port. Is this something that should be disabled or otherwise
> > > considered in the next revision of the patch?
> > > * The patch doesn't apply cleanly to master. It looks like this is
> > > caused by the following patch:
> > > cferrite@silpixa00393943:~/ovs$ git show 65a87968f4 commit
> > > 65a87968f4cfd9cf7a433a3156d98118078f9e4e
> > > Author: Pablo Cascón 
> > > Date:   Fri Apr 27 17:40:49 2018 +0100
> > >
> > > netdev-dpdk: don't enable scatter for jumbo RX support for nfp
> > >
> > > I have one comment about the code below, if this is
> > > addressed/resolved I'm happy to give:
> > >
> > > Acked-by: Cian Ferriter 
> > > Tested-by: Cian Ferriter 
> > >
> > > Thanks,
> > > Cian
> > >
> > > > -Original Message-
> > > > From: ovs-dev-boun...@openvswitch.org [mailto:ovs-dev-
> > > > boun...@openvswitch.org] On Behalf Of Ian Stokes
> > > > Sent: 03 May 2018 14:25
> > > > To: d...@openvswitch.org
> > > > Subject: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for
> > > > virtual functions.
> > > >
> > > > From: Michal Weglicki 
> > > >
> > > > Virtual functions such as igb_vf and i40e_vf require HW_CRC_STRIP
> > > > to be explicitly enabled before configuration, otherwise device
> > > > configuration will fail.
> > > >
> > > > This commit achieves this by adding NETDEV_RX_HW_CRC_STRIP to
> > > > dpdk_hw_ol_features. When a dpdk device is added, the driver for
> > > > the device is examined, if the device is a virtual function enable
> > > HW_CRC_STRIP.
> > > >
> > > > Signed-off-by: Michal Weglicki 
> > > > ---
> > > >  lib/netdev-dpdk.c | 13 +
> > > >  1 file changed, 13 insertions(+)
> > > >
> > > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index
> > > > 3306b19..50c7619
> > > > 100644
> > > > --- a/lib/netdev-dpdk.c
> > > > +++ b/lib/netdev-dpdk.c
> > > > @@ -341,6 +341,7 @@ struct ingress_policer {
> > > >
> > > >  enum dpdk_hw_ol_features {
> > > >  NETDEV_RX_CHECKSUM_OFFLOAD = 1 << 0,
> > > > +NETDEV_RX_HW_CRC_STRIP = 1 << 1,
> > > >  };
> > > >
> > > >  /*
> > > > @@ -779,6 +780,11 @@ dpdk_eth_dev_queue_setup(struct
> netdev_dpdk
> > > > *dev, int n_rxq, int n_txq)
> > > >
> > > >  conf.rxmode.hw_ip_checksum = (dev->hw_ol_features &
> > > >NETDEV_RX_CHECKSUM_OFFLOAD) !=
> > > > 0;
> > > > +
> > > > +if ((dev->hw_ol_features & NETDEV_RX_HW_CRC_STRIP)) {
> > > > +conf.rxmode.hw_strip_crc = 1;
> > > > +}
> > > > +
> > >
> > > It seems that there's an extra set of parenthesis around the above
> > > if statement. Is this intentional?
> >
> > Sure will fix this for the v2.
> >
> > Ian
> > >
> > > >  /* A device may report more queues than it makes available
> > > > (this
> > > has
> > > >   * been observed for Intel xl710, which reserves some of them for
> > > >   * SRIOV):  rte_eth_*_queue_setup will fail if a queue is not
> > > > @@
> > > > -868,6
> > > > +874,13 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev)
> > > >
> > > >  rte_eth_dev_info_get(dev->port_id, );
> > > >
> > > > +if (strstr(info.driver_name, "vf") != NULL) {
> > > > +VLOG_INFO("Virtual function detected, HW_CRC_STRIP will
> > > > + be
> > > > enabled");
> > > > +dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP;
> > > > +} else {
> > > > +dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP;
> > > > +}
> > > > +
> > > >  if ((info.rx_offload_capa & rx_chksm_offload_capa) !=
> > > >  rx_chksm_offload_capa) {
> > > >  VLOG_WARN("Rx checksum offload is not supported on port "
> > > > --
> > > > 2.7.5
> > > >
> > > > ___
> > > > dev mailing list
> > > > d...@openvswitch.org
> > > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> > ___
> > dev mailing list
> > d...@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for virtual functions.

2018-05-30 Thread Stokes, Ian
vs-vsctl --timeout 10 add-port br0 dpdk1 -- set
> > Interface dpdk1 type=dpdk options:dpdk-devargs=:07:00.1 sudo
> > $OVS_DIR/utilities/ovs-ofctl del-flows br0 sudo
> > $OVS_DIR/utilities/ovs- ofctl add-flow br0
> > idle_timeout=0,in_port=1,action=output:2
> > sudo $OVS_DIR/utilities/ovs-ofctl add-flow br0
> > idle_timeout=0,in_port=2,action=output:1
> >
> > The two findings from my testing:
> > * There are error messages coming from DPDK about promiscuous mode on
> > the port. Is this something that should be disabled or otherwise
> > considered in the next revision of the patch?
> > * The patch doesn't apply cleanly to master. It looks like this is
> > caused by the following patch:
> > cferrite@silpixa00393943:~/ovs$ git show 65a87968f4 commit
> > 65a87968f4cfd9cf7a433a3156d98118078f9e4e
> > Author: Pablo Cascón 
> > Date:   Fri Apr 27 17:40:49 2018 +0100
> >
> > netdev-dpdk: don't enable scatter for jumbo RX support for nfp
> >
> > I have one comment about the code below, if this is addressed/resolved
> > I'm happy to give:
> >
> > Acked-by: Cian Ferriter 
> > Tested-by: Cian Ferriter 
> >
> > Thanks,
> > Cian
> >
> > > -Original Message-
> > > From: ovs-dev-boun...@openvswitch.org [mailto:ovs-dev-
> > > boun...@openvswitch.org] On Behalf Of Ian Stokes
> > > Sent: 03 May 2018 14:25
> > > To: d...@openvswitch.org
> > > Subject: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for
> > > virtual functions.
> > >
> > > From: Michal Weglicki 
> > >
> > > Virtual functions such as igb_vf and i40e_vf require HW_CRC_STRIP to
> > > be explicitly enabled before configuration, otherwise device
> > > configuration will fail.
> > >
> > > This commit achieves this by adding NETDEV_RX_HW_CRC_STRIP to
> > > dpdk_hw_ol_features. When a dpdk device is added, the driver for the
> > > device is examined, if the device is a virtual function enable
> > HW_CRC_STRIP.
> > >
> > > Signed-off-by: Michal Weglicki 
> > > ---
> > >  lib/netdev-dpdk.c | 13 +
> > >  1 file changed, 13 insertions(+)
> > >
> > > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index
> > > 3306b19..50c7619
> > > 100644
> > > --- a/lib/netdev-dpdk.c
> > > +++ b/lib/netdev-dpdk.c
> > > @@ -341,6 +341,7 @@ struct ingress_policer {
> > >
> > >  enum dpdk_hw_ol_features {
> > >  NETDEV_RX_CHECKSUM_OFFLOAD = 1 << 0,
> > > +NETDEV_RX_HW_CRC_STRIP = 1 << 1,
> > >  };
> > >
> > >  /*
> > > @@ -779,6 +780,11 @@ dpdk_eth_dev_queue_setup(struct netdev_dpdk
> > > *dev, int n_rxq, int n_txq)
> > >
> > >  conf.rxmode.hw_ip_checksum = (dev->hw_ol_features &
> > >NETDEV_RX_CHECKSUM_OFFLOAD) != 0;
> > > +
> > > +if ((dev->hw_ol_features & NETDEV_RX_HW_CRC_STRIP)) {
> > > +conf.rxmode.hw_strip_crc = 1;
> > > +}
> > > +
> >
> > It seems that there's an extra set of parenthesis around the above if
> > statement. Is this intentional?
> 
> Sure will fix this for the v2.
> 
> Ian
> >
> > >  /* A device may report more queues than it makes available
> > > (this
> > has
> > >   * been observed for Intel xl710, which reserves some of them for
> > >   * SRIOV):  rte_eth_*_queue_setup will fail if a queue is not
> > > @@
> > > -868,6
> > > +874,13 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev)
> > >
> > >  rte_eth_dev_info_get(dev->port_id, );
> > >
> > > +if (strstr(info.driver_name, "vf") != NULL) {
> > > +VLOG_INFO("Virtual function detected, HW_CRC_STRIP will be
> > > enabled");
> > > +dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP;
> > > +} else {
> > > +dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP;
> > > +}
> > > +
> > >  if ((info.rx_offload_capa & rx_chksm_offload_capa) !=
> > >  rx_chksm_offload_capa) {
> > >  VLOG_WARN("Rx checksum offload is not supported on port "
> > > --
> > > 2.7.5
> > >
> > > ___
> > > dev mailing list
> > > d...@openvswitch.org
> > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
> ___
> dev mailing list
> d...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for virtual functions.

2018-05-30 Thread Stokes, Ian
gt; Author: Pablo Cascón 
> Date:   Fri Apr 27 17:40:49 2018 +0100
> 
> netdev-dpdk: don't enable scatter for jumbo RX support for nfp
> 
> I have one comment about the code below, if this is addressed/resolved I'm
> happy to give:
> 
> Acked-by: Cian Ferriter 
> Tested-by: Cian Ferriter 
> 
> Thanks,
> Cian
> 
> > -Original Message-
> > From: ovs-dev-boun...@openvswitch.org [mailto:ovs-dev-
> > boun...@openvswitch.org] On Behalf Of Ian Stokes
> > Sent: 03 May 2018 14:25
> > To: d...@openvswitch.org
> > Subject: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for
> > virtual functions.
> >
> > From: Michal Weglicki 
> >
> > Virtual functions such as igb_vf and i40e_vf require HW_CRC_STRIP to
> > be explicitly enabled before configuration, otherwise device
> > configuration will fail.
> >
> > This commit achieves this by adding NETDEV_RX_HW_CRC_STRIP to
> > dpdk_hw_ol_features. When a dpdk device is added, the driver for the
> > device is examined, if the device is a virtual function enable
> HW_CRC_STRIP.
> >
> > Signed-off-by: Michal Weglicki 
> > ---
> >  lib/netdev-dpdk.c | 13 +
> >  1 file changed, 13 insertions(+)
> >
> > diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c index
> > 3306b19..50c7619
> > 100644
> > --- a/lib/netdev-dpdk.c
> > +++ b/lib/netdev-dpdk.c
> > @@ -341,6 +341,7 @@ struct ingress_policer {
> >
> >  enum dpdk_hw_ol_features {
> >  NETDEV_RX_CHECKSUM_OFFLOAD = 1 << 0,
> > +NETDEV_RX_HW_CRC_STRIP = 1 << 1,
> >  };
> >
> >  /*
> > @@ -779,6 +780,11 @@ dpdk_eth_dev_queue_setup(struct netdev_dpdk *dev,
> > int n_rxq, int n_txq)
> >
> >  conf.rxmode.hw_ip_checksum = (dev->hw_ol_features &
> >NETDEV_RX_CHECKSUM_OFFLOAD) != 0;
> > +
> > +if ((dev->hw_ol_features & NETDEV_RX_HW_CRC_STRIP)) {
> > +conf.rxmode.hw_strip_crc = 1;
> > +}
> > +
> 
> It seems that there's an extra set of parenthesis around the above if
> statement. Is this intentional?

Sure will fix this for the v2.

Ian
> 
> >  /* A device may report more queues than it makes available (this
> has
> >   * been observed for Intel xl710, which reserves some of them for
> >   * SRIOV):  rte_eth_*_queue_setup will fail if a queue is not @@
> > -868,6
> > +874,13 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev)
> >
> >  rte_eth_dev_info_get(dev->port_id, );
> >
> > +if (strstr(info.driver_name, "vf") != NULL) {
> > +VLOG_INFO("Virtual function detected, HW_CRC_STRIP will be
> > enabled");
> > +dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP;
> > +} else {
> > +dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP;
> > +}
> > +
> >  if ((info.rx_offload_capa & rx_chksm_offload_capa) !=
> >  rx_chksm_offload_capa) {
> >  VLOG_WARN("Rx checksum offload is not supported on port "
> > --
> > 2.7.5
> >
> > ___
> > dev mailing list
> > d...@openvswitch.org
> > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev


Re: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for virtual functions.

2018-05-25 Thread Ferriter, Cian
Hi,

I did all my testing with DPDK 17.11.2 and the following OVS commit (patch 
doesn't apply cleanly to master):
cferrite@silpixa00393943:~/ovs$ git show --summary
commit 6b71df2fc06921758798e41833d67d9daf647d19
Author: Kevin Traynor <ktray...@redhat.com>
Date:   Wed Apr 25 12:20:53 2018 +0100

faq: Document DPDK version maintenance.

Before the patch was applied, the following was seen when a VF port is added:
cferrite@silpixa00393943:~$ sudo $OVS_DIR/utilities/ovs-vsctl --timeout 10 
add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk 
options:dpdk-devargs=:07:02.0
ovs-vsctl: Error detected while setting up 'dpdk0': could not add network 
device dpdk0 to ofproto (No such device).  See ovs-vswitchd log for details.
ovs-vsctl: The default log directory is "/usr/local/var/log/openvswitch".

The vswitchd log after the VF port is added:
2018-05-25T09:31:16Z|00080|dpif_netdev|INFO|PMD thread on numa_id: 0, core id:  
3 created.
2018-05-25T09:31:16Z|00081|dpif_netdev|INFO|There are 1 pmd threads on numa 
node 0
2018-05-25T09:31:16Z|00082|dpdk|ERR|i40evf_dev_configure(): VF can't disable HW 
CRC Strip
2018-05-25T09:31:16Z|00083|netdev_dpdk|WARN|Interface dpdk0 eth_dev setup error 
Invalid argument
2018-05-25T09:31:16Z|00084|netdev_dpdk|ERR|Interface dpdk0(rxq:1 txq:2 lsc 
interrupt mode:false) configure error: Invalid argument
2018-05-25T09:31:16Z|00085|dpif_netdev|ERR|Failed to set interface dpdk0 new 
configuration
2018-05-25T09:31:16Z|00086|bridge|WARN|could not add network device dpdk0 to 
ofproto (No such device)

After the patch is applied there is no error message when the VF port is added:
cferrite@silpixa00393943:~$ sudo $OVS_DIR/utilities/ovs-vsctl --timeout 10 
add-port br0 dpdk0 -- set Interface dpdk0 type=dpdk 
options:dpdk-devargs=:07:02.0

The vswitchd log after the VF port is added:
2018-05-25T10:00:31Z|00081|netdev_dpdk|INFO|Virtual function detected, 
HW_CRC_STRIP will be enabled
2018-05-25T10:00:33Z|00082|dpdk|WARN|i40evf_execute_vf_cmd(): No response for 28
2018-05-25T10:00:33Z|00083|dpdk|ERR|i40evf_disable_vlan_strip(): Failed to 
execute command of VIRTCHNL_OP_DISABLE_VLAN_STRIPPING
2018-05-25T10:00:33Z|00084|dpdk|ERR|i40evf_config_promisc(): fail to execute 
command CONFIG_PROMISCUOUS_MODE
2018-05-25T10:00:33Z|00085|dpdk|ERR|i40evf_config_promisc(): fail to execute 
command CONFIG_PROMISCUOUS_MODE

There are errors related to promiscuous mode, but there is a message stating 
that CRC Stripping will be enabled so the patch is working for me.

Appctl query on the port:
cferrite@silpixa00393943:~$ sudo $OVS_DIR/utilities/ovs-appctl dpif/show
netdev@ovs-netdev: hit:0 missed:0
br0:
br0 65534/1: (tap)
dpdk0 1/2: (dpdk: configured_rx_queues=1, 
configured_rxq_descriptors=2048, configured_tx_queues=2, 
configured_txq_descriptors=2048, mtu=1500, requested_rx_queues=1, 
requested_rxq_descriptors=2048, requested_tx_queues=2, 
requested_txq_descriptors=2048, rx_csum_offload=true)


I have also successfully passed traffic into this VF port and out a regular PF 
port as summarised by the below CMDs:
sudo $OVS_DIR/utilities/ovs-vsctl --timeout 10 add-port br0 dpdk0 -- set 
Interface dpdk0 type=dpdk options:dpdk-devargs=:07:02.0
sudo $OVS_DIR/utilities/ovs-vsctl --timeout 10 add-port br0 dpdk1 -- set 
Interface dpdk1 type=dpdk options:dpdk-devargs=:07:00.1
sudo $OVS_DIR/utilities/ovs-ofctl del-flows br0
sudo $OVS_DIR/utilities/ovs-ofctl add-flow br0 
idle_timeout=0,in_port=1,action=output:2
sudo $OVS_DIR/utilities/ovs-ofctl add-flow br0 
idle_timeout=0,in_port=2,action=output:1

The two findings from my testing:
* There are error messages coming from DPDK about promiscuous mode on the port. 
Is this something that should be disabled or otherwise considered in the next 
revision of the patch?
* The patch doesn't apply cleanly to master. It looks like this is caused by 
the following patch:
cferrite@silpixa00393943:~/ovs$ git show 65a87968f4
commit 65a87968f4cfd9cf7a433a3156d98118078f9e4e
Author: Pablo Cascón <pablo.cas...@netronome.com>
Date:   Fri Apr 27 17:40:49 2018 +0100

netdev-dpdk: don't enable scatter for jumbo RX support for nfp

I have one comment about the code below, if this is addressed/resolved I'm 
happy to give:

Acked-by: Cian Ferriter <cian.ferri...@intel.com>
Tested-by: Cian Ferriter <cian.ferri...@intel.com>

Thanks,
Cian

> -Original Message-
> From: ovs-dev-boun...@openvswitch.org [mailto:ovs-dev-
> boun...@openvswitch.org] On Behalf Of Ian Stokes
> Sent: 03 May 2018 14:25
> To: d...@openvswitch.org
> Subject: [ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for
> virtual functions.
> 
> From: Michal Weglicki <michalx.wegli...@intel.com>
> 
> Virtual functions such as igb_vf and i40e_vf require HW_CRC_STRIP to be
> explicitly enabled before configuration, otherwise device configuration will
> fail.
> 
> This commit achiev

[ovs-dev] [PATCH v1] netdev-dpdk: Enable HW_CRC_STRIP for virtual functions.

2018-05-03 Thread Ian Stokes
From: Michal Weglicki 

Virtual functions such as igb_vf and i40e_vf require HW_CRC_STRIP to be
explicitly enabled before configuration, otherwise device configuration
will fail.

This commit achieves this by adding NETDEV_RX_HW_CRC_STRIP to
dpdk_hw_ol_features. When a dpdk device is added, the driver for the
device is examined, if the device is a virtual function enable
HW_CRC_STRIP.

Signed-off-by: Michal Weglicki 
---
 lib/netdev-dpdk.c | 13 +
 1 file changed, 13 insertions(+)

diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 3306b19..50c7619 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -341,6 +341,7 @@ struct ingress_policer {
 
 enum dpdk_hw_ol_features {
 NETDEV_RX_CHECKSUM_OFFLOAD = 1 << 0,
+NETDEV_RX_HW_CRC_STRIP = 1 << 1,
 };
 
 /*
@@ -779,6 +780,11 @@ dpdk_eth_dev_queue_setup(struct netdev_dpdk *dev, int 
n_rxq, int n_txq)
 
 conf.rxmode.hw_ip_checksum = (dev->hw_ol_features &
   NETDEV_RX_CHECKSUM_OFFLOAD) != 0;
+
+if ((dev->hw_ol_features & NETDEV_RX_HW_CRC_STRIP)) {
+conf.rxmode.hw_strip_crc = 1;
+}
+
 /* A device may report more queues than it makes available (this has
  * been observed for Intel xl710, which reserves some of them for
  * SRIOV):  rte_eth_*_queue_setup will fail if a queue is not
@@ -868,6 +874,13 @@ dpdk_eth_dev_init(struct netdev_dpdk *dev)
 
 rte_eth_dev_info_get(dev->port_id, );
 
+if (strstr(info.driver_name, "vf") != NULL) {
+VLOG_INFO("Virtual function detected, HW_CRC_STRIP will be enabled");
+dev->hw_ol_features |= NETDEV_RX_HW_CRC_STRIP;
+} else {
+dev->hw_ol_features &= ~NETDEV_RX_HW_CRC_STRIP;
+}
+
 if ((info.rx_offload_capa & rx_chksm_offload_capa) !=
 rx_chksm_offload_capa) {
 VLOG_WARN("Rx checksum offload is not supported on port "
-- 
2.7.5

___
dev mailing list
d...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-dev