Acked-by: Jarno Rajahalme <[email protected]> > On Mar 31, 2017, at 8:11 PM, nickcooper-zhangtonghao <[email protected]> > wrote: > > This patch is useful to debug rstp subsystem and log the > port name instead of port number. This patch will also > be used to display rstp info for next patches. > > Signed-off-by: nickcooper-zhangtonghao <[email protected]> > --- > lib/rstp-common.h | 1 + > lib/rstp.c | 14 +++++++++++++- > lib/rstp.h | 3 ++- > ofproto/ofproto-dpif.c | 2 +- > 4 files changed, 17 insertions(+), 3 deletions(-) > > diff --git a/lib/rstp-common.h b/lib/rstp-common.h > index 27e8079..c108232 100644 > --- a/lib/rstp-common.h > +++ b/lib/rstp-common.h > @@ -262,6 +262,7 @@ struct rstp_port { > struct rstp *rstp OVS_GUARDED_BY(rstp_mutex); > struct hmap_node node OVS_GUARDED_BY(rstp_mutex); /* In rstp->ports. */ > void *aux OVS_GUARDED_BY(rstp_mutex); > + char *port_name; > struct rstp_bpdu received_bpdu_buffer OVS_GUARDED_BY(rstp_mutex); > /************************************************************************* > * MAC status parameters > diff --git a/lib/rstp.c b/lib/rstp.c > index 6f1c1e3..b942f6e 100644 > --- a/lib/rstp.c > +++ b/lib/rstp.c > @@ -760,6 +760,14 @@ rstp_port_set_port_number__(struct rstp_port *port, > uint16_t port_number) > } > } > > +static void > +rstp_port_set_port_name__(struct rstp_port *port, const char *name) > + OVS_REQUIRES(rstp_mutex) > +{ > + free(port->port_name); > + port->port_name = xstrdup(name); > +} > + > /* Converts the link speed to a port path cost [Table 17-3]. */ > uint32_t > rstp_convert_speed_to_cost(unsigned int speed) > @@ -1173,6 +1181,7 @@ rstp_add_port(struct rstp *rstp) > rstp_port_set_priority__(p, RSTP_DEFAULT_PORT_PRIORITY); > rstp_port_set_port_number__(p, 0); > p->aux = NULL; > + p->port_name = NULL; > rstp_initialize_port_defaults__(p); > VLOG_DBG("%s: RSTP port "RSTP_PORT_ID_FMT" initialized.", rstp->name, > p->port_id); > @@ -1210,6 +1219,7 @@ rstp_port_unref(struct rstp_port *rp) > ovs_mutex_lock(&rstp_mutex); > rstp = rp->rstp; > rstp_port_set_state__(rp, RSTP_DISABLED); > + free(rp->port_name); > hmap_remove(&rstp->ports, &rp->node); > VLOG_DBG("%s: removed port "RSTP_PORT_ID_FMT"", rstp->name, > rp->port_id); > @@ -1448,13 +1458,15 @@ void > rstp_port_set(struct rstp_port *port, uint16_t port_num, int priority, > uint32_t path_cost, bool is_admin_edge, bool is_auto_edge, > enum rstp_admin_point_to_point_mac_state admin_p2p_mac_state, > - bool admin_port_state, bool do_mcheck, void *aux) > + bool admin_port_state, bool do_mcheck, void *aux, > + const char *name) > OVS_EXCLUDED(rstp_mutex) > { > ovs_mutex_lock(&rstp_mutex); > port->aux = aux; > rstp_port_set_priority__(port, priority); > rstp_port_set_port_number__(port, port_num); > + rstp_port_set_port_name__(port, name); > rstp_port_set_path_cost__(port, path_cost); > rstp_port_set_admin_edge__(port, is_admin_edge); > rstp_port_set_auto_edge__(port, is_auto_edge); > diff --git a/lib/rstp.h b/lib/rstp.h > index 78e07fb..fa67e3c 100644 > --- a/lib/rstp.h > +++ b/lib/rstp.h > @@ -221,7 +221,8 @@ uint32_t rstp_convert_speed_to_cost(unsigned int speed); > void rstp_port_set(struct rstp_port *, uint16_t port_num, int priority, > uint32_t path_cost, bool is_admin_edge, bool is_auto_edge, > enum rstp_admin_point_to_point_mac_state > admin_p2p_mac_state, > - bool admin_port_state, bool do_mcheck, void *aux) > + bool admin_port_state, bool do_mcheck, void *aux, > + const char *name) > OVS_EXCLUDED(rstp_mutex); > > enum rstp_state rstp_port_get_state(const struct rstp_port *) > diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c > index f015131..d41d90f 100644 > --- a/ofproto/ofproto-dpif.c > +++ b/ofproto/ofproto-dpif.c > @@ -2675,7 +2675,7 @@ set_rstp_port(struct ofport *ofport_, > rstp_port_set(rp, s->port_num, s->priority, s->path_cost, > s->admin_edge_port, s->auto_edge, > s->admin_p2p_mac_state, s->admin_port_state, s->mcheck, > - ofport); > + ofport, netdev_get_name(ofport->up.netdev)); > update_rstp_port_state(ofport); > /* Synchronize operational status. */ > rstp_port_set_mac_operational(rp, ofport->may_enable); > -- > 1.8.3.1 > > > > _______________________________________________ > dev mailing list > [email protected] > https://mail.openvswitch.org/mailman/listinfo/ovs-dev
_______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
