]> git.proxmox.com Git - mirror_iproute2.git/blobdiff - ip/ipxfrm.c
bridge: fdb: add support for src_vni option
[mirror_iproute2.git] / ip / ipxfrm.c
index 17ab4abef4be5c66875e47e69080f407e0d1cd5d..b153b863569bb813cd1b44a21a9a6b365ee254f2 100644 (file)
@@ -186,7 +186,7 @@ const char *strxf_algotype(int type)
        return str;
 }
 
-const char *strxf_mask8(__u8 mask)
+static const char *strxf_mask8(__u8 mask)
 {
        static char str[16];
        const int sn = sizeof(mask) * 8 - 1;
@@ -209,7 +209,7 @@ const char *strxf_mask32(__u32 mask)
        return str;
 }
 
-const char *strxf_share(__u8 share)
+static const char *strxf_share(__u8 share)
 {
        static char str[32];
 
@@ -270,7 +270,7 @@ const char *strxf_ptype(__u8 ptype)
        return str;
 }
 
-void xfrm_id_info_print(xfrm_address_t *saddr, struct xfrm_id *id,
+static void xfrm_id_info_print(xfrm_address_t *saddr, struct xfrm_id *id,
                        __u8 mode, __u32 reqid, __u16 family, int force_spi,
                        FILE *fp, const char *prefix, const char *title)
 {
@@ -337,7 +337,8 @@ static const char *strxf_limit(__u64 limit)
        return str;
 }
 
-void xfrm_stats_print(struct xfrm_stats *s, FILE *fp, const char *prefix)
+static void xfrm_stats_print(struct xfrm_stats *s, FILE *fp,
+                            const char *prefix)
 {
        if (prefix)
                fputs(prefix, fp);
@@ -371,7 +372,7 @@ static const char *strxf_time(__u64 time)
        return str;
 }
 
-void xfrm_lifetime_print(struct xfrm_lifetime_cfg *cfg,
+static void xfrm_lifetime_print(struct xfrm_lifetime_cfg *cfg,
                         struct xfrm_lifetime_cur *cur,
                         FILE *fp, const char *prefix)
 {
@@ -496,7 +497,8 @@ void xfrm_selector_print(struct xfrm_selector *sel, __u16 family,
 }
 
 static void __xfrm_algo_print(struct xfrm_algo *algo, int type, int len,
-                             FILE *fp, const char *prefix, int newline)
+                             FILE *fp, const char *prefix, int newline,
+                             bool nokeys)
 {
        int keylen;
        int i;
@@ -520,7 +522,9 @@ static void __xfrm_algo_print(struct xfrm_algo *algo, int type, int len,
                goto fin;
        }
 
-       if (keylen > 0) {
+       if (nokeys)
+               fprintf(fp, "<<Keys hidden>>");
+       else if (keylen > 0) {
                fprintf(fp, "0x");
                for (i = 0; i < keylen; i++)
                        fprintf(fp, "%.2x", (unsigned char)algo->alg_key[i]);
@@ -535,13 +539,13 @@ static void __xfrm_algo_print(struct xfrm_algo *algo, int type, int len,
 }
 
 static inline void xfrm_algo_print(struct xfrm_algo *algo, int type, int len,
-                                  FILE *fp, const char *prefix)
+                                  FILE *fp, const char *prefix, bool nokeys)
 {
-       return __xfrm_algo_print(algo, type, len, fp, prefix, 1);
+       return __xfrm_algo_print(algo, type, len, fp, prefix, 1, nokeys);
 }
 
 static void xfrm_aead_print(struct xfrm_algo_aead *algo, int len,
-                           FILE *fp, const char *prefix)
+                           FILE *fp, const char *prefix, bool nokeys)
 {
        struct xfrm_algo *base_algo = alloca(sizeof(*base_algo) + algo->alg_key_len / 8);
 
@@ -549,7 +553,8 @@ static void xfrm_aead_print(struct xfrm_algo_aead *algo, int len,
        base_algo->alg_key_len = algo->alg_key_len;
        memcpy(base_algo->alg_key, algo->alg_key, algo->alg_key_len / 8);
 
-       __xfrm_algo_print(base_algo, XFRMA_ALG_AEAD, len, fp, prefix, 0);
+       __xfrm_algo_print(base_algo, XFRMA_ALG_AEAD, len, fp, prefix, 0,
+                         nokeys);
 
        fprintf(fp, " %d", algo->alg_icv_len);
 
@@ -557,7 +562,7 @@ static void xfrm_aead_print(struct xfrm_algo_aead *algo, int len,
 }
 
 static void xfrm_auth_trunc_print(struct xfrm_algo_auth *algo, int len,
-                                 FILE *fp, const char *prefix)
+                                 FILE *fp, const char *prefix, bool nokeys)
 {
        struct xfrm_algo *base_algo = alloca(sizeof(*base_algo) + algo->alg_key_len / 8);
 
@@ -565,7 +570,8 @@ static void xfrm_auth_trunc_print(struct xfrm_algo_auth *algo, int len,
        base_algo->alg_key_len = algo->alg_key_len;
        memcpy(base_algo->alg_key, algo->alg_key, algo->alg_key_len / 8);
 
-       __xfrm_algo_print(base_algo, XFRMA_ALG_AUTH_TRUNC, len, fp, prefix, 0);
+       __xfrm_algo_print(base_algo, XFRMA_ALG_AUTH_TRUNC, len, fp, prefix, 0,
+                         nokeys);
 
        fprintf(fp, " %d", algo->alg_trunc_len);
 
@@ -678,7 +684,7 @@ done:
 }
 
 void xfrm_xfrma_print(struct rtattr *tb[], __u16 family,
-                     FILE *fp, const char *prefix)
+                     FILE *fp, const char *prefix, bool nokeys)
 {
        if (tb[XFRMA_MARK]) {
                struct rtattr *rta = tb[XFRMA_MARK];
@@ -699,36 +705,36 @@ void xfrm_xfrma_print(struct rtattr *tb[], __u16 family,
        if (tb[XFRMA_ALG_AUTH] && !tb[XFRMA_ALG_AUTH_TRUNC]) {
                struct rtattr *rta = tb[XFRMA_ALG_AUTH];
 
-               xfrm_algo_print(RTA_DATA(rta),
-                               XFRMA_ALG_AUTH, RTA_PAYLOAD(rta), fp, prefix);
+               xfrm_algo_print(RTA_DATA(rta), XFRMA_ALG_AUTH, RTA_PAYLOAD(rta),
+                               fp, prefix, nokeys);
        }
 
        if (tb[XFRMA_ALG_AUTH_TRUNC]) {
                struct rtattr *rta = tb[XFRMA_ALG_AUTH_TRUNC];
 
-               xfrm_auth_trunc_print(RTA_DATA(rta),
-                                     RTA_PAYLOAD(rta), fp, prefix);
+               xfrm_auth_trunc_print(RTA_DATA(rta), RTA_PAYLOAD(rta), fp,
+                                     prefix, nokeys);
        }
 
        if (tb[XFRMA_ALG_AEAD]) {
                struct rtattr *rta = tb[XFRMA_ALG_AEAD];
 
-               xfrm_aead_print(RTA_DATA(rta),
-                               RTA_PAYLOAD(rta), fp, prefix);
+               xfrm_aead_print(RTA_DATA(rta), RTA_PAYLOAD(rta), fp, prefix,
+                               nokeys);
        }
 
        if (tb[XFRMA_ALG_CRYPT]) {
                struct rtattr *rta = tb[XFRMA_ALG_CRYPT];
 
-               xfrm_algo_print(RTA_DATA(rta),
-                               XFRMA_ALG_CRYPT, RTA_PAYLOAD(rta), fp, prefix);
+               xfrm_algo_print(RTA_DATA(rta), XFRMA_ALG_CRYPT,
+                               RTA_PAYLOAD(rta), fp, prefix, nokeys);
        }
 
        if (tb[XFRMA_ALG_COMP]) {
                struct rtattr *rta = tb[XFRMA_ALG_COMP];
 
-               xfrm_algo_print(RTA_DATA(rta),
-                               XFRMA_ALG_COMP, RTA_PAYLOAD(rta), fp, prefix);
+               xfrm_algo_print(RTA_DATA(rta), XFRMA_ALG_COMP, RTA_PAYLOAD(rta),
+                               fp, prefix, nokeys);
        }
 
        if (tb[XFRMA_ENCAP]) {
@@ -896,7 +902,7 @@ static int xfrm_selector_iszero(struct xfrm_selector *s)
 
 void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo,
                            struct rtattr *tb[], FILE *fp, const char *prefix,
-                           const char *title)
+                           const char *title, bool nokeys)
 {
        char buf[STRBUF_SIZE] = {};
        int force_spi = xfrm_xfrmproto_is_ipsec(xsinfo->id.proto);
@@ -942,7 +948,7 @@ void xfrm_state_info_print(struct xfrm_usersa_info *xsinfo,
                fprintf(fp, " (0x%s)", strxf_mask8(xsinfo->flags));
        fprintf(fp, "%s", _SL_);
 
-       xfrm_xfrma_print(tb, xsinfo->family, fp, buf);
+       xfrm_xfrma_print(tb, xsinfo->family, fp, buf, nokeys);
 
        if (!xfrm_selector_iszero(&xsinfo->sel)) {
                char sbuf[STRBUF_SIZE];
@@ -1070,7 +1076,7 @@ void xfrm_policy_info_print(struct xfrm_userpolicy_info *xpinfo,
        if (show_stats > 0)
                xfrm_lifetime_print(&xpinfo->lft, &xpinfo->curlft, fp, buf);
 
-       xfrm_xfrma_print(tb, xpinfo->sel.family, fp, buf);
+       xfrm_xfrma_print(tb, xpinfo->sel.family, fp, buf, false);
 }
 
 int xfrm_id_parse(xfrm_address_t *saddr, struct xfrm_id *id, __u16 *family,