void
rstp_port_get_status(const struct rstp_port *p, uint16_t *id,
enum rstp_state *state, enum rstp_port_role *role,
- int *tx_count, int *rx_count, int *error_count,
- int *uptime)
+ rstp_identifier *designated_bridge_id,
+ uint16_t *designated_port_id,
+ uint32_t *designated_path_cost, int *tx_count,
+ int *rx_count, int *error_count, int *uptime)
OVS_EXCLUDED(rstp_mutex)
{
ovs_mutex_lock(&rstp_mutex);
*state = p->rstp_state;
*role = p->role;
+ *designated_bridge_id = p->port_priority.designated_bridge_id;
+ *designated_port_id = p->port_priority.designated_port_id;
+ *designated_path_cost = p->port_priority.root_path_cost;
+
*tx_count = p->tx_count;
*rx_count = p->rx_rstp_bpdu_cnt;
*error_count = p->error_count;
void rstp_port_get_status(const struct rstp_port *, uint16_t *id,
enum rstp_state *state, enum rstp_port_role *role,
- int *tx_count, int *rx_count, int *error_count,
- int *uptime)
+ rstp_identifier *designated_bridge_id,
+ uint16_t *designated_port_id,
+ uint32_t *designated_path_cost, int *tx_count,
+ int *rx_count, int *error_count, int *uptime)
OVS_EXCLUDED(rstp_mutex);
void * rstp_get_port_aux(struct rstp *rstp, uint16_t port_number)
}
s->enabled = true;
- rstp_port_get_status(rp, &s->port_id, &s->state, &s->role, &s->tx_count,
+ rstp_port_get_status(rp, &s->port_id, &s->state, &s->role,
+ &s->designated_bridge_id, &s->designated_port_id,
+ &s->designated_path_cost, &s->tx_count,
&s->rx_count, &s->error_count, &s->uptime);
}
uint16_t port_id;
enum rstp_port_role role;
enum rstp_state state;
+ rstp_identifier designated_bridge_id;
+ uint16_t designated_port_id;
+ uint32_t designated_path_cost;
int tx_count; /* Number of BPDUs transmitted. */
int rx_count; /* Number of valid BPDUs received. */
int error_count; /* Number of bad BPDUs received. */
}
smap_add_format(&smap, "rstp_bridge_id", RSTP_ID_FMT,
RSTP_ID_ARGS(status.bridge_id));
- smap_add_format(&smap, "rstp_root_path_cost", "%d",
+ smap_add_format(&smap, "rstp_root_path_cost", "%"PRIu32,
status.root_path_cost);
smap_add_format(&smap, "rstp_root_id", RSTP_ID_FMT,
RSTP_ID_ARGS(status.root_id));
rstp_port_role_name(status.role));
smap_add_format(&smap, "rstp_port_state", "%s",
rstp_state_name(status.state));
+ smap_add_format(&smap, "rstp_designated_bridge_id", RSTP_ID_FMT,
+ RSTP_ID_ARGS(status.designated_bridge_id));
+ smap_add_format(&smap, "rstp_designated_port_id", RSTP_PORT_ID_FMT,
+ status.designated_port_id);
+ smap_add_format(&smap, "rstp_designated_path_cost", "%"PRIu32,
+ status.designated_path_cost);
ovsrec_port_set_rstp_status(port->cfg, &smap);
smap_destroy(&smap);