Merge pull request #12713 from opensourcerouting/fix/json_naming_deprecation

*: Drop deprecated incorrect JSON fields with wrong naming
This commit is contained in:
Donald Sharp 2023-02-01 15:39:18 -05:00 committed by GitHub
commit 33303f08bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
36 changed files with 330 additions and 472 deletions

View File

@ -743,22 +743,12 @@ DEFUN(show_bgp_labelpool_summary, show_bgp_labelpool_summary_cmd,
if (uj) { if (uj) {
json = json_object_new_object(); json = json_object_new_object();
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys starting with capital")
#endif
json_object_int_add(json, "Ledger", skiplist_count(lp->ledger));
json_object_int_add(json, "ledger", skiplist_count(lp->ledger)); json_object_int_add(json, "ledger", skiplist_count(lp->ledger));
json_object_int_add(json, "InUse", skiplist_count(lp->inuse));
json_object_int_add(json, "inUse", skiplist_count(lp->inuse)); json_object_int_add(json, "inUse", skiplist_count(lp->inuse));
json_object_int_add(json, "Requests",
lp_fifo_count(&lp->requests));
json_object_int_add(json, "requests", json_object_int_add(json, "requests",
lp_fifo_count(&lp->requests)); lp_fifo_count(&lp->requests));
json_object_int_add(json, "LabelChunks", listcount(lp->chunks));
json_object_int_add(json, "labelChunks", listcount(lp->chunks)); json_object_int_add(json, "labelChunks", listcount(lp->chunks));
json_object_int_add(json, "Pending", lp->pending_count);
json_object_int_add(json, "pending", lp->pending_count); json_object_int_add(json, "pending", lp->pending_count);
json_object_int_add(json, "Reconnects", lp->reconnect_count);
json_object_int_add(json, "reconnects", lp->reconnect_count); json_object_int_add(json, "reconnects", lp->reconnect_count);
vty_json(vty, json); vty_json(vty, json);
} else { } else {

View File

@ -9858,8 +9858,6 @@ void route_vty_out_overlay(struct vty *vty, const struct prefix *p,
if (!json_path) { if (!json_path) {
vty_out(vty, "?"); vty_out(vty, "?");
} else { } else {
json_object_string_add(json_nexthop, "Error",
"Unsupported address-family");
json_object_string_add(json_nexthop, "error", json_object_string_add(json_nexthop, "error",
"Unsupported address-family"); "Unsupported address-family");
} }
@ -10227,12 +10225,9 @@ void route_vty_out_detail(struct vty *vty, struct bgp *bgp, struct bgp_dest *bn,
if (tag_buf[0] != '\0') if (tag_buf[0] != '\0')
vty_out(vty, " VNI %s", tag_buf); vty_out(vty, " VNI %s", tag_buf);
} else { } else {
if (tag_buf[0]) { if (tag_buf[0])
json_object_string_add(json_path, "VNI",
tag_buf);
json_object_string_add(json_path, "vni", json_object_string_add(json_path, "vni",
tag_buf); tag_buf);
}
} }
} }
} }

View File

@ -1472,10 +1472,6 @@ show_l2vpn_pw_msg_json(struct imsg *imsg, struct show_params *params,
json_pw = json_object_new_object(); json_pw = json_object_new_object();
json_object_string_addf(json_pw, "peerId", "%pI4", &pw->lsr_id); json_object_string_addf(json_pw, "peerId", "%pI4", &pw->lsr_id);
json_object_int_add(json_pw, "vcId", pw->pwid); json_object_int_add(json_pw, "vcId", pw->pwid);
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys starting with capital")
#endif
json_object_string_add(json_pw, "VpnName", pw->l2vpn_name);
json_object_string_add(json_pw, "vpnName", pw->l2vpn_name); json_object_string_add(json_pw, "vpnName", pw->l2vpn_name);
if (pw->status == PW_FORWARDING) if (pw->status == PW_FORWARDING)
json_object_string_add(json_pw, "status", "up"); json_object_string_add(json_pw, "status", "up");

View File

@ -963,22 +963,13 @@ static void show_ospf6_gr_helper_details(struct vty *vty, struct ospf6 *ospf6,
json, "supportedGracePeriod", json, "supportedGracePeriod",
ospf6->ospf6_helper_cfg.supported_grace_time); ospf6->ospf6_helper_cfg.supported_grace_time);
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys starting with capital")
#endif
if (ospf6->ospf6_helper_cfg.last_exit_reason != if (ospf6->ospf6_helper_cfg.last_exit_reason !=
OSPF6_GR_HELPER_EXIT_NONE) { OSPF6_GR_HELPER_EXIT_NONE)
json_object_string_add(
json, "LastExitReason",
ospf6_exit_reason_desc
[ospf6->ospf6_helper_cfg
.last_exit_reason]);
json_object_string_add( json_object_string_add(
json, "lastExitReason", json, "lastExitReason",
ospf6_exit_reason_desc ospf6_exit_reason_desc
[ospf6->ospf6_helper_cfg [ospf6->ospf6_helper_cfg
.last_exit_reason]); .last_exit_reason]);
}
if (ospf6->ospf6_helper_cfg.active_restarter_cnt) if (ospf6->ospf6_helper_cfg.active_restarter_cnt)
json_object_int_add( json_object_int_add(
@ -1009,18 +1000,12 @@ CPP_NOTICE("Remove JSON object commands with keys starting with capital")
struct ospf6_neighbor *nbr; struct ospf6_neighbor *nbr;
if (uj) { if (uj) {
json_object_object_get_ex(
json, "Neighbors",
&json_neighbors);
json_object_object_get_ex( json_object_object_get_ex(
json, "neighbors", json, "neighbors",
&json_neighbors); &json_neighbors);
if (!json_neighbors) { if (!json_neighbors) {
json_neighbors = json_neighbors =
json_object_new_object(); json_object_new_object();
json_object_object_add(
json, "Neighbors",
json_neighbors);
json_object_object_add( json_object_object_add(
json, "neighbors", json, "neighbors",
json_neighbors); json_neighbors);

View File

@ -83,11 +83,7 @@ static int ospf6_unknown_lsa_show(struct vty *vty, struct ospf6_lsa *lsa,
start = (uint8_t *)lsa->header + sizeof(struct ospf6_lsa_header); start = (uint8_t *)lsa->header + sizeof(struct ospf6_lsa_header);
end = (uint8_t *)lsa->header + ntohs(lsa->header->length); end = (uint8_t *)lsa->header + ntohs(lsa->header->length);
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys starting with capital")
#endif
if (use_json) { if (use_json) {
json_object_string_add(json_obj, "LsaType", "unknown");
json_object_string_add(json_obj, "lsaType", "unknown"); json_object_string_add(json_obj, "lsaType", "unknown");
} else { } else {
vty_out(vty, " Unknown contents:\n"); vty_out(vty, " Unknown contents:\n");

View File

@ -2015,9 +2015,6 @@ ospf6_show_vrf_name(struct vty *vty, struct ospf6 *ospf6,
} }
} }
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys containing whitespaces")
#endif
static int static int
ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6, ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
json_object *json, json_object *json,
@ -2037,8 +2034,6 @@ ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
ospf6_show_vrf_name(vty, ospf6, json_vrf); ospf6_show_vrf_name(vty, ospf6, json_vrf);
json_object_int_add(json_vrf, "aggregation delay interval",
ospf6->aggr_delay_interval);
json_object_int_add(json_vrf, "aggregationDelayInterval", json_object_int_add(json_vrf, "aggregationDelayInterval",
ospf6->aggr_delay_interval); ospf6->aggr_delay_interval);
} }
@ -2062,17 +2057,9 @@ ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
buf, buf,
json_aggr); json_aggr);
json_object_string_add(json_aggr,
"Summary address",
buf);
json_object_string_add(json_aggr, "summaryAddress", json_object_string_add(json_aggr, "summaryAddress",
buf); buf);
json_object_string_add(
json_aggr, "Metric-type",
(aggr->mtype == DEFAULT_METRIC_TYPE)
? "E2"
: "E1");
json_object_string_add( json_object_string_add(
json_aggr, "metricType", json_aggr, "metricType",
(aggr->mtype == DEFAULT_METRIC_TYPE) ? "E2" (aggr->mtype == DEFAULT_METRIC_TYPE) ? "E2"
@ -2086,9 +2073,6 @@ ospf6_show_summary_address(struct vty *vty, struct ospf6 *ospf6,
json_object_int_add(json_aggr, "Tag", json_object_int_add(json_aggr, "Tag",
aggr->tag); aggr->tag);
json_object_int_add(json_aggr,
"External route count",
OSPF6_EXTERNAL_RT_COUNT(aggr));
json_object_int_add(json_aggr, "externalRouteCount", json_object_int_add(json_aggr, "externalRouteCount",
OSPF6_EXTERNAL_RT_COUNT(aggr)); OSPF6_EXTERNAL_RT_COUNT(aggr));

View File

@ -507,15 +507,8 @@ void ospf_ldp_sync_show_info(struct vty *vty, struct ospf *ospf,
if (CHECK_FLAG(ospf->ldp_sync_cmd.flags, LDP_SYNC_FLAG_ENABLE)) { if (CHECK_FLAG(ospf->ldp_sync_cmd.flags, LDP_SYNC_FLAG_ENABLE)) {
if (use_json) { if (use_json) {
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys starting with capital")
#endif
json_object_boolean_true_add(json_vrf,
"MplsLdpIgpSyncEnabled");
json_object_boolean_true_add(json_vrf, json_object_boolean_true_add(json_vrf,
"mplsLdpIgpSyncEnabled"); "mplsLdpIgpSyncEnabled");
json_object_int_add(json_vrf, "MplsLdpIgpSyncHolddown",
ospf->ldp_sync_cmd.holddown);
json_object_int_add(json_vrf, "mplsLdpIgpSyncHolddown", json_object_int_add(json_vrf, "mplsLdpIgpSyncHolddown",
ospf->ldp_sync_cmd.holddown); ospf->ldp_sync_cmd.holddown);
} else { } else {

View File

@ -10214,17 +10214,10 @@ static int ospf_show_gr_helper_details(struct vty *vty, struct ospf *ospf,
json_object_int_add(json_vrf, "supportedGracePeriod", json_object_int_add(json_vrf, "supportedGracePeriod",
ospf->supported_grace_time); ospf->supported_grace_time);
#if CONFDATE > 20230131 if (ospf->last_exit_reason != OSPF_GR_HELPER_EXIT_NONE)
CPP_NOTICE("Remove JSON object commands with keys starting with capital")
#endif
if (ospf->last_exit_reason != OSPF_GR_HELPER_EXIT_NONE) {
json_object_string_add(
json_vrf, "LastExitReason",
ospf_exit_reason2str(ospf->last_exit_reason));
json_object_string_add( json_object_string_add(
json_vrf, "lastExitReason", json_vrf, "lastExitReason",
ospf_exit_reason2str(ospf->last_exit_reason)); ospf_exit_reason2str(ospf->last_exit_reason));
}
if (ospf->active_restarter_cnt) if (ospf->active_restarter_cnt)
json_object_int_add(json_vrf, "activeRestarterCnt", json_object_int_add(json_vrf, "activeRestarterCnt",
@ -10257,16 +10250,11 @@ CPP_NOTICE("Remove JSON object commands with keys starting with capital")
continue; continue;
if (uj) { if (uj) {
json_object_object_get_ex(json_vrf, "Neighbors",
&json_neighbors);
json_object_object_get_ex(json_vrf, "neighbors", json_object_object_get_ex(json_vrf, "neighbors",
&json_neighbors); &json_neighbors);
if (!json_neighbors) { if (!json_neighbors) {
json_neighbors = json_neighbors =
json_object_new_object(); json_object_new_object();
json_object_object_add(json_vrf,
"Neighbors",
json_neighbors);
json_object_object_add(json_vrf, json_object_object_add(json_vrf,
"neighbors", "neighbors",
json_neighbors); json_neighbors);
@ -10563,9 +10551,6 @@ static void config_write_stub_router(struct vty *vty, struct ospf *ospf)
return; return;
} }
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys containing whitespaces")
#endif
static void show_ip_ospf_route_network(struct vty *vty, struct ospf *ospf, static void show_ip_ospf_route_network(struct vty *vty, struct ospf *ospf,
struct route_table *rt, struct route_table *rt,
json_object *json) json_object *json)
@ -10667,12 +10652,6 @@ static void show_ip_ospf_route_network(struct vty *vty, struct ospf *ospf,
json_object_string_add( json_object_string_add(
json_nexthop, json_nexthop,
"ip", " "); "ip", " ");
json_object_string_add(
json_nexthop,
"directly attached to",
ifindex2ifname(
path->ifindex,
ospf->vrf_id));
json_object_string_add( json_object_string_add(
json_nexthop, json_nexthop,
"directlyAttachedTo", "directlyAttachedTo",
@ -10816,12 +10795,6 @@ static void show_ip_ospf_route_router(struct vty *vty, struct ospf *ospf,
json_object_string_add( json_object_string_add(
json_nexthop, json_nexthop,
"ip", " "); "ip", " ");
json_object_string_add(
json_nexthop,
"directly attached to",
ifindex2ifname(
path->ifindex,
ospf->vrf_id));
json_object_string_add( json_object_string_add(
json_nexthop, json_nexthop,
"directlyAttachedTo", "directlyAttachedTo",
@ -10948,12 +10921,6 @@ static void show_ip_ospf_route_external(struct vty *vty, struct ospf *ospf,
json_object_string_add( json_object_string_add(
json_nexthop, "ip", json_nexthop, "ip",
" "); " ");
json_object_string_add(
json_nexthop,
"directly attached to",
ifindex2ifname(
path->ifindex,
ospf->vrf_id));
json_object_string_add( json_object_string_add(
json_nexthop, json_nexthop,
"directlyAttachedTo", "directlyAttachedTo",
@ -11664,8 +11631,6 @@ static int ospf_show_summary_address(struct vty *vty, struct ospf *ospf,
vty_out(vty, "aggregation delay interval :%u(in seconds)\n\n", vty_out(vty, "aggregation delay interval :%u(in seconds)\n\n",
ospf->aggr_delay_interval); ospf->aggr_delay_interval);
} else { } else {
json_object_int_add(json_vrf, "aggregation delay interval",
ospf->aggr_delay_interval);
json_object_int_add(json_vrf, "aggregationDelayInterval", json_object_int_add(json_vrf, "aggregationDelayInterval",
ospf->aggr_delay_interval); ospf->aggr_delay_interval);
} }
@ -11684,37 +11649,17 @@ static int ospf_show_summary_address(struct vty *vty, struct ospf *ospf,
json_object_object_add(json_vrf, buf, json_object_object_add(json_vrf, buf,
json_aggr); json_aggr);
json_object_string_add(json_aggr,
"Summary address", buf);
json_object_string_add(json_aggr, json_object_string_add(json_aggr,
"summaryAddress", buf); "summaryAddress", buf);
json_object_string_add(
json_aggr, "Metric-type",
(mtype == EXTERNAL_METRIC_TYPE_1)
? "E1"
: "E2");
json_object_string_add( json_object_string_add(
json_aggr, "metricType", json_aggr, "metricType",
(mtype == EXTERNAL_METRIC_TYPE_1) (mtype == EXTERNAL_METRIC_TYPE_1)
? "E1" ? "E1"
: "E2"); : "E2");
#if CONFDATE > 20230131
CPP_NOTICE("Remove JSON object commands with keys starting with capital")
#endif
json_object_int_add(json_aggr, "Metric", mval);
json_object_int_add(json_aggr, "metric", mval); json_object_int_add(json_aggr, "metric", mval);
json_object_int_add(json_aggr, "Tag",
aggr->tag);
json_object_int_add(json_aggr, "tag", json_object_int_add(json_aggr, "tag",
aggr->tag); aggr->tag);
json_object_int_add(
json_aggr, "External route count",
OSPF_EXTERNAL_RT_COUNT(aggr));
json_object_int_add( json_object_int_add(
json_aggr, "externalRouteCount", json_aggr, "externalRouteCount",
OSPF_EXTERNAL_RT_COUNT(aggr)); OSPF_EXTERNAL_RT_COUNT(aggr));

View File

@ -1140,41 +1140,23 @@ void pim_show_state(struct pim_instance *pim, struct vty *vty,
json_ifp_in = json_object_new_object(); json_ifp_in = json_object_new_object();
json_object_object_add(json_source, in_ifname, json_object_object_add(json_source, in_ifname,
json_ifp_in); json_ifp_in);
json_object_int_add(json_source, "Installed",
c_oil->installed);
json_object_int_add(json_source, "installed", json_object_int_add(json_source, "installed",
c_oil->installed); c_oil->installed);
json_object_boolean_add(json_source, "isRpt", json_object_boolean_add(json_source, "isRpt",
isRpt); isRpt);
json_object_int_add(json_source, "RefCount",
c_oil->oil_ref_count);
json_object_int_add(json_source, "refCount", json_object_int_add(json_source, "refCount",
c_oil->oil_ref_count); c_oil->oil_ref_count);
json_object_int_add(json_source, "OilListSize",
c_oil->oil_size);
json_object_int_add(json_source, "oilListSize", json_object_int_add(json_source, "oilListSize",
c_oil->oil_size); c_oil->oil_size);
json_object_int_add(
json_source, "OilRescan",
c_oil->oil_inherited_rescan);
json_object_int_add( json_object_int_add(
json_source, "oilRescan", json_source, "oilRescan",
c_oil->oil_inherited_rescan); c_oil->oil_inherited_rescan);
json_object_int_add(json_source, "LastUsed",
c_oil->cc.lastused);
json_object_int_add(json_source, "lastUsed", json_object_int_add(json_source, "lastUsed",
c_oil->cc.lastused); c_oil->cc.lastused);
json_object_int_add(json_source, "PacketCount",
c_oil->cc.pktcnt);
json_object_int_add(json_source, "packetCount", json_object_int_add(json_source, "packetCount",
c_oil->cc.pktcnt); c_oil->cc.pktcnt);
json_object_int_add(json_source, "ByteCount",
c_oil->cc.bytecnt);
json_object_int_add(json_source, "byteCount", json_object_int_add(json_source, "byteCount",
c_oil->cc.bytecnt); c_oil->cc.bytecnt);
json_object_int_add(json_source,
"WrongInterface",
c_oil->cc.wrong_if);
json_object_int_add(json_source, json_object_int_add(json_source,
"wrongInterface", "wrongInterface",
c_oil->cc.wrong_if); c_oil->cc.wrong_if);
@ -1728,14 +1710,8 @@ static void pim_show_join_helper(struct pim_interface *pim_ifp,
json_object_string_add( json_object_string_add(
json_row, "channelJoinName", json_row, "channelJoinName",
pim_ifchannel_ifjoin_name(ch->ifjoin_state, ch->flags)); pim_ifchannel_ifjoin_name(ch->ifjoin_state, ch->flags));
if (PIM_IF_FLAG_TEST_S_G_RPT(ch->flags)) { if (PIM_IF_FLAG_TEST_S_G_RPT(ch->flags))
#if CONFDATE > 20230131
CPP_NOTICE(
"Remove JSON object commands with keys starting with capital")
#endif
json_object_int_add(json_row, "SGRpt", 1);
json_object_int_add(json_row, "sgRpt", 1); json_object_int_add(json_row, "sgRpt", 1);
}
if (PIM_IF_FLAG_TEST_PROTO_PIM(ch->flags)) if (PIM_IF_FLAG_TEST_PROTO_PIM(ch->flags))
json_object_int_add(json_row, "protocolPim", 1); json_object_int_add(json_row, "protocolPim", 1);
if (PIM_IF_FLAG_TEST_PROTO_IGMP(ch->flags)) if (PIM_IF_FLAG_TEST_PROTO_IGMP(ch->flags))
@ -3786,8 +3762,6 @@ void show_mroute(struct pim_instance *pim, struct vty *vty, pim_sgaddr *sg,
c_oil->oil_ref_count); c_oil->oil_ref_count);
json_object_int_add(json_source, "oilSize", json_object_int_add(json_source, "oilSize",
c_oil->oil_size); c_oil->oil_size);
json_object_int_add(json_source, "OilInheritedRescan",
c_oil->oil_inherited_rescan);
json_object_int_add(json_source, "oilInheritedRescan", json_object_int_add(json_source, "oilInheritedRescan",
c_oil->oil_inherited_rescan); c_oil->oil_inherited_rescan);
json_object_string_add(json_source, "iif", in_ifname); json_object_string_add(json_source, "iif", in_ifname);

View File

@ -1,8 +1,8 @@
{ {
"Ledger":506, "ledger":506,
"InUse":506, "inUse":506,
"Requests":0, "requests":0,
"LabelChunks":3, "labelChunks":3,
"Pending":0, "pending":0,
"Reconnects":0 "reconnects":0
} }

View File

@ -1,8 +1,8 @@
{ {
"Ledger":0, "ledger":0,
"InUse":0, "inUse":0,
"Requests":0, "requests":0,
"LabelChunks":0, "labelChunks":0,
"Pending":0, "pending":0,
"Reconnects":0 "reconnects":0
} }

View File

@ -1,8 +1,8 @@
{ {
"Ledger":51, "ledger":51,
"InUse":51, "inUse":51,
"Requests":0, "requests":0,
"LabelChunks":1, "labelChunks":1,
"Pending":0, "pending":0,
"Reconnects":0 "reconnects":0
} }

View File

@ -1,8 +1,8 @@
{ {
"Ledger":1, "ledger":1,
"InUse":1, "inUse":1,
"Requests":0, "requests":0,
"LabelChunks":1, "labelChunks":1,
"Pending":0, "pending":0,
"Reconnects":0 "reconnects":0
} }

View File

@ -2,7 +2,7 @@
"r1-mpw0":{ "r1-mpw0":{
"peerId":"2.2.2.2", "peerId":"2.2.2.2",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -2,7 +2,7 @@
"r2-mpw0":{ "r2-mpw0":{
"peerId":"1.1.1.1", "peerId":"1.1.1.1",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -2,7 +2,7 @@
"r1-mpw0":{ "r1-mpw0":{
"peerId":"2.2.2.2", "peerId":"2.2.2.2",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -2,7 +2,7 @@
"r2-mpw0":{ "r2-mpw0":{
"peerId":"1.1.1.1", "peerId":"1.1.1.1",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -2,7 +2,7 @@
"r1-mpw0":{ "r1-mpw0":{
"peerId":"2.2.2.2", "peerId":"2.2.2.2",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -2,7 +2,7 @@
"r2-mpw0":{ "r2-mpw0":{
"peerId":"1.1.1.1", "peerId":"1.1.1.1",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -2,7 +2,7 @@
"r1-mpw0":{ "r1-mpw0":{
"peerId":"2.2.2.2", "peerId":"2.2.2.2",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -2,7 +2,7 @@
"r2-mpw0":{ "r2-mpw0":{
"peerId":"1.1.1.1", "peerId":"1.1.1.1",
"vcId":100, "vcId":100,
"VpnName":"CUST_A", "vpnName":"CUST_A",
"status":"up" "status":"up"
} }
} }

View File

@ -4277,7 +4277,7 @@ def verify_attributes_for_evpn_routes(
for _rd, route_data in evpn_rd_value_json.items(): for _rd, route_data in evpn_rd_value_json.items():
if route_data["ip"] == route: if route_data["ip"] == route:
for rt_data in route_data["paths"]: for rt_data in route_data["paths"]:
if vni_dict[vrf] == rt_data["VNI"]: if vni_dict[vrf] == rt_data["vni"]:
rt_string = rt_data["extendedCommunity"][ rt_string = rt_data["extendedCommunity"][
"string" "string"
] ]

View File

@ -1533,11 +1533,11 @@ def verify_ospf_summary(tgen, topo, dut, input_dict, ospf=None, expected=True):
----- -----
input_dict = { input_dict = {
"11.0.0.0/8": { "11.0.0.0/8": {
"Summary address": "11.0.0.0/8", "summaryAddress": "11.0.0.0/8",
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5 "externalRouteCount": 5
} }
} }
result = verify_ospf_summary(tgen, topo, dut, input_dict) result = verify_ospf_summary(tgen, topo, dut, input_dict)
@ -1586,7 +1586,7 @@ def verify_ospf_summary(tgen, topo, dut, input_dict, ospf=None, expected=True):
for ospf_summ, summ_data in ospf_summary_data.items(): for ospf_summ, summ_data in ospf_summary_data.items():
if ospf_summ not in show_ospf_json: if ospf_summ not in show_ospf_json:
continue continue
summary = ospf_summary_data[ospf_summ]["Summary address"] summary = ospf_summary_data[ospf_summ]["summaryAddress"]
if summary in show_ospf_json: if summary in show_ospf_json:
for summ in summ_data: for summ in summ_data:

View File

@ -1827,12 +1827,12 @@ def verify_pim_state(
else: else:
pim_state_json = show_pim_state_json[grp_addr][src_address] pim_state_json = show_pim_state_json[grp_addr][src_address]
if pim_state_json["Installed"] == installed_fl: if pim_state_json["installed"] == installed_fl:
logger.info( logger.info(
"[DUT %s]: group %s is installed flag: %s", "[DUT %s]: group %s is installed flag: %s",
dut, dut,
grp_addr, grp_addr,
pim_state_json["Installed"], pim_state_json["installed"],
) )
for interface, data in pim_state_json[iif].items(): for interface, data in pim_state_json[iif].items():
if interface != oil: if interface != oil:

View File

@ -308,11 +308,11 @@ def test_ospf_type5_summary_tc43_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -336,11 +336,11 @@ def test_ospf_type5_summary_tc43_p0(request):
input_dict = { input_dict = {
"11.0.0.0/16": { "11.0.0.0/16": {
"Summary address": "11.0.0.0/16", "summaryAddress": "11.0.0.0/16",
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -380,11 +380,11 @@ def test_ospf_type5_summary_tc43_p0(request):
input_dict = { input_dict = {
"11.0.0.0/16": { "11.0.0.0/16": {
"Summary address": "11.0.0.0/24", "summaryAddress": "11.0.0.0/24",
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 0, "externalRouteCount": 0,
} }
} }
dut = "r0" dut = "r0"
@ -556,11 +556,11 @@ def test_ospf_type5_summary_tc48_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -652,11 +652,11 @@ def test_ospf_type5_summary_tc48_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -749,11 +749,11 @@ def test_ospf_type5_summary_tc42_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -820,11 +820,11 @@ def test_ospf_type5_summary_tc42_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -859,11 +859,11 @@ def test_ospf_type5_summary_tc42_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -942,11 +942,11 @@ def test_ospf_type5_summary_tc42_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1078,11 +1078,11 @@ def test_ospf_type5_summary_tc42_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1242,11 +1242,11 @@ def test_ospf_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 1234, "tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1294,11 +1294,11 @@ def test_ospf_type5_summary_tc45_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 1234, "tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1335,11 +1335,11 @@ def test_ospf_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 1, "tag": 1,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1384,11 +1384,11 @@ def test_ospf_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 4294967295, "tag": 4294967295,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1441,11 +1441,11 @@ def test_ospf_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 88888, "tag": 88888,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1673,11 +1673,11 @@ def test_ospf_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 1234, "tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1722,11 +1722,11 @@ def test_ospf_type5_summary_tc45_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 1234, "tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1763,11 +1763,11 @@ def test_ospf_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 1, "tag": 1,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1812,11 +1812,11 @@ def test_ospf_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 4294967295, "tag": 4294967295,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1869,11 +1869,11 @@ def test_ospf_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 88888, "tag": 88888,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2060,8 +2060,8 @@ def test_ospf_type5_summary_tc46_p0(request):
step("Verify that show ip ospf summary should show the " "configured summaries.") step("Verify that show ip ospf summary should show the " "configured summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2111,11 +2111,11 @@ def test_ospf_type5_summary_tc46_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 1234, "tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2167,8 +2167,8 @@ def test_ospf_type5_summary_tc46_p0(request):
step("Verify that show ip ospf summary should show the " "configured summaries.") step("Verify that show ip ospf summary should show the " "configured summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2229,11 +2229,11 @@ def test_ospf_type5_summary_tc46_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2343,11 +2343,11 @@ def test_ospf_type5_summary_tc47_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2440,11 +2440,11 @@ def test_ospf_type5_summary_tc47_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2528,11 +2528,11 @@ def test_ospf_type5_summary_tc47_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2623,11 +2623,11 @@ def test_ospf_type5_summary_tc47_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2791,11 +2791,11 @@ def test_ospf_type5_summary_tc47_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
"12.0.0.0/8": { "12.0.0.0/8": {
"Summary address": "12.0.0.0/8", "summaryAddress": "12.0.0.0/8",
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2997,11 +2997,11 @@ def test_ospf_type5_summary_tc51_p2(request):
input_dict = { input_dict = {
SUMMARY["ipv4"][2]: { SUMMARY["ipv4"][2]: {
"Summary address": SUMMARY["ipv4"][2], "summaryAddress": SUMMARY["ipv4"][2],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 0, "externalRouteCount": 0,
} }
} }
dut = "r0" dut = "r0"
@ -3092,11 +3092,11 @@ def test_ospf_type5_summary_tc49_p2(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -3148,11 +3148,11 @@ def test_ospf_type5_summary_tc49_p2(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -3212,11 +3212,11 @@ def test_ospf_type5_summary_tc49_p2(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -3269,11 +3269,11 @@ def test_ospf_type5_summary_tc49_p2(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][0]: { SUMMARY["ipv4"][0]: {
"Summary address": SUMMARY["ipv4"][0], "summaryAddress": SUMMARY["ipv4"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"

View File

@ -290,11 +290,11 @@ def test_ospf_type5_summary_tc44_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv4"][3]: { SUMMARY["ipv4"][3]: {
"Summary address": SUMMARY["ipv4"][3], "summaryAddress": SUMMARY["ipv4"][3],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -342,11 +342,11 @@ def test_ospf_type5_summary_tc44_p0(request):
step("Verify that type7 LSAs received from neighbor are not summarised.") step("Verify that type7 LSAs received from neighbor are not summarised.")
input_dict = { input_dict = {
"13.0.0.0/8": { "13.0.0.0/8": {
"Summary address": "13.0.0.0/8", "summaryAddress": "13.0.0.0/8",
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 0, "externalRouteCount": 0,
} }
} }
dut = "r0" dut = "r0"
@ -358,11 +358,11 @@ def test_ospf_type5_summary_tc44_p0(request):
step("Verify that already originated summary is intact.") step("Verify that already originated summary is intact.")
input_dict = { input_dict = {
SUMMARY["ipv4"][3]: { SUMMARY["ipv4"][3]: {
"Summary address": SUMMARY["ipv4"][3], "summaryAddress": SUMMARY["ipv4"][3],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "metric": 20,
"Tag": 0, "tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"

View File

@ -6,7 +6,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"lo" "directlyAttachedTo":"lo"
} }
] ]
}, },
@ -83,7 +83,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt2" "directlyAttachedTo":"eth-rt2"
} }
] ]
}, },

View File

@ -17,7 +17,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"lo" "directlyAttachedTo":"lo"
} }
] ]
}, },
@ -83,7 +83,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt1" "directlyAttachedTo":"eth-rt1"
} }
] ]
}, },
@ -94,7 +94,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt3" "directlyAttachedTo":"eth-rt3"
} }
] ]
}, },

View File

@ -28,7 +28,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"lo" "directlyAttachedTo":"lo"
} }
] ]
}, },
@ -94,7 +94,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt2" "directlyAttachedTo":"eth-rt2"
} }
] ]
}, },
@ -105,7 +105,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt4" "directlyAttachedTo":"eth-rt4"
} }
] ]
}, },
@ -116,7 +116,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt6" "directlyAttachedTo":"eth-rt6"
} }
] ]
}, },

View File

@ -39,7 +39,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"lo" "directlyAttachedTo":"lo"
} }
] ]
}, },
@ -105,7 +105,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt3" "directlyAttachedTo":"eth-rt3"
} }
] ]
}, },
@ -127,7 +127,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt5" "directlyAttachedTo":"eth-rt5"
} }
] ]
}, },

View File

@ -50,7 +50,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"lo" "directlyAttachedTo":"lo"
} }
] ]
}, },
@ -127,7 +127,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt4" "directlyAttachedTo":"eth-rt4"
} }
] ]
}, },

View File

@ -61,7 +61,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"lo" "directlyAttachedTo":"lo"
} }
] ]
}, },
@ -116,7 +116,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt3" "directlyAttachedTo":"eth-rt3"
} }
] ]
}, },
@ -138,7 +138,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt7" "directlyAttachedTo":"eth-rt7"
} }
] ]
}, },

View File

@ -83,7 +83,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"lo" "directlyAttachedTo":"lo"
} }
] ]
}, },
@ -149,7 +149,7 @@
"nexthops":[ "nexthops":[
{ {
"ip":" ", "ip":" ",
"directly attached to":"eth-rt6" "directlyAttachedTo":"eth-rt6"
} }
] ]
}, },

View File

@ -1 +1 @@
{ "10.0.1.1\/32": { "routeType": "N", "cost": 10, "area": "0.0.0.0", "nexthops": [ { "ip": " ", "directly attached to": "r1-eth0" } ] }, "10.0.20.1\/32": { "routeType": "N", "cost": 20, "area": "0.0.0.0", "nexthops": [ { "ip": "10.0.3.2", "via": "r1-eth1" } ] }, "10.0.255.2": { "routeType": "R ", "cost": 10, "area": "0.0.0.0", "routerType": "asbr", "nexthops": [ { "ip": "10.0.3.2", "via": "r1-eth1" } ] } } { "10.0.1.1\/32": { "routeType": "N", "cost": 10, "area": "0.0.0.0", "nexthops": [ { "ip": " ", "directlyAttachedTo": "r1-eth0" } ] }, "10.0.20.1\/32": { "routeType": "N", "cost": 20, "area": "0.0.0.0", "nexthops": [ { "ip": "10.0.3.2", "via": "r1-eth1" } ] }, "10.0.255.2": { "routeType": "R ", "cost": 10, "area": "0.0.0.0", "routerType": "asbr", "nexthops": [ { "ip": "10.0.3.2", "via": "r1-eth1" } ] } }

View File

@ -1 +1 @@
{ "10.0.1.1\/32": { "routeType": "N", "cost": 20, "area": "0.0.0.0", "nexthops": [ { "ip": "10.0.3.4", "via": "r2-eth1" } ] }, "10.0.20.1\/32": { "routeType": "N", "cost": 10, "area": "0.0.0.0", "nexthops": [ { "ip": " ", "directly attached to": "r2-eth0" } ] }, "10.0.255.1": { "routeType": "R ", "cost": 10, "area": "0.0.0.0", "routerType": "asbr", "nexthops": [ { "ip": "10.0.3.4", "via": "r2-eth1" } ] } } { "10.0.1.1\/32": { "routeType": "N", "cost": 20, "area": "0.0.0.0", "nexthops": [ { "ip": "10.0.3.4", "via": "r2-eth1" } ] }, "10.0.20.1\/32": { "routeType": "N", "cost": 10, "area": "0.0.0.0", "nexthops": [ { "ip": " ", "directlyAttachedTo": "r2-eth0" } ] }, "10.0.255.1": { "routeType": "R ", "cost": 10, "area": "0.0.0.0", "routerType": "asbr", "nexthops": [ { "ip": "10.0.3.4", "via": "r2-eth1" } ] } }

View File

@ -332,11 +332,11 @@ def test_ospfv3_type5_summary_tc42_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -403,11 +403,11 @@ def test_ospfv3_type5_summary_tc42_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -444,11 +444,11 @@ def test_ospfv3_type5_summary_tc42_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -527,11 +527,11 @@ def test_ospfv3_type5_summary_tc42_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -665,11 +665,11 @@ def test_ospfv3_type5_summary_tc42_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -822,11 +822,11 @@ def test_ospfv3_type5_summary_tc43_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -857,11 +857,11 @@ def test_ospfv3_type5_summary_tc43_p0(request):
input_dict = { input_dict = {
"2011::/16": { "2011::/16": {
"Summary address": "2011::/16", "summaryAddress": "2011::/16",
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -901,11 +901,11 @@ def test_ospfv3_type5_summary_tc43_p0(request):
input_dict = { input_dict = {
"2011::/32": { "2011::/32": {
"Summary address": "2011::/32", "summaryAddress": "2011::/32",
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 0, "externalRouteCount": 0,
} }
} }
dut = "r0" dut = "r0"
@ -1084,11 +1084,11 @@ def ospfv3_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 1234, "Tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1136,11 +1136,11 @@ def ospfv3_type5_summary_tc45_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 1234, "Tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1179,11 +1179,11 @@ def ospfv3_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 1, "Tag": 1,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1228,11 +1228,11 @@ def ospfv3_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 4294967295, "Tag": 4294967295,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1287,11 +1287,11 @@ def ospfv3_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 88888, "Tag": 88888,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1521,11 +1521,11 @@ def ospfv3_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 1234, "Tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1570,11 +1570,11 @@ def ospfv3_type5_summary_tc45_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 1234, "Tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1613,11 +1613,11 @@ def ospfv3_type5_summary_tc45_p0(request):
step("Verify that show ip ospf summary should show the summaries with tag.") step("Verify that show ip ospf summary should show the summaries with tag.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 1, "Tag": 1,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1662,11 +1662,11 @@ def ospfv3_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 4294967295, "Tag": 4294967295,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1721,11 +1721,11 @@ def ospfv3_type5_summary_tc45_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 88888, "Tag": 88888,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1914,8 +1914,8 @@ def test_ospfv3_type5_summary_tc46_p0(request):
step("Verify that show ip ospf summary should show the " "configured summaries.") step("Verify that show ip ospf summary should show the " "configured summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -1965,11 +1965,11 @@ def test_ospfv3_type5_summary_tc46_p0(request):
step("show ip ospf summary should not have any summary address.") step("show ip ospf summary should not have any summary address.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 1234, "Tag": 1234,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2023,8 +2023,8 @@ def test_ospfv3_type5_summary_tc46_p0(request):
step("Verify that show ip ospf summary should show the " "configured summaries.") step("Verify that show ip ospf summary should show the " "configured summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2085,11 +2085,11 @@ def test_ospfv3_type5_summary_tc46_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2207,11 +2207,11 @@ def test_ospfv3_type5_summary_tc48_p0(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2304,11 +2304,11 @@ def test_ospfv3_type5_summary_tc48_p0(request):
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2341,11 +2341,11 @@ def test_ospfv3_type5_summary_tc48_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2378,11 +2378,11 @@ def test_ospfv3_type5_summary_tc48_p0(request):
) )
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2558,11 +2558,11 @@ def test_ospfv3_type5_summary_tc51_p2(request):
input_dict = { input_dict = {
SUMMARY["ipv6"][3]: { SUMMARY["ipv6"][3]: {
"Summary address": SUMMARY["ipv6"][3], "summaryAddress": SUMMARY["ipv6"][3],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 0, "externalRouteCount": 0,
} }
} }
dut = "r0" dut = "r0"
@ -2653,11 +2653,11 @@ def test_ospfv3_type5_summary_tc49_p2(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"
@ -2709,11 +2709,11 @@ def test_ospfv3_type5_summary_tc49_p2(request):
step("Verify that show ip ospf summary should show the summaries.") step("Verify that show ip ospf summary should show the summaries.")
input_dict = { input_dict = {
SUMMARY["ipv6"][0]: { SUMMARY["ipv6"][0]: {
"Summary address": SUMMARY["ipv6"][0], "summaryAddress": SUMMARY["ipv6"][0],
"Metric-type": "E2", "metricType": "E2",
"Metric": 20, "Metric": 20,
"Tag": 0, "Tag": 0,
"External route count": 5, "externalRouteCount": 5,
} }
} }
dut = "r0" dut = "r0"