Re: [Linuxptp-devel] [PATCH RFC 09/30] Convert call sites to the proper method for getting interface labels.

2020-02-18 Thread Jacob Keller
On 2/11/2020 6:03 AM, Richard Cochran wrote:
> Signed-off-by: Richard Cochran 

Straight forward.

Besides wondering about the object groups in the makefile,

Reviewed-by: Jacob Keller 

> ---
>  clock.c |  2 +-
>  port.c  | 17 ++---
>  raw.c   |  5 +++--
>  udp.c   |  2 +-
>  udp6.c  |  2 +-
>  5 files changed, 16 insertions(+), 12 deletions(-)
> 
> diff --git a/clock.c b/clock.c
> index 7d13b3b..66c6bc1 100644
> --- a/clock.c
> +++ b/clock.c
> @@ -962,7 +962,7 @@ struct clock *clock_create(enum clock_type type, struct 
> config *config,
>   STAILQ_FOREACH(iface, >interfaces, list) {
>   rtnl_get_ts_device(interface_name(iface), iface->ts_label);
>   ensure_ts_label(iface);
> - sk_get_ts_info(iface->ts_label, >ts_info);
> + sk_get_ts_info(interface_label(iface), >ts_info);
>   if (iface->ts_info.valid &&
>   ((iface->ts_info.so_timestamping & required_modes) != 
> required_modes)) {
>   pr_err("interface '%s' does not support requested 
> timestamping mode",
> diff --git a/port.c b/port.c
> index 6423568..52aef86 100644
> --- a/port.c
> +++ b/port.c
> @@ -792,6 +792,7 @@ static int port_management_fill_response(struct port 
> *target,
>   struct management_tlv *tlv;
>   struct port_ds_np *pdsnp;
>   struct tlv_extra *extra;
> + const char *ts_label;
>   struct portDS *pds;
>   uint16_t u16;
>   uint8_t *buf;
> @@ -941,7 +942,8 @@ static int port_management_fill_response(struct port 
> *target,
>   else
>   ppn->port_state = target->state;
>   ppn->timestamping = target->timestamping;
> - ptp_text_set(>interface, target->iface->ts_label);
> + ts_label = interface_label(target->iface);
> + ptp_text_set(>interface, ts_label);
>   datalen = sizeof(*ppn) + ppn->interface.length;
>   break;
>   case TLV_PORT_STATS_NP:
> @@ -2482,10 +2484,10 @@ static void bc_dispatch(struct port *p, enum 
> fsm_event event, int mdiff)
>  
>  void port_link_status(void *ctx, int linkup, int ts_index)
>  {
> - struct port *p = ctx;
> - int link_state;
>   char ts_label[MAX_IFNAME_SIZE + 1] = {0};
> - int required_modes;
> + int link_state, required_modes;
> + const char *old_ts_label;
> + struct port *p = ctx;
>  
>   link_state = linkup ? LINK_UP : LINK_DOWN;
>   if (p->link_status & link_state) {
> @@ -2496,7 +2498,8 @@ void port_link_status(void *ctx, int linkup, int 
> ts_index)
>   }
>  
>   /* ts_label changed */
> - if (if_indextoname(ts_index, ts_label) && strcmp(p->iface->ts_label, 
> ts_label)) {
> + old_ts_label = interface_label(p->iface);
> + if (if_indextoname(ts_index, ts_label) && strcmp(old_ts_label, 
> ts_label)) {
>   strncpy(p->iface->ts_label, ts_label, MAX_IFNAME_SIZE);
>   p->link_status |= TS_LABEL_CHANGED;
>   pr_notice("port %hu: ts label changed to %s", portnum(p), 
> ts_label);
> @@ -2505,7 +2508,7 @@ void port_link_status(void *ctx, int linkup, int 
> ts_index)
>   /* Both link down/up and change ts_label may change phc index. */
>   if (p->link_status & LINK_UP &&
>   (p->link_status & LINK_STATE_CHANGED || p->link_status & 
> TS_LABEL_CHANGED)) {
> - sk_get_ts_info(p->iface->ts_label, >iface->ts_info);
> + sk_get_ts_info(interface_label(p->iface), >iface->ts_info);
>  
>   /* Only switch phc with HW time stamping mode */
>   if (p->iface->ts_info.valid && p->iface->ts_info.phc_index >= 
> 0) {
> @@ -2513,7 +2516,7 @@ void port_link_status(void *ctx, int linkup, int 
> ts_index)
>   if ((p->iface->ts_info.so_timestamping & 
> required_modes) != required_modes) {
>   pr_err("interface '%s' does not support 
> requested "
>  "timestamping mode, set link status down 
> by force.",
> -p->iface->ts_label);
> +interface_label(p->iface));
>   p->link_status = LINK_DOWN | LINK_STATE_CHANGED;
>   } else if (p->phc_index != p->iface->ts_info.phc_index) 
> {
>   p->phc_index = p->iface->ts_info.phc_index;
> diff --git a/raw.c b/raw.c
> index f1c92b9..81ec431 100644
> --- a/raw.c
> +++ b/raw.c
> @@ -213,9 +213,10 @@ static int raw_open(struct transport *t, struct 
> interface *iface,
>   unsigned char ptp_dst_mac[MAC_LEN];
>   unsigned char p2p_dst_mac[MAC_LEN];
>   int efd, gfd, socket_priority;
> - char *str, *name;
> + const char *name;
> + char *str;
>  
> - name = iface->ts_label;
> + name = interface_label(iface);
>   str = config_get_string(t->cfg, name, "ptp_dst_mac");
>   if (str2mac(str, ptp_dst_mac)) {
>   pr_err("invalid 

[Linuxptp-devel] [PATCH RFC 09/30] Convert call sites to the proper method for getting interface labels.

2020-02-11 Thread Richard Cochran
Signed-off-by: Richard Cochran 
---
 clock.c |  2 +-
 port.c  | 17 ++---
 raw.c   |  5 +++--
 udp.c   |  2 +-
 udp6.c  |  2 +-
 5 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/clock.c b/clock.c
index 7d13b3b..66c6bc1 100644
--- a/clock.c
+++ b/clock.c
@@ -962,7 +962,7 @@ struct clock *clock_create(enum clock_type type, struct 
config *config,
STAILQ_FOREACH(iface, >interfaces, list) {
rtnl_get_ts_device(interface_name(iface), iface->ts_label);
ensure_ts_label(iface);
-   sk_get_ts_info(iface->ts_label, >ts_info);
+   sk_get_ts_info(interface_label(iface), >ts_info);
if (iface->ts_info.valid &&
((iface->ts_info.so_timestamping & required_modes) != 
required_modes)) {
pr_err("interface '%s' does not support requested 
timestamping mode",
diff --git a/port.c b/port.c
index 6423568..52aef86 100644
--- a/port.c
+++ b/port.c
@@ -792,6 +792,7 @@ static int port_management_fill_response(struct port 
*target,
struct management_tlv *tlv;
struct port_ds_np *pdsnp;
struct tlv_extra *extra;
+   const char *ts_label;
struct portDS *pds;
uint16_t u16;
uint8_t *buf;
@@ -941,7 +942,8 @@ static int port_management_fill_response(struct port 
*target,
else
ppn->port_state = target->state;
ppn->timestamping = target->timestamping;
-   ptp_text_set(>interface, target->iface->ts_label);
+   ts_label = interface_label(target->iface);
+   ptp_text_set(>interface, ts_label);
datalen = sizeof(*ppn) + ppn->interface.length;
break;
case TLV_PORT_STATS_NP:
@@ -2482,10 +2484,10 @@ static void bc_dispatch(struct port *p, enum fsm_event 
event, int mdiff)
 
 void port_link_status(void *ctx, int linkup, int ts_index)
 {
-   struct port *p = ctx;
-   int link_state;
char ts_label[MAX_IFNAME_SIZE + 1] = {0};
-   int required_modes;
+   int link_state, required_modes;
+   const char *old_ts_label;
+   struct port *p = ctx;
 
link_state = linkup ? LINK_UP : LINK_DOWN;
if (p->link_status & link_state) {
@@ -2496,7 +2498,8 @@ void port_link_status(void *ctx, int linkup, int ts_index)
}
 
/* ts_label changed */
-   if (if_indextoname(ts_index, ts_label) && strcmp(p->iface->ts_label, 
ts_label)) {
+   old_ts_label = interface_label(p->iface);
+   if (if_indextoname(ts_index, ts_label) && strcmp(old_ts_label, 
ts_label)) {
strncpy(p->iface->ts_label, ts_label, MAX_IFNAME_SIZE);
p->link_status |= TS_LABEL_CHANGED;
pr_notice("port %hu: ts label changed to %s", portnum(p), 
ts_label);
@@ -2505,7 +2508,7 @@ void port_link_status(void *ctx, int linkup, int ts_index)
/* Both link down/up and change ts_label may change phc index. */
if (p->link_status & LINK_UP &&
(p->link_status & LINK_STATE_CHANGED || p->link_status & 
TS_LABEL_CHANGED)) {
-   sk_get_ts_info(p->iface->ts_label, >iface->ts_info);
+   sk_get_ts_info(interface_label(p->iface), >iface->ts_info);
 
/* Only switch phc with HW time stamping mode */
if (p->iface->ts_info.valid && p->iface->ts_info.phc_index >= 
0) {
@@ -2513,7 +2516,7 @@ void port_link_status(void *ctx, int linkup, int ts_index)
if ((p->iface->ts_info.so_timestamping & 
required_modes) != required_modes) {
pr_err("interface '%s' does not support 
requested "
   "timestamping mode, set link status down 
by force.",
-  p->iface->ts_label);
+  interface_label(p->iface));
p->link_status = LINK_DOWN | LINK_STATE_CHANGED;
} else if (p->phc_index != p->iface->ts_info.phc_index) 
{
p->phc_index = p->iface->ts_info.phc_index;
diff --git a/raw.c b/raw.c
index f1c92b9..81ec431 100644
--- a/raw.c
+++ b/raw.c
@@ -213,9 +213,10 @@ static int raw_open(struct transport *t, struct interface 
*iface,
unsigned char ptp_dst_mac[MAC_LEN];
unsigned char p2p_dst_mac[MAC_LEN];
int efd, gfd, socket_priority;
-   char *str, *name;
+   const char *name;
+   char *str;
 
-   name = iface->ts_label;
+   name = interface_label(iface);
str = config_get_string(t->cfg, name, "ptp_dst_mac");
if (str2mac(str, ptp_dst_mac)) {
pr_err("invalid ptp_dst_mac %s", str);
diff --git a/udp.c b/udp.c
index 143f714..eb7be78 100644
--- a/udp.c
+++ b/udp.c
@@ -179,7 +179,7 @@ static int udp_open(struct transport *t, struct interface 
*iface,
if (gfd < 0)
goto no_general;
 
-   if