From: Jakob Meng <[email protected]>

For better usability, the function pairs get_config() and
set_config() for each netdev should be symmetric: Options which are
accepted by set_config() should be returned by get_config() and the
latter should output valid options for set_config() only.

This patch moves key-value pairs which are no valid options from
get_config() to the get_status() callback. For example, get_config()
in lib/netdev-dpdk.c returned {configured,requested}_{rx,tx}_queues
previously. For requested rx queues the proper option name is n_rxq,
so requested_rx_queues has been renamed respectively. Tx queues
cannot be changed by the user, hence requested_tx_queues has been
dropped. Both configured_{rx,tx}_queues will be returned as
n_{r,t}xq in the get_status() callback.

The documentation in vswitchd/vswitch.xml for status columns as well
as tests have been updated accordingly.

Reported-at: https://bugzilla.redhat.com/1949855
Signed-off-by: Jakob Meng <[email protected]>
---
 Documentation/intro/install/afxdp.rst | 12 ++---
 Documentation/topics/dpdk/phy.rst     |  4 +-
 lib/netdev-afxdp.c                    | 21 +++++++-
 lib/netdev-afxdp.h                    |  1 +
 lib/netdev-dpdk.c                     | 49 ++++++++++--------
 lib/netdev-dummy.c                    | 17 ++++--
 lib/netdev-linux-private.h            |  2 +
 lib/netdev-linux.c                    |  4 +-
 tests/bridge.at                       | 14 ++---
 tests/dpctl.at                        | 12 ++---
 tests/mcast-snooping.at               |  6 +--
 tests/mpls-xlate.at                   | 34 ++++++------
 tests/netdev-type.at                  |  4 +-
 tests/nsh.at                          | 20 ++++----
 tests/ofproto-dpif.at                 | 36 ++++++-------
 tests/ovs-ofctl.at                    |  4 +-
 tests/ovs-vswitchd.at                 |  6 +--
 tests/packet-type-aware.at            | 50 +++++++++---------
 tests/pmd.at                          | 42 +++++++--------
 tests/system-dpdk.at                  | 60 +++++++++++++---------
 tests/system-layer3-tunnels.at        |  8 +--
 tests/tunnel-push-pop-ipv6.at         | 18 +++----
 tests/tunnel-push-pop.at              | 18 +++----
 tests/tunnel.at                       | 74 +++++++++++++--------------
 vswitchd/vswitch.xml                  | 70 +++++++++++++++++++++++--
 25 files changed, 347 insertions(+), 239 deletions(-)

diff --git a/Documentation/intro/install/afxdp.rst 
b/Documentation/intro/install/afxdp.rst
index 51c24bf5b..5776614c8 100644
--- a/Documentation/intro/install/afxdp.rst
+++ b/Documentation/intro/install/afxdp.rst
@@ -219,14 +219,10 @@ Otherwise, enable debugging by::
   ovs-appctl vlog/set netdev_afxdp::dbg
 
 To check which XDP mode was chosen by ``best-effort``, you can look for
-``xdp-mode-in-use`` in the output of ``ovs-appctl dpctl/show``::
-
-  # ovs-appctl dpctl/show
-  netdev@ovs-netdev:
-    <...>
-    port 2: ens802f0 (afxdp: n_rxq=1, use-need-wakeup=true,
-                      xdp-mode=best-effort,
-                      xdp-mode-in-use=native-with-zerocopy)
+``xdp-mode`` in the output of ``ovs-vsctl get interface INT status:xdp-mode``::
+
+  # ovs-vsctl get interface ens802f0 status:xdp-mode
+  "native-with-zerocopy"
 
 References
 ----------
diff --git a/Documentation/topics/dpdk/phy.rst 
b/Documentation/topics/dpdk/phy.rst
index f66b106c4..41cc3588a 100644
--- a/Documentation/topics/dpdk/phy.rst
+++ b/Documentation/topics/dpdk/phy.rst
@@ -198,7 +198,7 @@ Example::
    a dedicated queue, it will be explicit::
 
       $ ovs-vsctl get interface dpdk-p0 status
-      {..., rx_steering=unsupported}
+      {..., rx-steering=unsupported}
 
    More details can often be found in ``ovs-vswitchd.log``::
 
@@ -499,7 +499,7 @@ its options::
 
     $ ovs-appctl dpctl/show
     [...]
-      port 3: dpdk-rep0 (dpdk: configured_rx_queues=1, ..., 
dpdk-vf-mac=00:11:22:33:44:55, ...)
+      port 3: dpdk-rep0 (dpdk: ..., dpdk-vf-mac=00:11:22:33:44:55, ...)
 
     $ ovs-vsctl show
     [...]
diff --git a/lib/netdev-afxdp.c b/lib/netdev-afxdp.c
index 16f26bc30..8519b5a2b 100644
--- a/lib/netdev-afxdp.c
+++ b/lib/netdev-afxdp.c
@@ -672,8 +672,6 @@ netdev_afxdp_get_config(const struct netdev *netdev, struct 
smap *args)
     ovs_mutex_lock(&dev->mutex);
     smap_add_format(args, "n_rxq", "%d", netdev->n_rxq);
     smap_add_format(args, "xdp-mode", "%s", xdp_modes[dev->xdp_mode].name);
-    smap_add_format(args, "xdp-mode-in-use", "%s",
-                    xdp_modes[dev->xdp_mode_in_use].name);
     smap_add_format(args, "use-need-wakeup", "%s",
                     dev->use_need_wakeup ? "true" : "false");
     ovs_mutex_unlock(&dev->mutex);
@@ -1367,3 +1365,22 @@ netdev_afxdp_get_stats(const struct netdev *netdev,
 
     return error;
 }
+
+int
+netdev_afxdp_get_status(const struct netdev *netdev,
+                        struct smap *args)
+{
+    int error = netdev_linux_get_status(netdev, args);
+    if (error) {
+        return error;
+    }
+
+    struct netdev_linux *dev = netdev_linux_cast(netdev);
+
+    ovs_mutex_lock(&dev->mutex);
+    smap_add_format(args, "xdp-mode", "%s",
+                    xdp_modes[dev->xdp_mode_in_use].name);
+    ovs_mutex_unlock(&dev->mutex);
+
+    return error;
+}
diff --git a/lib/netdev-afxdp.h b/lib/netdev-afxdp.h
index e91cd102d..bd3b9dfbe 100644
--- a/lib/netdev-afxdp.h
+++ b/lib/netdev-afxdp.h
@@ -63,6 +63,7 @@ int netdev_afxdp_set_config(struct netdev *netdev, const 
struct smap *args,
 int netdev_afxdp_get_config(const struct netdev *netdev, struct smap *args);
 int netdev_afxdp_get_stats(const struct netdev *netdev_,
                            struct netdev_stats *stats);
+int netdev_afxdp_get_status(const struct netdev *netdev, struct smap *args);
 int netdev_afxdp_get_custom_stats(const struct netdev *netdev,
                                   struct netdev_custom_stats *custom_stats);
 
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 55700250d..2c5f0a097 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -1905,24 +1905,26 @@ netdev_dpdk_get_config(const struct netdev *netdev, 
struct smap *args)
 
     ovs_mutex_lock(&dev->mutex);
 
-    smap_add_format(args, "requested_rx_queues", "%d", dev->user_n_rxq);
-    smap_add_format(args, "configured_rx_queues", "%d", netdev->n_rxq);
-    smap_add_format(args, "requested_tx_queues", "%d", dev->requested_n_txq);
-    smap_add_format(args, "configured_tx_queues", "%d", netdev->n_txq);
-    smap_add_format(args, "mtu", "%d", dev->mtu);
+    smap_add_format(args, "dpdk-devargs", "%s", dev->devargs);
+    smap_add_format(args, "n_rxq", "%d", dev->user_n_rxq);
+    smap_add_format(args, "rx-flow-ctrl", "%s",
+        dev->fc_conf.mode == RTE_ETH_FC_TX_PAUSE ||
+        dev->fc_conf.mode == RTE_ETH_FC_FULL ? "true" : "false");
+    smap_add_format(args, "tx-flow-ctrl", "%s",
+        dev->fc_conf.mode == RTE_ETH_FC_RX_PAUSE ||
+        dev->fc_conf.mode == RTE_ETH_FC_FULL ? "true" : "false");
+    smap_add_format(args, "flow-ctrl-autoneg", "%s",
+        dev->fc_conf.autoneg ? "true" : "false");
 
     if (dev->type == DPDK_DEV_ETH) {
         smap_add_format(args, "n_rxq_desc", "%d", dev->rxq_size);
         smap_add_format(args, "n_txq_desc", "%d", dev->txq_size);
-        if (dev->hw_ol_features & NETDEV_RX_CHECKSUM_OFFLOAD) {
-            smap_add(args, "rx_csum_offload", "true");
-        } else {
-            smap_add(args, "rx_csum_offload", "false");
-        }
+
         if (dev->rx_steer_flags == DPDK_RX_STEER_LACP) {
             smap_add(args, "rx-steering", "rss+lacp");
         }
-        smap_add(args, "lsc_interrupt_mode",
+
+        smap_add(args, "dpdk-lsc-interrupt",
                  dev->lsc_interrupt_mode ? "true" : "false");
 
         if (dpdk_port_is_representor(dev)) {
@@ -1930,6 +1932,7 @@ netdev_dpdk_get_config(const struct netdev *netdev, 
struct smap *args)
                             ETH_ADDR_ARGS(dev->requested_hwaddr));
         }
     }
+
     ovs_mutex_unlock(&dev->mutex);
 
     return 0;
@@ -4161,6 +4164,13 @@ netdev_dpdk_get_status(const struct netdev *netdev, 
struct smap *args)
     smap_add_format(args, "max_vfs", "%u", dev_info.max_vfs);
     smap_add_format(args, "max_vmdq_pools", "%u", dev_info.max_vmdq_pools);
 
+    smap_add_format(args, "n_rxq", "%d", netdev->n_rxq);
+    smap_add_format(args, "n_txq", "%d", netdev->n_txq);
+
+    smap_add(args, "rx_csum_offload",
+             dev->hw_ol_features & NETDEV_RX_CHECKSUM_OFFLOAD
+             ? "true" : "false");
+
     /* Querying the DPDK library for iftype may be done in future, pending
      * support; cf. RFC 3635 Section 3.2.4. */
     enum { IF_TYPE_ETHERNETCSMACD = 6 };
@@ -4186,16 +4196,15 @@ netdev_dpdk_get_status(const struct netdev *netdev, 
struct smap *args)
                         ETH_ADDR_ARGS(dev->hwaddr));
     }
 
-    if (rx_steer_flags) {
-        if (!rx_steer_flows_num) {
-            smap_add(args, "rx_steering", "unsupported");
+    smap_add(args, "rx-steering", dev->rx_steer_flags == DPDK_RX_STEER_LACP
+                                  ? "rss+lacp" : "unsupported");
+
+    if (rx_steer_flags && rx_steer_flows_num) {
+        smap_add_format(args, "rx_steering_queue", "%d", n_rxq - 1);
+        if (n_rxq > 2) {
+            smap_add_format(args, "rss_queues", "0-%d", n_rxq - 2);
         } else {
-            smap_add_format(args, "rx_steering_queue", "%d", n_rxq - 1);
-            if (n_rxq > 2) {
-                smap_add_format(args, "rss_queues", "0-%d", n_rxq - 2);
-            } else {
-                smap_add(args, "rss_queues", "0");
-            }
+            smap_add(args, "rss_queues", "0");
         }
     }
 
diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c
index 1a54add87..fe7b807f9 100644
--- a/lib/netdev-dummy.c
+++ b/lib/netdev-dummy.c
@@ -795,14 +795,23 @@ netdev_dummy_get_config(const struct netdev *dev, struct 
smap *args)
 
     dummy_packet_conn_get_config(&netdev->conn, args);
 
+    /* pcap, rxq_pcap and tx_pcap cannot be recovered because filenames have
+     * been discarded after opening file descriptors */
+
+    smap_add_format(args, "ol_ip_csum_set_good", "%s",
+        netdev->ol_ip_csum_set_good ? "true" : "false");
+
+    smap_add_format(args, "ol_ip_csum", "%s",
+        netdev->ol_ip_csum ? "true" : "false");
+
     /* 'dummy-pmd' specific config. */
     if (!netdev_is_pmd(dev)) {
         goto exit;
     }
-    smap_add_format(args, "requested_rx_queues", "%d", 
netdev->requested_n_rxq);
-    smap_add_format(args, "configured_rx_queues", "%d", dev->n_rxq);
-    smap_add_format(args, "requested_tx_queues", "%d", 
netdev->requested_n_txq);
-    smap_add_format(args, "configured_tx_queues", "%d", dev->n_txq);
+
+    smap_add_format(args, "n_rxq", "%d", netdev->requested_n_rxq);
+    smap_add_format(args, "n_txq", "%d", netdev->requested_n_txq);
+    smap_add_format(args, "numa_id", "%d", netdev->requested_numa_id);
 
 exit:
     ovs_mutex_unlock(&netdev->mutex);
diff --git a/lib/netdev-linux-private.h b/lib/netdev-linux-private.h
index 0ecf0f748..53e68d122 100644
--- a/lib/netdev-linux-private.h
+++ b/lib/netdev-linux-private.h
@@ -55,6 +55,8 @@ void netdev_linux_run(const struct netdev_class *);
 int get_stats_via_netlink(const struct netdev *netdev_,
                           struct netdev_stats *stats);
 
+int netdev_linux_get_status(const struct netdev *netdev_, struct smap *smap);
+
 struct netdev_linux {
     struct netdev up;
 
diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c
index cca340879..70521e3c7 100644
--- a/lib/netdev-linux.c
+++ b/lib/netdev-linux.c
@@ -3493,7 +3493,7 @@ netdev_linux_get_next_hop(const struct in_addr *host, 
struct in_addr *next_hop,
     return ENXIO;
 }
 
-static int
+int
 netdev_linux_get_status(const struct netdev *netdev_, struct smap *smap)
 {
     struct netdev_linux *netdev = netdev_linux_cast(netdev_);
@@ -3759,7 +3759,7 @@ const struct netdev_class netdev_internal_class = {
     .destruct = netdev_afxdp_destruct,                          \
     .get_stats = netdev_afxdp_get_stats,                        \
     .get_custom_stats = netdev_afxdp_get_custom_stats,          \
-    .get_status = netdev_linux_get_status,                      \
+    .get_status = netdev_afxdp_get_status,                      \
     .set_config = netdev_afxdp_set_config,                      \
     .get_config = netdev_afxdp_get_config,                      \
     .reconfigure = netdev_afxdp_reconfigure,                    \
diff --git a/tests/bridge.at b/tests/bridge.at
index 904f1381c..7e1760f78 100644
--- a/tests/bridge.at
+++ b/tests/bridge.at
@@ -12,9 +12,9 @@ add_of_ports br0 1 2
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 # Delete p1 from the datapath with "ovs-dpctl del-if"
@@ -23,8 +23,8 @@ AT_CHECK([ovs-appctl dpctl/del-if dummy@ovs-dummy p1])
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 # Force reconfiguration and make sure that p1 got added back.
@@ -32,8 +32,8 @@ AT_CHECK([ovs-vsctl del-port p2])
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 OVS_APP_EXIT_AND_WAIT([ovs-vswitchd])
 OVS_APP_EXIT_AND_WAIT([ovsdb-server])
diff --git a/tests/dpctl.at b/tests/dpctl.at
index d2f1046f8..57e7ef0e9 100644
--- a/tests/dpctl.at
+++ b/tests/dpctl.at
@@ -23,15 +23,15 @@ AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
 dummy@br0:
   lookups: hit:0 missed:0 lost:0
   flows: 0
-  port 0: br0 (dummy-internal)
+  port 0: br0 (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy,port_no=5])
 AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
 dummy@br0:
   lookups: hit:0 missed:0 lost:0
   flows: 0
-  port 0: br0 (dummy-internal)
-  port 5: vif1.0 (dummy)
+  port 0: br0 (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+  port 5: vif1.0 (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 AT_CHECK([ovs-appctl dpctl/add-if dummy@br0 vif1.0,type=dummy], [2], [],
   [stderr])
@@ -54,7 +54,7 @@ AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
 dummy@br0:
   lookups: hit:0 missed:0 lost:0
   flows: 0
-  port 0: br0 (dummy-internal)
+  port 0: br0 (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 vif1.0], [2], [],
   [ovs-vswitchd: no port named vif1.0
@@ -64,7 +64,7 @@ AT_CHECK([ovs-appctl dpctl/show dummy@br0], [0], [dnl
 dummy@br0:
   lookups: hit:0 missed:0 lost:0
   flows: 0
-  port 0: br0 (dummy-internal)
+  port 0: br0 (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 AT_CHECK([ovs-appctl dpctl/del-if dummy@br0 nonexistent], [2], [],
   [ovs-vswitchd: no port named nonexistent
@@ -150,4 +150,4 @@ ovs-appctl: ovs-vswitchd: server returned an error
 ])
 AT_CHECK([ovs-appctl dpctl/ct-del-limits zone=])
 OVS_VSWITCHD_STOP
-AT_CLEANUP
\ No newline at end of file
+AT_CLEANUP
diff --git a/tests/mcast-snooping.at b/tests/mcast-snooping.at
index d5b7c4774..19fac46c6 100644
--- a/tests/mcast-snooping.at
+++ b/tests/mcast-snooping.at
@@ -24,9 +24,9 @@ AT_CHECK([
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 ovs-appctl time/stop
diff --git a/tests/mpls-xlate.at b/tests/mpls-xlate.at
index 7474becc8..d777298e0 100644
--- a/tests/mpls-xlate.at
+++ b/tests/mpls-xlate.at
@@ -16,11 +16,11 @@ OVS_VSWITCHD_START(
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p1 2/none: (patch: peer=p2)
   br1:
-    br1 65534/101: (dummy-internal)
+    br1 65534/101: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p2 1/none: (patch: peer=p1)
 ])
 
@@ -163,13 +163,13 @@ AT_CHECK([ovs-appctl vlog/set dpif:dbg dpif_netdev:dbg 
ofproto_dpif_upcall:dbg])
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p1 2/none: (patch: peer=p2)
   br1:
-    br1 65534/101: (dummy-internal)
+    br1 65534/101: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p2 1/none: (patch: peer=p1)
-    p3 3/3: (dummy)
+    p3 3/3: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl MPLS PUSH + POP.
@@ -225,13 +225,13 @@ OVS_VSWITCHD_START(
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p2 2/none: (patch: peer=p3)
   br1:
-    br1 65534/101: (dummy-internal)
+    br1 65534/101: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p3 3/none: (patch: peer=p2)
-    p4 4/4: (dummy)
+    p4 4/4: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-ofctl del-flows br0])
@@ -276,9 +276,9 @@ OVS_VSWITCHD_START([dnl
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-ofctl del-flows br0])
@@ -307,9 +307,9 @@ OVS_VSWITCHD_START([dnl
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-ofctl del-flows br0])
diff --git a/tests/netdev-type.at b/tests/netdev-type.at
index c62a81f9c..e2ea520a0 100644
--- a/tests/netdev-type.at
+++ b/tests/netdev-type.at
@@ -9,8 +9,8 @@ add_of_ports br0 1
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 #
 # Set MAC address of dummy device and check that it has been set
diff --git a/tests/nsh.at b/tests/nsh.at
index 55296e559..125a0fe60 100644
--- a/tests/nsh.at
+++ b/tests/nsh.at
@@ -631,31 +631,31 @@ AT_CHECK([
 ### Verify datapath configuration
 AT_CHECK([ovs-appctl dpif/show | grep -v hit], [0], [dnl
   br-in1:
-    br-in1 65534/101: (dummy-internal)
-    n1 10/4: (dummy)
+    br-in1 65534/101: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    n1 10/4: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     vxlangpe12 1020/4789: (vxlan: packet_type=ptap, remote_ip=10.0.0.2)
     vxlangpe13 1030/4789: (vxlan: packet_type=ptap, remote_ip=10.0.0.3)
   br-in2:
-    br-in2 65534/102: (dummy-internal)
-    n2 20/5: (dummy)
+    br-in2 65534/102: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    n2 20/5: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     vxlangpe21 2010/4789: (vxlan: packet_type=ptap, remote_ip=20.0.0.1)
     vxlangpe23 2030/4789: (vxlan: packet_type=ptap, remote_ip=20.0.0.3)
   br-in3:
-    br-in3 65534/103: (dummy-internal)
-    n3 30/6: (dummy)
+    br-in3 65534/103: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    n3 30/6: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     vxlangpe31 3010/4789: (vxlan: packet_type=ptap, remote_ip=30.0.0.1)
     vxlangpe32 3020/4789: (vxlan: packet_type=ptap, remote_ip=30.0.0.2)
   br-p1:
-    br-p1 65534/1: (dummy-internal)
+    br-p1 65534/1: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1-0 2/none: (patch: peer=p0-1)
   br-p2:
-    br-p2 65534/2: (dummy-internal)
+    br-p2 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p2-0 2/none: (patch: peer=p0-2)
   br-p3:
-    br-p3 65534/3: (dummy-internal)
+    br-p3 65534/3: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p3-0 2/none: (patch: peer=p0-3)
   br0:
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p0-1 10/none: (patch: peer=p1-0)
     p0-2 20/none: (patch: peer=p2-0)
     p0-3 30/none: (patch: peer=p3-0)
diff --git a/tests/ofproto-dpif.at b/tests/ofproto-dpif.at
index a39d0d3ae..976855ab3 100644
--- a/tests/ofproto-dpif.at
+++ b/tests/ofproto-dpif.at
@@ -7473,9 +7473,9 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: key=5, local_ip=2.2.2.2, remote_ip=1.1.1.1)
-    p2 2/2: (dummy)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl Basic
@@ -7645,12 +7645,12 @@ AT_CHECK([ovs-vsctl -- add-port int-br t1 -- set 
Interface t1 type=gre \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy: ifindex=1010)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ifindex=1010, ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t1 4/4: (gre: key=456, remote_ip=1.1.2.92)
-    vm1 5/3: (dummy: ifindex=2011)
+    vm1 5/3: (dummy: ifindex=2011, ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl set up route to 1.1.2.92 via br0 and action=normal
@@ -8777,12 +8777,12 @@ add_of_ports br1 3
 AT_CHECK([ovs-appctl dpif/show | sed 's/\(dummy-pmd: \).*)/\1<cleared>)/'], 
[0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (dummy-pmd: <cleared>)
     p2 2/2: (dummy-pmd: <cleared>)
   br1:
-    br1 65534/101: (dummy-internal)
-    p3 3/3: (dummy)
+    br1 65534/101: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p3 3/3: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 OVS_VSWITCHD_STOP
 AT_CLEANUP
@@ -8961,12 +8961,12 @@ sleep 1  # wait for log writer
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:13 missed:2
   br0:
-    br0 65534/100: (dummy-internal)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     pbr0 1/none: (patch: peer=pbr1)
   br1:
-    br1 65534/101: (dummy-internal)
-    p3 3/3: (dummy)
+    br1 65534/101: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p3 3/3: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     pbr1 1/none: (patch: peer=pbr0)
 ])
 
@@ -9026,12 +9026,12 @@ OVS_WAIT_UNTIL([test `grep flow_add ovs-vswitchd.log | 
wc -l` -ge 1])
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:1
   br0:
-    br0 65534/100: (dummy-internal)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     pbr0 1/none: (patch: peer=pbr1)
   br1:
-    br1 65534/101: (dummy-internal)
-    p3 3/3: (dummy)
+    br1 65534/101: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p3 3/3: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     pbr1 1/none: (patch: peer=pbr0)
 ])
 
@@ -9841,7 +9841,7 @@ done
 
 OVS_VSWITCHD_STOP
 AT_CLEANUP
-
+
 AT_BANNER([ofproto-dpif - flow translation resource limits])
 
 dnl Resubmits to later tables do not count against the depth limit, so we
diff --git a/tests/ovs-ofctl.at b/tests/ovs-ofctl.at
index 8531b2e2e..a6ca76d8f 100644
--- a/tests/ovs-ofctl.at
+++ b/tests/ovs-ofctl.at
@@ -2991,8 +2991,8 @@ AT_CHECK([ovs-ofctl add-flow br0 
"tcp,tcp_flags=+ack-ack,action="], [1], [],
 ])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +4], [0], [dnl
-    p1 1/1: (dummy)
-    p2 2/2: (dummy)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl Outbound web traffic with bare-SYN
diff --git a/tests/ovs-vswitchd.at b/tests/ovs-vswitchd.at
index 977b2eba1..a5ae534bc 100644
--- a/tests/ovs-vswitchd.at
+++ b/tests/ovs-vswitchd.at
@@ -188,9 +188,9 @@ AT_CHECK([ovs-vsctl add-port br0 p1  -- set interface p1 
type=internal])
 
 dnl ovs-vswitchd should still 'see' ovsdb change with the 'monitor' method
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy-internal)
-    p1 2/2: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p1 2/2: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 OVS_VSWITCHD_STOP
 AT_CLEANUP
diff --git a/tests/packet-type-aware.at b/tests/packet-type-aware.at
index 14cebf6ef..d3c5a2f3d 100644
--- a/tests/packet-type-aware.at
+++ b/tests/packet-type-aware.at
@@ -236,33 +236,33 @@ AT_CHECK([
     ovs-appctl dpif/show | grep -v hit | sed 's./[[0-9]]\{1,\}..'
 ], [0], [dnl
   br-in1:
-    br-in1 65534: (dummy-internal)
+    br-in1 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     gre12 1020: (gre: remote_ip=10.0.0.2)
     gre12_l3 1021: (gre: packet_type=legacy_l3, remote_ip=10.0.0.2)
     gre13 1030: (gre: remote_ip=10.0.0.3)
-    n1 10: (dummy)
+    n1 10: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   br-in2:
-    br-in2 65534: (dummy-internal)
+    br-in2 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     gre21 2010: (gre: packet_type=ptap, remote_ip=20.0.0.1)
     gre23 2030: (gre: packet_type=ptap, remote_ip=20.0.0.3)
-    n2 20: (dummy)
+    n2 20: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   br-in3:
-    br-in3 65534: (dummy-internal)
+    br-in3 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     gre31 3010: (gre: remote_ip=30.0.0.1)
     gre32 3020: (gre: remote_ip=30.0.0.2)
     gre32_l3 3021: (gre: packet_type=legacy_l3, remote_ip=30.0.0.2)
-    n3 30: (dummy)
+    n3 30: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   br-p1:
-    br-p1 65534: (dummy-internal)
+    br-p1 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p1-0 2/none: (patch: peer=p0-1)
   br-p2:
-    br-p2 65534: (dummy-internal)
+    br-p2 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p2-0 2/none: (patch: peer=p0-2)
   br-p3:
-    br-p3 65534: (dummy-internal)
+    br-p3 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p3-0 2/none: (patch: peer=p0-3)
   br0:
-    br0 65534: (dummy-internal)
+    br0 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p0-1 10/none: (patch: peer=p1-0)
     p0-2 20/none: (patch: peer=p2-0)
     p0-3 30/none: (patch: peer=p3-0)
@@ -666,17 +666,17 @@ AT_CHECK([
     ovs-appctl dpif/show | grep -v hit | sed 's./[[0-9]]\{1,\}..'
 ], [0], [dnl
   br0:
-    br0 65534: (dummy-internal)
-    n0 30: (dummy)
+    br0 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    n0 30: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p0 10/none: (patch: peer=p1)
   br1:
-    br1 65534: (dummy-internal)
+    br1 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     gre1 100: (gre: packet_type=ptap, remote_ip=10.0.0.2)
-    n1 40: (dummy)
+    n1 40: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p1 20/none: (patch: peer=p0)
   br2:
-    br2 65534: (dummy-internal)
-    n2 50: (dummy)
+    br2 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    n2 50: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([
@@ -845,17 +845,17 @@ AT_CHECK([
     ovs-appctl dpif/show | grep -v hit | sed 's./[[0-9]]\{1,\}..'
 ], [0], [dnl
   br0:
-    br0 65534: (dummy-internal)
-    n0 30: (dummy)
+    br0 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    n0 30: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p0 10/none: (patch: peer=p1)
   br1:
-    br1 65534: (dummy-internal)
+    br1 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     gre1 100: (gre: packet_type=legacy_l3, remote_ip=10.0.0.2)
-    n1 40: (dummy)
+    n1 40: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p1 20/none: (patch: peer=p0)
   br2:
-    br2 65534: (dummy-internal)
-    n2 50: (dummy)
+    br2 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    n2 50: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([
@@ -946,10 +946,10 @@ AT_CHECK([
     ovs-appctl dpif/show | grep -v hit | sed 's./[[0-9]]\{1,\}..'
 ], [0], [dnl
   br0:
-    br0 65534: (dummy-internal)
-    p0 1: (dummy)
+    br0 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p0 1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534: (dummy-internal)
+    int-br 65534: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
     tunnel 2: (gre: packet_type=legacy_l3, remote_ip=20.0.0.2)
 ])
 
diff --git a/tests/pmd.at b/tests/pmd.at
index 7bdaca9e7..4b8398787 100644
--- a/tests/pmd.at
+++ b/tests/pmd.at
@@ -93,11 +93,11 @@ pmd thread numa_id <cleared> core_id <cleared>:
   overhead: NOT AVAIL
 ])
 
-AT_CHECK([ovs-appctl dpif/show | sed 
's/\(tx_queues=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
+AT_CHECK([ovs-appctl dpif/show | sed 's/\(numa_id=\)[[0-9]]*/\1<cleared>/g'], 
[0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy-pmd: configured_rx_queues=1, 
configured_tx_queues=<cleared>, requested_rx_queues=1, 
requested_tx_queues=<cleared>)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy-pmd: n_rxq=1, n_txq=1, numa_id=<cleared>, ol_ip_csum=false, 
ol_ip_csum_set_good=false)
 ])
 
 OVS_VSWITCHD_STOP
@@ -111,11 +111,11 @@ CHECK_PMD_THREADS_CREATED()
 
 AT_CHECK([ovs-vsctl set interface p0 options:n_rxq=8])
 
-AT_CHECK([ovs-appctl dpif/show | sed 
's/\(tx_queues=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
+AT_CHECK([ovs-appctl dpif/show | sed 's/\(numa_id=\)[[0-9]]*/\1<cleared>/g'], 
[0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy-pmd: configured_rx_queues=8, 
configured_tx_queues=<cleared>, requested_rx_queues=8, 
requested_tx_queues=<cleared>)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy-pmd: n_rxq=8, n_txq=1, numa_id=<cleared>, ol_ip_csum=false, 
ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], 
[0], [dnl
@@ -144,11 +144,11 @@ OVS_VSWITCHD_START([add-port br0 p0 -- set Interface p0 
type=dummy-pmd options:n
 CHECK_CPU_DISCOVERED(2)
 CHECK_PMD_THREADS_CREATED()
 
-AT_CHECK([ovs-appctl dpif/show | sed 
's/\(tx_queues=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
+AT_CHECK([ovs-appctl dpif/show | sed 's/\(numa_id=\)[[0-9]]*/\1<cleared>/g'], 
[0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy-pmd: configured_rx_queues=8, 
configured_tx_queues=<cleared>, requested_rx_queues=8, 
requested_tx_queues=<cleared>)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy-pmd: n_rxq=8, n_txq=1, numa_id=<cleared>, ol_ip_csum=false, 
ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], 
[0], [dnl
@@ -227,11 +227,11 @@ TMP=$(($(cat ovs-vswitchd.log | wc -l | tr -d 
[[:blank:]])+1))
 CHECK_CPU_DISCOVERED(4)
 CHECK_PMD_THREADS_CREATED()
 
-AT_CHECK([ovs-appctl dpif/show | sed 
's/\(tx_queues=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
+AT_CHECK([ovs-appctl dpif/show | sed 's/\(numa_id=\)[[0-9]]*/\1<cleared>/g'], 
[0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy-pmd: configured_rx_queues=8, 
configured_tx_queues=<cleared>, requested_rx_queues=8, 
requested_tx_queues=<cleared>)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy-pmd: n_rxq=8, n_txq=1, numa_id=<cleared>, ol_ip_csum=false, 
ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show | sed SED_NUMA_CORE_PATTERN], 
[0], [dnl
@@ -436,11 +436,11 @@ AT_CHECK([ovs-vsctl set Open_vSwitch . 
other_config:smc-enable=true])
 
 sleep 1
 
-AT_CHECK([ovs-appctl dpif/show | sed 
's/\(tx_queues=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
+AT_CHECK([ovs-appctl dpif/show | sed 's/\(numa_id=\)[[0-9]]*/\1<cleared>/g'], 
[0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 7/1: (dummy-pmd: configured_rx_queues=4, 
configured_tx_queues=<cleared>, requested_rx_queues=4, 
requested_tx_queues=<cleared>)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 7/1: (dummy-pmd: n_rxq=4, n_txq=1, numa_id=<cleared>, ol_ip_csum=false, 
ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-appctl dpif-netdev/pmd-stats-show | sed SED_NUMA_CORE_PATTERN | 
sed '/cycles/d' | grep pmd -A 12], [0], [dnl
@@ -604,8 +604,8 @@ 
icmp,vlan_tci=0x0000,dl_src=50:54:00:00:00:09,dl_dst=50:54:00:00:00:0a,nw_src=10
 dnl Check resetting to default number of rx queues after removal from the db.
 AT_CHECK([ovs-vsctl remove interface p1 options n_rxq])
 
-AT_CHECK([ovs-appctl dpif/show | grep p1 | sed 
's/\(tx_queues=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
-    p1 1/1: (dummy-pmd: configured_rx_queues=1, 
configured_tx_queues=<cleared>, requested_rx_queues=1, 
requested_tx_queues=<cleared>)
+AT_CHECK([ovs-appctl dpif/show | grep p1 | sed 
's/\(numa_id=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
+    p1 1/1: (dummy-pmd: n_rxq=1, n_txq=1, numa_id=<cleared>, ol_ip_csum=false, 
ol_ip_csum_set_good=false)
 ])
 
 OVS_VSWITCHD_STOP
@@ -1147,13 +1147,13 @@ AT_CHECK([ovs-appctl dpif-netdev/pmd-rxq-show dp0 | 
parse_pmd_rxq_show], [0], [d
 p1 0 0 0
 ])
 
-AT_CHECK([ovs-appctl dpctl/show dummy@dp0], [0], [dnl
+AT_CHECK([ovs-appctl dpctl/show dummy@dp0 | sed 
's/\(numa_id=\)[[0-9]]*/\1<cleared>/g'], [0], [dnl
 dummy@dp0:
   lookups: hit:0 missed:0 lost:0
   flows: 0
-  port 0: dp0 (dummy-internal)
-  port 1: p1 (dummy-pmd: configured_rx_queues=1, configured_tx_queues=1, 
requested_rx_queues=1, requested_tx_queues=1)
-  port 2: p2 (dummy)
+  port 0: dp0 (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
+  port 1: p1 (dummy-pmd: n_rxq=1, n_txq=1, numa_id=<cleared>, 
ol_ip_csum=false, ol_ip_csum_set_good=false)
+  port 2: p2 (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-appctl dpctl/add-flow dummy@dp0 
'in_port(1),eth(src=00:00:00:00:00:01,dst=00:00:00:00:00:02),eth_type(0x1234)' 
2], [0], [dnl
diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
index 0f58e8574..95aa3e906 100644
--- a/tests/system-dpdk.at
+++ b/tests/system-dpdk.at
@@ -588,8 +588,9 @@ AT_CHECK([ovs-vsctl show], [], [stdout])
 sleep 2
 
 dnl Check default MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=1500' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface phy0 mtu], [0], [dnl
+1500
+])
 
 dnl Increase MTU value and check in the datapath
 AT_CHECK([ovs-vsctl set Interface phy0 mtu_request=9000])
@@ -600,8 +601,9 @@ AT_FAIL_IF([grep "Interface phy0 does not support MTU 
configuration" ovs-vswitch
 dnl Fail if error is encountered during MTU setup
 AT_FAIL_IF([grep "Interface phy0 MTU (9000) setup error" ovs-vswitchd.log], 
[], [stdout])
 
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=9000' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface phy0 mtu], [0], [dnl
+9000
+])
 
 
 dnl Clean up
@@ -636,14 +638,16 @@ dnl Fail if error is encountered during MTU setup
 AT_FAIL_IF([grep "Interface phy0 MTU (9000) setup error" ovs-vswitchd.log], 
[], [stdout])
 
 dnl Check MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=9000' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface phy0 mtu], [0], [dnl
+9000
+])
 
 dnl Decrease MTU value and check in the datapath
 AT_CHECK([ovs-vsctl set Interface phy0 mtu_request=2000])
 
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=2000' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface phy0 mtu], [0], [dnl
+2000
+])
 
 
 dnl Clean up
@@ -688,14 +692,16 @@ tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat 
NUMA_NODE)" --no-pci\
 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
 
 dnl Check default MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=1500' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [0], [dnl
+1500
+])
 
 dnl Increase MTU value and check in the datapath
 AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=9000])
 
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=9000' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [0], [dnl
+9000
+])
 
 dnl Clean up the testpmd now
 pkill -f -x -9 'tail -f /dev/null'
@@ -745,14 +751,16 @@ tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat 
NUMA_NODE)" --no-pci\
 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
 
 dnl Check MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=9000' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [0], [dnl
+9000
+])
 
 dnl Decrease MTU value and check in the datapath
 AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=2000])
 
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=2000' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [0], [dnl
+2000
+])
 
 dnl Clean up the testpmd now
 pkill -f -x -9 'tail -f /dev/null'
@@ -789,8 +797,9 @@ dnl Fail if error is encountered during MTU setup
 AT_FAIL_IF([grep "Interface phy0 MTU (9702) setup error" ovs-vswitchd.log], 
[], [stdout])
 
 dnl Check MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=9702' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface phy0 mtu], [0], [dnl
+9702
+])
 
 dnl Set MTU value above upper bound and check for error
 AT_CHECK([ovs-vsctl set Interface phy0 mtu_request=9711])
@@ -830,8 +839,9 @@ dnl Fail if error is encountered during MTU setup
 AT_FAIL_IF([grep "Interface phy0 MTU (68) setup error" ovs-vswitchd.log], [], 
[stdout])
 
 dnl Check MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=68' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface phy0 mtu], [0], [dnl
+68
+])
 
 dnl Set MTU value below lower bound and check for error
 AT_CHECK([ovs-vsctl set Interface phy0 mtu_request=67])
@@ -879,8 +889,9 @@ tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat 
NUMA_NODE)" --no-pci\
 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
 
 dnl Check MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=9702' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [0], [dnl
+9702
+])
 
 dnl Set MTU value above upper bound and check for error
 AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=9711])
@@ -936,8 +947,9 @@ tail -f /dev/null | dpdk-testpmd --socket-mem="$(cat 
NUMA_NODE)" --no-pci\
 OVS_WAIT_UNTIL([grep "virtio is now ready for processing" ovs-vswitchd.log])
 
 dnl Check MTU value in the datapath
-AT_CHECK([ovs-appctl dpctl/show], [], [stdout])
-AT_CHECK([grep -E 'mtu=68' stdout], [], [stdout])
+AT_CHECK([ovs-vsctl get Interface dpdkvhostuserclient0 mtu], [0], [dnl
+68
+])
 
 dnl Set MTU value below lower bound and check for error
 AT_CHECK([ovs-vsctl set Interface dpdkvhostuserclient0 mtu_request=67])
diff --git a/tests/system-layer3-tunnels.at b/tests/system-layer3-tunnels.at
index 81123f730..1833b159d 100644
--- a/tests/system-layer3-tunnels.at
+++ b/tests/system-layer3-tunnels.at
@@ -109,11 +109,11 @@ AT_CHECK([ovs-vsctl add-port int-br t1 -- set Interface 
t1 type=gre \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
-    vtep0 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    vtep0 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/3: (dummy-internal)
+    int-br 65534/3: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t1 3/4: (gre: remote_ip=1.1.2.92)
 ])
 
diff --git a/tests/tunnel-push-pop-ipv6.at b/tests/tunnel-push-pop-ipv6.at
index a8dd28c5b..552ea7767 100644
--- a/tests/tunnel-push-pop-ipv6.at
+++ b/tests/tunnel-push-pop-ipv6.at
@@ -98,10 +98,10 @@ AT_CHECK([ovs-vsctl add-port int-br t2 -- set Interface t2 
type=ip6gre \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t2 2/6: (ip6gre: remote_ip=2001:cafe::92)
 ])
 
@@ -171,10 +171,10 @@ AT_CHECK([ovs-vsctl add-port int-br t2 -- set Interface 
t2 type=ip6erspan \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t2 2/6: (ip6erspan: erspan_idx=0x3, erspan_ver=1, key=123, 
remote_ip=2001:cafe::92)
     t3 3/6: (ip6erspan: erspan_dir=1, erspan_hwid=0x7, erspan_ver=2, key=567, 
remote_ip=2001:cafe::93)
 ])
@@ -295,10 +295,10 @@ AT_CHECK([ovs-vsctl add-port int-br t2 -- set Interface 
t2 type=vxlan \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t1 3/3: (gre: key=456, remote_ip=2001:cafe::92)
     t2 2/4789: (vxlan: key=123, remote_ip=2001:cafe::92)
     t3 4/4789: (vxlan: csum=true, out_key=flow, remote_ip=2001:cafe::93)
diff --git a/tests/tunnel-push-pop.at b/tests/tunnel-push-pop.at
index b1440f590..7fdef41cb 100644
--- a/tests/tunnel-push-pop.at
+++ b/tests/tunnel-push-pop.at
@@ -20,10 +20,10 @@ AT_CHECK([ovs-vsctl add-port int-br t1 -- set Interface t1 
type=erspan \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t1 2/3: (erspan: erspan_idx=0x3, erspan_ver=1, key=123, remote_ip=1.1.2.92)
     t2 3/3: (erspan: erspan_dir=1, erspan_hwid=0x7, erspan_ver=2, key=567, 
remote_ip=1.1.2.92)
     t3 4/3: (erspan: erspan_dir=flow, erspan_hwid=flow, erspan_ver=2, key=456, 
remote_ip=flow)
@@ -223,10 +223,10 @@ AT_CHECK([ovs-vsctl add-port int-br t2 -- set Interface 
t2 type=vxlan \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t1 3/3: (gre: key=456, remote_ip=1.1.2.92)
     t2 2/4789: (vxlan: key=123, remote_ip=1.1.2.92)
     t3 4/4789: (vxlan: csum=true, out_key=flow, remote_ip=1.1.2.93)
@@ -787,10 +787,10 @@ AT_CHECK([ovs-vsctl add-port int-br t1 -- set Interface 
t1 type=gre \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     t1 3/3: (gre: key=456, remote_ip=1.1.2.92, seq=true)
 ])
 
diff --git a/tests/tunnel.at b/tests/tunnel.at
index ddeb66bc9..32acf08c0 100644
--- a/tests/tunnel.at
+++ b/tests/tunnel.at
@@ -16,7 +16,7 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: remote_ip=1.1.1.1)
     p2 2/1: (gre: local_ip=2.2.2.2, remote_ip=1.1.1.1)
     p3 3/1: (gre: remote_ip=2.2.2.2)
@@ -39,7 +39,7 @@ AT_CHECK([ovs-vsctl set Interface p2 type=gre 
options:local_ip=2.2.2.3 \
           options:df_default=false options:ttl=1 options:csum=true \
           -- set Interface p3 type=vxlan])
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: remote_ip=1.1.1.1)
     p2 2/1: (gre: csum=true, df_default=false, local_ip=2.2.2.3, 
remote_ip=1.1.1.1, ttl=1)
     p3 3/4789: (vxlan: remote_ip=2.2.2.2)
@@ -74,9 +74,9 @@ actions=2
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: remote_ip=1.1.1.1)
-    p2 2/2: (dummy)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl Tunnel CE and encapsulated packet CE
@@ -118,9 +118,9 @@ OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 
type=gre \
                     ofport_request=2])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: remote_ip=1.1.1.1)
-    p2 2/2: (dummy)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-appctl dpctl/add-flow 
"tunnel(dst=1.1.1.1,src=3.3.3.200/255.255.255.0,tp_dst=123,tp_src=1,ttl=64),recirc_id(0),in_port(1),eth(),eth_type(0x0800),ipv4()"
 "2"])
@@ -138,9 +138,9 @@ OVS_VSWITCHD_START([add-port br0 p1 \
     -- add-port br0 p2 -- set Interface p2 type=dummy ofport_request=2])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: remote_ip=1.1.1.1)
-    p2 2/2: (dummy)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dst_single="dst=1.1.1.1"
@@ -175,9 +175,9 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: key=5, local_ip=2.2.2.2, remote_ip=1.1.1.1)
-    p2 2/2: (dummy)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl Basic
@@ -273,9 +273,9 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: remote_ip=1.1.1.1, tos=inherit, ttl=inherit)
-    p2 2/2: (dummy)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl Basic
@@ -316,7 +316,7 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: key=flow, remote_ip=1.1.1.1)
     p2 2/1: (gre: key=flow, remote_ip=2.2.2.2)
     p3 3/1: (gre: key=flow, remote_ip=3.3.3.3)
@@ -349,7 +349,7 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: key=1, remote_ip=1.1.1.1)
     p2 2/1: (gre: in_key=2, out_key=3, remote_ip=1.1.1.1)
     p3 3/1: (gre: out_key=5, remote_ip=1.1.1.1)
@@ -402,12 +402,12 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (gre: key=flow, remote_ip=1.1.1.1)
     p2 2/1: (gre: key=3, remote_ip=3.3.3.3)
-    p3 3/3: (dummy)
-    p4 4/4: (dummy)
-    p5 5/5: (dummy)
+    p3 3/3: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p4 4/4: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p5 5/5: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 AT_CHECK([ovs-appctl ofproto/trace ovs-dummy 
'tunnel(tun_id=0x2,src=1.1.1.1,dst=2.2.2.2,ttl=64,flags(key)),in_port(1),eth(src=50:54:00:00:00:05,dst=50:54:00:00:00:07),eth_type(0x0800),ipv4(src=192.168.0.1,dst=192.168.0.2,proto=6,tos=0,ttl=64,frag=no),tcp(src=8,dst=9)'],
 [0], [stdout])
@@ -438,7 +438,7 @@ OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 
type=geneve \
                     options:remote_ip=1.1.1.1 ofport_request=1 
options:dst_port=5000])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/5000: (geneve: dst_port=5000, remote_ip=1.1.1.1)
 ])
 
@@ -450,7 +450,7 @@ OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 
type=vxlan \
                     options:remote_ip=1.1.1.1 ofport_request=1])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/4789: (vxlan: remote_ip=1.1.1.1)
 ])
 
@@ -472,12 +472,12 @@ AT_CHECK([ovs-vsctl add-port int-br v1 -- set Interface 
v1 type=vxlan \
 AT_CHECK([ovs-appctl dpif/show], [0], [dnl
 dummy@ovs-dummy: hit:0 missed:0
   br0:
-    br0 65534/100: (dummy-internal)
-    p0 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p0 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
   int-br:
-    int-br 65534/2: (dummy-internal)
+    int-br 65534/2: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     v1 2/4789: (vxlan: key=123, remote_ip=172.31.1.2)
-    v2 3/3: (dummy-internal)
+    v2 3/3: (dummy-internal: ol_ip_csum=false, ol_ip_csum_set_good=false)
 ])
 
 dnl First setup dummy interface IP address, then add the route
@@ -524,7 +524,7 @@ OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 
type=lisp \
                     options:remote_ip=1.1.1.1 ofport_request=1])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/4341: (lisp: remote_ip=1.1.1.1)
 ])
 
@@ -548,7 +548,7 @@ OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 
type=erspan \
                  ])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/1: (erspan: erspan_idx=0x0, erspan_ver=1, key=1, remote_ip=1.1.1.1)
     p2 2/1: (erspan: erspan_idx=flow, erspan_ver=1, key=flow, 
remote_ip=1.1.1.1)
     p3 3/1: (erspan: erspan_dir=flow, erspan_hwid=flow, erspan_ver=2, key=10, 
remote_ip=1.1.1.1)
@@ -579,7 +579,7 @@ OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 
type=vxlan \
                     options:remote_ip=1.1.1.1 ofport_request=1 
options:dst_port=4341])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/4341: (vxlan: dst_port=4341, remote_ip=1.1.1.1)
 ])
 
@@ -588,7 +588,7 @@ dnl change UDP port
 AT_CHECK([ovs-vsctl -- set Interface p1 options:dst_port=5000])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/5000: (vxlan: dst_port=5000, remote_ip=1.1.1.1)
 ])
 
@@ -597,7 +597,7 @@ dnl change UDP port to default
 AT_CHECK([ovs-vsctl -- set Interface p1 options:dst_port=4789])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/4789: (vxlan: remote_ip=1.1.1.1)
 ])
 OVS_VSWITCHD_STOP
@@ -658,9 +658,9 @@ ovs-vsctl -- add-port br0 p3 \
 OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
-    p2 2/2: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p3 3/3: (erspan: erspan_idx=0x7, erspan_ver=1, key=1, remote_ip=1.1.1.1)
     p4 4/3: (erspan: erspan_dir=1, erspan_hwid=0x7, erspan_ver=2, key=2, 
remote_ip=1.1.1.2)
 ])
@@ -1136,7 +1136,7 @@ OVS_VSWITCHD_START([add-port br0 p1 -- set Interface p1 
type=gtpu \
                     options:key=123 ofport_request=1])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
     p1 1/2152: (gtpu: key=123, remote_ip=1.1.1.1)
 ])
 
@@ -1172,8 +1172,8 @@ OVS_VSWITCHD_DISABLE_TUNNEL_PUSH_POP
 
 dnl AT_CHECK([ovs-appctl dpif/show | tail -n +4], [0], [dnl
 AT_CHECK([ovs-appctl dpif/show | tail -n +4], [0], [dnl
-    p1 1/1: (dummy)
-    p2 2/2: (dummy)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
+    p2 2/2: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p3 3/2152: (gtpu: key=3, remote_ip=1.1.1.1)
     p4 4/2152: (gtpu: key=4, remote_ip=1.1.1.2)
 ])
@@ -1250,8 +1250,8 @@ in_port=2,actions=1
 AT_CHECK([ovs-ofctl add-flows br0 flows.txt])
 
 AT_CHECK([ovs-appctl dpif/show | tail -n +3], [0], [dnl
-    br0 65534/100: (dummy-internal)
-    p1 1/1: (dummy)
+    br0 65534/100: (dummy-internal: ol_ip_csum=false, 
ol_ip_csum_set_good=false)
+    p1 1/1: (dummy: ol_ip_csum=false, ol_ip_csum_set_good=false)
     p2 2/6: (srv6: remote_ip=flow)
 ])
 
diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml
index cfcde34ff..eb2db043f 100644
--- a/vswitchd/vswitch.xml
+++ b/vswitchd/vswitch.xml
@@ -3386,6 +3386,29 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch 
options:peer=p1 \
         </p>
       </column>
 
+
+      <column name="options" key="ol_ip_csum"
+              type='{"type": "boolean"}'>
+        <p>
+          Enable IP checksum offload for netdev-dummy device.
+        </p>
+        <p>
+            Note that this option is specific to netdev-dummy.
+            Defaults to false.
+        </p>
+      </column>
+
+      <column name="options" key="ol_ip_csum_set_good"
+              type='{"type": "boolean"}'>
+        <p>
+          Flag RX packets for netdev-dummy devices to have good checksums.
+        </p>
+        <p>
+            Note that this option is specific to netdev-dummy.
+            Defaults to false.
+        </p>
+      </column>
+
       <column name="other_config" key="pmd-rxq-affinity">
         <p>Specifies mapping of RX queues of this interface to CPU cores.</p>
         <p>Value should be set in the following form:</p>
@@ -3789,6 +3812,18 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 type=patch 
options:peer=p1 \
             Maximum number of VMDq pools.
           </column>
 
+          <column name="status" key="n_rxq">
+            Number of rx queues.
+          </column>
+
+          <column name="status" key="n_txq">
+            Number of tx queues.
+          </column>
+
+          <column name="status" key="rx_csum_offload">
+            Whether hardware has support for RX Checksum Offload or not.
+          </column>
+
           <column name="status" key="if_type">
             Interface type ID according to IANA ifTYPE MIB definitions.
           </column>
@@ -3797,12 +3832,39 @@ ovs-vsctl add-port br0 p0 -- set Interface p0 
type=patch options:peer=p1 \
             Interface description string.
           </column>
 
-          <column name="status" key="pci-vendor_id">
-            Vendor ID of PCI device.
+          <column name="status" key="bus_info">
+            Bus name and bus info such as Vendor ID and Device ID of PCI
+            device.
           </column>
 
-          <column name="status" key="pci-device_id">
-            Device ID of PCI device.
+          <column name="status" key="dpdk-vf-mac">
+            Ethernet address set for this VF interface. Only reported for dpdk
+            VF representors.
+          </column>
+
+          <column name="status" key="rx-steering">
+            Hardware Rx queue steering policy in use.
+          </column>
+
+          <column name="status" key="rx_steering_queue">
+            ID of rx steering queue. Only reported if <code>rx-steering</code>
+            is supported by hardware.
+          </column>
+
+          <column name="status" key="rss_queues">
+            IDs of rss queues. Only reported if <code>rx-steering</code> is
+            supported by hardware.
+          </column>
+
+      </group>
+
+      <group title="afxdp">
+        <p>
+          AF_XDP netdev specific interface status options.
+        </p>
+
+          <column name="status" key="xdp-mode">
+            XDP mode which was chosen.
           </column>
 
       </group>
-- 
2.39.2

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to