On Tue, Feb 15, 2022 at 10:55:45AM -0800, Alexander Bulimov via Linuxptp-devel 
wrote:

>         4857dd.fffe.0e91da-1 seq 0 RESPONSE MANAGEMENT 
> MID_UNICAST_MASTER_TABLE_NP
>                 actualTableSize 9
>                 BM  identity                 address                          
>   state     clockClass clockQuality offsetScaledLogVariance p1  p2
>                 no  b8cef6.fffe.7349d4-1     2401:db00:2515:f001:face:0:2a3:0 
>   HAVE_ANN  6          0x21         0x59e0                  128 128
>                 yes b8cef6.fffe.0210e4-1     2401:db00:2515:f001:face:0:3d1:0 
>   HAVE_SYDY 6          0x21         0x59e0                  128 128
>                 no  b8cef6.fffe.057e20-1     2401:db00:2515:f001:face:0:3fa:0 
>   HAVE_ANN  6          0x21         0x59e0                  128 128
>                 no  b8cef6.fffe.7349dc-1     2401:db00:2515:f001:face:0:da:0  
>   HAVE_ANN  6          0x21         0x59e0                  128 128
>                 no  ffffff.ffff.ffffff-65535 2401:db00:2515:f002:face:0:11b:0 
>   WAIT      0          0x00         0x0000                  0   0
>                 no  b8cef6.fffe.7349c4-1     2401:db00:2515:f002:face:0:1ec:0 
>   HAVE_ANN  6          0x21         0x59e0                  128 128
>                 no  ffffff.ffff.ffffff-65535 2401:db00:2515:f002:face:0:94:0  
>   WAIT      0          0x00         0x0000                  0   0
>                 no  ffffff.ffff.ffffff-65535 192.168.0.1                      
>   WAIT      0          0x00         0x0000                  0   0
>                 no  b8cef6.fffe.7349c8-1     2401:db00:2515:f002:face:0:b7:0  
>   HAVE_ANN  6          0x21         0x59e0                  128 128
> 
> I realize that this is can be controversial
> (for one, no other PMC command provides table-like output),
> so I'm happy to hear your suggestion.

This looks okay to me as it is both human readable and fairly easy to
parse with a script.

> diff --git a/ddt.h b/ddt.h
> index ef30f73..7a95344 100644
> --- a/ddt.h
> +++ b/ddt.h
> @@ -120,4 +120,14 @@ struct PortServiceStats {
>       uint64_t followup_mismatch;
>  };
>  
> +struct UnicastMasterEntry {

Please use lower case + underscore for custom code.  See
CODING_STYLE.org for rationale.

> +     uint8_t                 selected;
> +     Enumeration8            portState;
> +     struct PortIdentity     portIdentity;
> +     struct ClockQuality     clockQuality;
> +     UInteger8               priority1;
> +     UInteger8               priority2;
> +     struct PortAddress      address;
> +} PACKED;
> +
>  #endif
> diff --git a/pmc.c b/pmc.c
> index 2e5e93e..577e479 100644
> --- a/pmc.c
> +++ b/pmc.c
> @@ -88,6 +88,24 @@ static void pmc_show_rx_sync_timing(struct 
> slave_rx_sync_timing_record *record,
>               SHOW_TIMESTAMP(record->syncEventIngressTimestamp));
>  }
>  
> +
> +static void pmc_show_unicast_master_entry(struct UnicastMasterEntry *entry,
> +                                 FILE *fp)
> +{
> +     fprintf(fp,
> +             IFMT "%s %-24s %-34s %-9s %-10hhu 0x%02hhx         0x%04hx      
>             %-3hhu %-3hhu",
> +             entry->selected ? "yes" : "no ",
> +             pid2str(&entry->portIdentity),
> +             portaddr2str(&entry->address),
> +             ustate2str(entry->portState),
> +             entry->clockQuality.clockClass,
> +             entry->clockQuality.clockAccuracy,
> +             entry->clockQuality.offsetScaledLogVariance,
> +             entry->priority1,
> +             entry->priority2
> +     );
> +}
> +
>  static void pmc_show_signaling(struct ptp_message *msg, FILE *fp)
>  {
>       struct slave_rx_sync_timing_record *sync_record;
> @@ -149,6 +167,7 @@ static void pmc_show(struct ptp_message *msg, FILE *fp)
>       struct time_status_np *tsn;
>       struct port_stats_np *pcp;
>       struct port_service_stats_np *pssp;
> +     struct unicast_master_table_np *umtn;

Please form reverse Christmas tree, and move pssp up as well.

>       struct tlv_extra *extra;
>       struct port_ds_np *pnp;
>       struct defaultDS *dds;
> @@ -157,6 +176,9 @@ static void pmc_show(struct ptp_message *msg, FILE *fp)
>       struct portDS *p;
>       struct TLV *tlv;
>       int action;
> +     uint8_t *buf;
> +
> +     struct UnicastMasterEntry *ume;

ditto

> diff --git a/pmc_common.c b/pmc_common.c
> index b691bbb..4ed781f 100644
> --- a/pmc_common.c
> +++ b/pmc_common.c
> @@ -124,6 +124,7 @@ struct management_id idtab[] = {
>       { "UNICAST_NEGOTIATION_ENABLE", MID_UNICAST_NEGOTIATION_ENABLE, 
> not_supported },
>       { "UNICAST_MASTER_TABLE", MID_UNICAST_MASTER_TABLE, not_supported },
>       { "UNICAST_MASTER_MAX_TABLE_SIZE", MID_UNICAST_MASTER_MAX_TABLE_SIZE, 
> not_supported },
> +     { "UNICAST_MASTER_TABLE_NP", MID_UNICAST_MASTER_TABLE_NP, do_get_action 
> },

This is list in numerical order, so place MID_UNICAST_MASTER_TABLE_NP
0xC008 after MID_PORT_SERVICE_STATS_NP 0xC007.

While you are at it, can you fix the order of

        { "PORT_DATA_SET_NP", MID_PORT_DATA_SET_NP, do_set_action },
        { "PORT_STATS_NP", MID_PORT_STATS_NP, do_get_action },
        { "PORT_SERVICE_STATS_NP", MID_PORT_SERVICE_STATS_NP, do_get_action },
        { "PORT_PROPERTIES_NP", MID_PORT_PROPERTIES_NP, do_get_action },

please?

> @@ -799,6 +800,7 @@ static int port_management_fill_response(struct port 
> *target,
>       struct port_properties_np *ppn;
>       struct port_stats_np *psn;
>       struct port_service_stats_np *pssn;
> +     struct unicast_master_table_np *umtn;

ditto

>       struct management_tlv *tlv;
>       struct port_ds_np *pdsnp;
>       struct tlv_extra *extra;
> @@ -807,6 +809,10 @@ static int port_management_fill_response(struct port 
> *target,
>       uint16_t u16;
>       uint8_t *buf;
>       int datalen;
> +     struct unicast_master_address *ucma;
> +     struct UnicastMasterEntry *ume;
> +     struct PortIdentity pid;
> +     struct foreign_clock *fc;

ditto

>  
>       extra = tlv_extra_alloc();
>       if (!extra) {

> diff --git a/tlv.c b/tlv.c
> index df516be..f5420f7 100644
> --- a/tlv.c
> +++ b/tlv.c
> @@ -127,6 +127,8 @@ static int mgt_post_recv(struct management_tlv *m, 
> uint16_t data_len,
>       struct defaultDS *dds;
>       struct parentDS *pds;
>       struct portDS *p;
> +     struct unicast_master_table_np *umtn;
> +     struct UnicastMasterEntry *ume;

ditto

>       uint8_t *buf;
>       uint16_t u16;

> @@ -396,7 +426,10 @@ static void mgt_pre_send(struct management_tlv *m, 
> struct tlv_extra *extra)
>       struct currentDS *cds;
>       struct parentDS *pds;
>       struct portDS *p;
> +     struct unicast_master_table_np *umtn;
> +     struct UnicastMasterEntry *ume;
>       int i;
> +     uint8_t *buf;

ditto

> @@ -355,6 +356,11 @@ struct port_service_stats_np {
>       struct PortServiceStats stats;
>  } PACKED;
>  
> +struct unicast_master_table_np {
> +     uint16_t actualTableSize;

lowercase + underscore

> +     struct UnicastMasterEntry unicast_masters[0];
> +} PACKED;
> +
>  #define PROFILE_ID_LEN 6
>  
>  struct mgmt_clock_description {

Thanks,
Richard


_______________________________________________
Linuxptp-devel mailing list
Linuxptp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linuxptp-devel

Reply via email to