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

Reply via email to