]> git.puffer.fish Git - matthieu/frr.git/commitdiff
Merge pull request #6483 from sylane/router-id-v6
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 10 Aug 2020 12:39:51 +0000 (08:39 -0400)
committerGitHub <noreply@github.com>
Mon, 10 Aug 2020 12:39:51 +0000 (08:39 -0400)
zebra: add IPv6 router-id

1  2 
lib/zclient.c
lib/zclient.h
zebra/zapi_msg.c
zebra/zserv.c
zebra/zserv.h

diff --cc lib/zclient.c
Simple merge
diff --cc lib/zclient.h
Simple merge
index 0a459b4d0ae37efe201f438000b72c2d62b1c3f0,13c63d51372412edca0f39b05c0288e37e47969d..48aa566136e7033a99d3a6ad21c7a651147ac9c7
@@@ -1999,60 -2005,10 +2028,60 @@@ static void zread_vrf_unregister(ZAPI_H
                for (i = 0; i < ZEBRA_ROUTE_MAX; i++)
                        vrf_bitmap_unset(client->redist[afi][i], zvrf_id(zvrf));
                vrf_bitmap_unset(client->redist_default[afi], zvrf_id(zvrf));
+               vrf_bitmap_unset(client->ridinfo[afi], zvrf_id(zvrf));
        }
-       vrf_bitmap_unset(client->ridinfo, zvrf_id(zvrf));
  }
  
 +/*
 + * Validate incoming zapi mpls lsp / labels message
 + */
 +static int zapi_labels_validate(const struct zapi_labels *zl)
 +{
 +      int ret = -1;
 +      int i, j, idx;
 +      uint32_t bits[8];
 +      uint32_t ival;
 +      const struct zapi_nexthop *znh;
 +
 +      /* Validate backup info: no duplicates for a single primary */
 +      if (zl->backup_nexthop_num == 0) {
 +              ret = 0;
 +              goto done;
 +      }
 +
 +      for (j = 0; j < zl->nexthop_num; j++) {
 +              znh = &zl->nexthops[j];
 +
 +              memset(bits, 0, sizeof(bits));
 +
 +              for (i = 0; i < znh->backup_num; i++) {
 +                      idx = znh->backup_idx[i] / 32;
 +
 +                      ival = 1 << znh->backup_idx[i] % 32;
 +
 +                      /* Check whether value is already used */
 +                      if (ival & bits[idx]) {
 +                              /* Fail */
 +
 +                              if (IS_ZEBRA_DEBUG_RECV)
 +                                      zlog_debug("%s: invalid zapi mpls message: duplicate backup nexthop index %d",
 +                                                 __func__,
 +                                                 znh->backup_idx[i]);
 +                              goto done;
 +                      }
 +
 +                      /* Mark index value */
 +                      bits[idx] |= ival;
 +              }
 +      }
 +
 +      ret = 0;
 +
 +done:
 +
 +      return ret;
 +}
 +
  /*
   * Handle request to create an MPLS LSP.
   *
diff --cc zebra/zserv.c
Simple merge
diff --cc zebra/zserv.h
Simple merge