]> git.proxmox.com Git - mirror_frr.git/commitdiff
bgpd: AS paths are uint32_t instead of integers
authorDonald Sharp <sharpd@cumulusnetworks.com>
Wed, 9 Oct 2019 20:10:44 +0000 (16:10 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Tue, 15 Oct 2019 17:15:45 +0000 (13:15 -0400)
We have some JSON output that was displaying high order
AS path data as negative numbers:

{
 "paths":[
    {
      "aspath":{
        "string":"4200010118 4200010000 20473 1299",
        "segments":[
          {
            "type":"as-sequence",
            "list":[
              -94957178,
              -94957296,
              20473,
              1299
            ]
          }
        ],

Notice "String" output -vs- the list.

With fixed code:

  "paths":[
    {
      "aspath":{
        "string":"64539 4294967000 15096 6939 7922 7332 4249",
        "segments":[
          {
            "type":"as-sequence",
            "list":[
              64539,
              4294967000,
              15096,
              6939,
              7922,
              7332,
              4249
            ]
          }
        ],

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_aspath.c

index f5652b07c5e46cb66ef3a1ea2c5fbd26dd4b6411..d716218d70482db4277737efada914553a36c331 100644 (file)
@@ -576,7 +576,7 @@ static void aspath_make_str_count(struct aspath *as, bool make_json)
                        if (make_json)
                                json_object_array_add(
                                        jseg_list,
-                                       json_object_new_int(seg->as[i]));
+                                       json_object_new_int64(seg->as[i]));
 
                        len += snprintf(str_buf + len, str_size - len, "%u",
                                        seg->as[i]);