]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
macsec: Fix Macsec packet number attribute print
authorEmeel Hakim <ehakim@nvidia.com>
Thu, 19 Jan 2023 11:53:02 +0000 (13:53 +0200)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 25 Jan 2023 18:23:43 +0000 (10:23 -0800)
Currently Macsec print routines uses a 32 bit print routine
to print out the value of the packet number (PN) attribute, a
miss use of the 32 bit print routine is causing a miss print of
only the 32 least significant bit (LSB) of an extended packet
number (XPN) which is a 64 bit attribute.

Fixes: 6ce23b7c2d79 ("macsec: add Extended Packet Number support")
Signed-off-by: Emeel Hakim <ehakim@nvidia.com>
Reviewed-by: Simon Horman <simon.horman@corigine.com>
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
ip/ipmacsec.c

index 8da7c3d3d1d6b3973853dd840dae19e11ddbad52..8b0d566652cbecfcdf18fce284cd5d9e8d71238d 100644 (file)
@@ -938,8 +938,8 @@ static void print_tx_sc(const char *prefix, __u64 sci, __u8 encoding_sa,
                print_uint(PRINT_ANY, "an", "%d:",
                           rta_getattr_u8(sa_attr[MACSEC_SA_ATTR_AN]));
                if (is_xpn) {
-                       print_uint(PRINT_ANY, "pn", " PN %u,",
-                                  rta_getattr_u64(sa_attr[MACSEC_SA_ATTR_PN]));
+                       print_lluint(PRINT_ANY, "pn", " PN %llu,",
+                                    rta_getattr_u64(sa_attr[MACSEC_SA_ATTR_PN]));
                        print_0xhex(PRINT_ANY, "ssci",
                                    "SSCI %08x",
                                    ntohl(rta_getattr_u32(sa_attr[MACSEC_SA_ATTR_SSCI])));
@@ -1015,8 +1015,8 @@ static void print_rx_sc(const char *prefix, __be64 sci, __u8 active,
                print_uint(PRINT_ANY, "an", "%u:",
                           rta_getattr_u8(sa_attr[MACSEC_SA_ATTR_AN]));
                if (is_xpn) {
-                       print_uint(PRINT_ANY, "pn", " PN %u,",
-                                  rta_getattr_u64(sa_attr[MACSEC_SA_ATTR_PN]));
+                       print_lluint(PRINT_ANY, "pn", " PN %llu,",
+                                    rta_getattr_u64(sa_attr[MACSEC_SA_ATTR_PN]));
                        print_0xhex(PRINT_ANY, "ssci",
                                    "SSCI %08x",
                                    ntohl(rta_getattr_u32(sa_attr[MACSEC_SA_ATTR_SSCI])));