* DPDK ring ports (dpdkr) are deprecated and will be removed in next
releases.
* Add support for DPDK 19.11.
+ - RSTP:
+ * The rstp_statistics column in Port table will only be updated every
+ stats-update-interval configured in Open_vSwtich table.
v2.12.0 - 03 Sep 2019
---------------------
struct ofproto *ofproto = port->bridge->ofproto;
struct iface *iface;
struct ofproto_port_rstp_status status;
- const char *keys[4];
- int64_t int_values[4];
struct smap smap;
if (port_is_synthetic(port)) {
if (!status.enabled) {
ovsrec_port_set_rstp_status(port->cfg, NULL);
- ovsrec_port_set_rstp_statistics(port->cfg, NULL, NULL, 0);
return;
}
/* Set Status column. */
ovsrec_port_set_rstp_status(port->cfg, &smap);
smap_destroy(&smap);
+}
+
+static void
+port_refresh_rstp_stats(struct port *port)
+{
+ struct ofproto *ofproto = port->bridge->ofproto;
+ struct iface *iface;
+ struct ofproto_port_rstp_status status;
+ const char *keys[4];
+ int64_t int_values[4];
+
+ if (port_is_synthetic(port)) {
+ return;
+ }
+
+ /* RSTP doesn't currently support bonds. */
+ if (!ovs_list_is_singleton(&port->ifaces)) {
+ ovsrec_port_set_rstp_statistics(port->cfg, NULL, NULL, 0);
+ return;
+ }
+
+ iface = CONTAINER_OF(ovs_list_front(&port->ifaces), struct iface, port_elem);
+ if (ofproto_port_get_rstp_status(ofproto, iface->ofp_port, &status)) {
+ return;
+ }
+
+ if (!status.enabled) {
+ ovsrec_port_set_rstp_statistics(port->cfg, NULL, NULL, 0);
+ return;
+ }
/* Set Statistics column. */
keys[0] = "rstp_tx_count";
iface_refresh_stats(iface);
}
port_refresh_stp_stats(port);
+ port_refresh_rstp_stats(port);
}
HMAP_FOR_EACH (m, hmap_node, &br->mirrors) {
mirror_refresh_stats(m);