Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding support for ClusterList and Originator Id to VI Question #5857

Merged
merged 11 commits into from
Jun 6, 2020
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ public class RoutesAnswerer extends Answerer {
static final String COL_COMMUNITIES = "Communities";
static final String COL_ORIGIN_PROTOCOL = "Origin_Protocol";
static final String COL_ORIGIN_TYPE = "Origin_Type";
static final String COL_CLUSTER_LIST = "Cluster_List";
static final String COL_ORIGINATOR_ID = "Originator_Id";

// EVPN BGP only
static final String COL_ROUTE_DISTINGUISHER = "Route_Distinguisher";
Expand Down Expand Up @@ -230,6 +232,20 @@ static TableMetadata getTableMetadata(RibProtocol rib) {
Schema.STRING,
"Route's Origin type",
Boolean.FALSE,
Boolean.TRUE))
.add(
new ColumnMetadata(
COL_ORIGINATOR_ID,
Schema.STRING,
"Route's Originator ID",
Boolean.FALSE,
Boolean.TRUE))
.add(
new ColumnMetadata(
COL_CLUSTER_LIST,
Schema.list(Schema.LONG),
"Route's Cluster List",
Boolean.FALSE,
Boolean.TRUE));
break;
case BGP:
Expand Down Expand Up @@ -280,6 +296,20 @@ static TableMetadata getTableMetadata(RibProtocol rib) {
Schema.STRING,
"Route's Origin type",
Boolean.FALSE,
Boolean.TRUE))
.add(
new ColumnMetadata(
COL_ORIGINATOR_ID,
Schema.STRING,
"Route's Originator ID",
Boolean.FALSE,
Boolean.TRUE))
.add(
new ColumnMetadata(
COL_CLUSTER_LIST,
Schema.list(Schema.LONG),
"Route's Cluster List",
Boolean.FALSE,
Boolean.TRUE));
break;
case MAIN:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import static org.batfish.datamodel.table.TableDiff.COL_DELTA_PREFIX;
import static org.batfish.question.routes.RoutesAnswerer.COL_ADMIN_DISTANCE;
import static org.batfish.question.routes.RoutesAnswerer.COL_AS_PATH;
import static org.batfish.question.routes.RoutesAnswerer.COL_CLUSTER_LIST;
import static org.batfish.question.routes.RoutesAnswerer.COL_COMMUNITIES;
import static org.batfish.question.routes.RoutesAnswerer.COL_LOCAL_PREF;
import static org.batfish.question.routes.RoutesAnswerer.COL_METRIC;
Expand All @@ -13,6 +14,7 @@
import static org.batfish.question.routes.RoutesAnswerer.COL_NEXT_HOP_INTERFACE;
import static org.batfish.question.routes.RoutesAnswerer.COL_NEXT_HOP_IP;
import static org.batfish.question.routes.RoutesAnswerer.COL_NODE;
import static org.batfish.question.routes.RoutesAnswerer.COL_ORIGINATOR_ID;
import static org.batfish.question.routes.RoutesAnswerer.COL_ORIGIN_PROTOCOL;
import static org.batfish.question.routes.RoutesAnswerer.COL_ORIGIN_TYPE;
import static org.batfish.question.routes.RoutesAnswerer.COL_PROTOCOL;
Expand Down Expand Up @@ -319,6 +321,10 @@ static Row bgpRouteToRow(
.collect(toImmutableList()))
.put(COL_ORIGIN_PROTOCOL, bgpv4Route.getSrcProtocol())
.put(COL_ORIGIN_TYPE, bgpv4Route.getOriginType())
.put(COL_ORIGINATOR_ID, bgpv4Route.getOriginatorIp())
.put(
COL_CLUSTER_LIST,
bgpv4Route.getClusterList().isEmpty() ? null : bgpv4Route.getClusterList())
.put(COL_TAG, bgpv4Route.getTag() == Route.UNSET_ROUTE_TAG ? null : bgpv4Route.getTag())
.build();
}
Expand Down Expand Up @@ -346,6 +352,10 @@ static Row evpnRouteToRow(
evpnRoute.getCommunities().stream().map(Community::toString).collect(toImmutableList()))
.put(COL_ORIGIN_PROTOCOL, evpnRoute.getSrcProtocol())
.put(COL_ORIGIN_TYPE, evpnRoute.getOriginType())
.put(COL_ORIGINATOR_ID, evpnRoute.getOriginatorIp())
.put(
COL_CLUSTER_LIST,
evpnRoute.getClusterList().isEmpty() ? null : evpnRoute.getClusterList())
.put(COL_TAG, evpnRoute.getTag() == Route.UNSET_ROUTE_TAG ? null : evpnRoute.getTag())
.put(COL_ROUTE_DISTINGUISHER, evpnRoute.getRouteDistinguisher())
.build();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import static org.batfish.datamodel.table.TableDiff.COL_BASE_PREFIX;
import static org.batfish.question.routes.RoutesAnswerer.COL_ADMIN_DISTANCE;
import static org.batfish.question.routes.RoutesAnswerer.COL_AS_PATH;
import static org.batfish.question.routes.RoutesAnswerer.COL_CLUSTER_LIST;
import static org.batfish.question.routes.RoutesAnswerer.COL_COMMUNITIES;
import static org.batfish.question.routes.RoutesAnswerer.COL_LOCAL_PREF;
import static org.batfish.question.routes.RoutesAnswerer.COL_METRIC;
Expand All @@ -12,6 +13,7 @@
import static org.batfish.question.routes.RoutesAnswerer.COL_NEXT_HOP_INTERFACE;
import static org.batfish.question.routes.RoutesAnswerer.COL_NEXT_HOP_IP;
import static org.batfish.question.routes.RoutesAnswerer.COL_NODE;
import static org.batfish.question.routes.RoutesAnswerer.COL_ORIGINATOR_ID;
import static org.batfish.question.routes.RoutesAnswerer.COL_ORIGIN_PROTOCOL;
import static org.batfish.question.routes.RoutesAnswerer.COL_PROTOCOL;
import static org.batfish.question.routes.RoutesAnswerer.COL_ROUTE_DISTINGUISHER;
Expand Down Expand Up @@ -251,7 +253,10 @@ public void testBgpRibRouteColumnsValue() {
hasColumn(COL_LOCAL_PREF, 0L, Schema.LONG),
hasColumn(COL_COMMUNITIES, ImmutableList.of("1:1"), Schema.list(Schema.STRING)),
hasColumn(COL_ORIGIN_PROTOCOL, nullValue(), Schema.STRING),
hasColumn(COL_TAG, nullValue(), Schema.INTEGER));
hasColumn(COL_TAG, nullValue(), Schema.INTEGER),
hasColumn(COL_ORIGINATOR_ID, Ip.parse("1.1.1.2"), Schema.IP),
hasColumn(COL_CLUSTER_LIST, nullValue(), Schema.list(Schema.LONG))
);

assertThat(
rows,
Expand Down