diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/nexthop.c | 5 | ||||
| -rw-r--r-- | lib/srv6.c | 8 | ||||
| -rw-r--r-- | lib/srv6.h | 1 | 
3 files changed, 14 insertions, 0 deletions
diff --git a/lib/nexthop.c b/lib/nexthop.c index ee6c2b7ec0..c377b9cb00 100644 --- a/lib/nexthop.c +++ b/lib/nexthop.c @@ -1153,6 +1153,7 @@ void nexthop_json_helper(json_object *json_nexthop,  	json_object *json_backups = NULL;  	json_object *json_seg6local = NULL;  	json_object *json_seg6local_context = NULL; +	json_object *json_srv6_sid_structure = NULL;  	json_object *json_seg6 = NULL;  	json_object *json_segs = NULL;  	int i; @@ -1328,6 +1329,10 @@ void nexthop_json_helper(json_object *json_nexthop,  		json_object_object_add(json_nexthop, "seg6localContext",  				       json_seg6local_context); +		json_srv6_sid_structure = json_object_new_object(); +		srv6_sid_structure2json(&nexthop->nh_srv6->seg6local_ctx, json_srv6_sid_structure); +		json_object_object_add(json_seg6local, "sidStructure", json_srv6_sid_structure); +  		if (nexthop->nh_srv6->seg6_segs &&  		    nexthop->nh_srv6->seg6_segs->num_segs == 1) {  			json_seg6 = json_object_new_object(); diff --git a/lib/srv6.c b/lib/srv6.c index e6fc375fbb..c00aca3cab 100644 --- a/lib/srv6.c +++ b/lib/srv6.c @@ -71,6 +71,14 @@ int snprintf_seg6_segs(char *str,  	return strlen(str);  } +void srv6_sid_structure2json(const struct seg6local_context *ctx, json_object *json) +{ +	json_object_int_add(json, "blockLen", ctx->block_len); +	json_object_int_add(json, "nodeLen", ctx->node_len); +	json_object_int_add(json, "funcLen", ctx->function_len); +	json_object_int_add(json, "argLen", ctx->argument_len); +} +  void seg6local_context2json(const struct seg6local_context *ctx,  			    uint32_t action, json_object *json)  { diff --git a/lib/srv6.h b/lib/srv6.h index 7e4fb97ad1..011705504e 100644 --- a/lib/srv6.h +++ b/lib/srv6.h @@ -363,6 +363,7 @@ const char *seg6local_context2str(char *str, size_t size,  				  uint32_t action);  void seg6local_context2json(const struct seg6local_context *ctx,  			    uint32_t action, json_object *json); +void srv6_sid_structure2json(const struct seg6local_context *ctx, json_object *json);  static inline const char *srv6_sid_ctx2str(char *str, size_t size,  					   const struct srv6_sid_ctx *ctx)  | 
