Skip to content

Commit

Permalink
Adding support for ClusterList and OriginatorId to routes Question (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
kylehoferamzn committed Jun 6, 2020
1 parent 7b41cf9 commit 5067a2a
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 1 deletion.
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 @@ -7,6 +7,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 @@ -15,6 +16,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 @@ -268,6 +270,8 @@ public void testGetTableMetadataBGP() {
COL_COMMUNITIES,
COL_ORIGIN_PROTOCOL,
COL_ORIGIN_TYPE,
COL_ORIGINATOR_ID,
COL_CLUSTER_LIST,
COL_TAG);

List<ColumnMetadata> columnMetadata = getTableMetadata(RibProtocol.BGP).getColumnMetadata();
Expand Down Expand Up @@ -296,6 +300,8 @@ public void testGetTableMetadataEvpn() {
COL_COMMUNITIES,
COL_ORIGIN_PROTOCOL,
COL_ORIGIN_TYPE,
COL_ORIGINATOR_ID,
COL_CLUSTER_LIST,
COL_TAG);

List<ColumnMetadata> columnMetadata = getTableMetadata(RibProtocol.EVPN).getColumnMetadata();
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,9 @@ 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

0 comments on commit 5067a2a

Please sign in to comment.