Search in sources :

Example 1 with PrefixList

use of org.batfish.representation.cisco.PrefixList in project batfish by batfish.

the class CiscoControlPlaneExtractor method enterIp_prefix_list_stanza.

@Override
public void enterIp_prefix_list_stanza(Ip_prefix_list_stanzaContext ctx) {
    String name = ctx.name.getText();
    int definitionLine = ctx.name.getStart().getLine();
    PrefixList list = _configuration.getPrefixLists().computeIfAbsent(name, n -> new PrefixList(n, definitionLine));
    _currentPrefixList = list;
}
Also used : PrefixList(org.batfish.representation.cisco.PrefixList)

Example 2 with PrefixList

use of org.batfish.representation.cisco.PrefixList in project batfish by batfish.

the class CiscoControlPlaneExtractor method exitPrefix_set_elem.

@Override
public void exitPrefix_set_elem(Prefix_set_elemContext ctx) {
    String name = _currentPrefixSetName;
    if (name != null) {
        if (ctx.ipa != null || ctx.prefix != null) {
            PrefixList pl = _configuration.getPrefixLists().computeIfAbsent(name, n -> new PrefixList(n, _currentPrefixSetDefinitionLine));
            Prefix prefix;
            if (ctx.ipa != null) {
                prefix = new Prefix(toIp(ctx.ipa), Prefix.MAX_PREFIX_LENGTH);
            } else {
                prefix = Prefix.parse(ctx.prefix.getText());
            }
            int prefixLength = prefix.getPrefixLength();
            int minLen = prefixLength;
            int maxLen = prefixLength;
            if (ctx.minpl != null) {
                minLen = toInteger(ctx.minpl);
                maxLen = Prefix.MAX_PREFIX_LENGTH;
            }
            if (ctx.maxpl != null) {
                maxLen = toInteger(ctx.maxpl);
            }
            if (ctx.eqpl != null) {
                minLen = toInteger(ctx.eqpl);
                maxLen = toInteger(ctx.eqpl);
            }
            SubRange lengthRange = new SubRange(minLen, maxLen);
            PrefixListLine line = new PrefixListLine(LineAction.ACCEPT, prefix, lengthRange);
            pl.addLine(line);
        } else {
            Prefix6List pl = _configuration.getPrefix6Lists().computeIfAbsent(name, n -> new Prefix6List(n, _currentPrefixSetDefinitionLine));
            Prefix6 prefix6;
            if (ctx.ipv6a != null) {
                prefix6 = new Prefix6(toIp6(ctx.ipv6a), Prefix6.MAX_PREFIX_LENGTH);
            } else {
                prefix6 = new Prefix6(ctx.ipv6_prefix.getText());
            }
            int prefixLength = prefix6.getPrefixLength();
            int minLen = prefixLength;
            int maxLen = prefixLength;
            if (ctx.minpl != null) {
                minLen = toInteger(ctx.minpl);
                maxLen = Prefix6.MAX_PREFIX_LENGTH;
            }
            if (ctx.maxpl != null) {
                maxLen = toInteger(ctx.maxpl);
            }
            if (ctx.eqpl != null) {
                minLen = toInteger(ctx.eqpl);
                maxLen = toInteger(ctx.eqpl);
            }
            SubRange lengthRange = new SubRange(minLen, maxLen);
            Prefix6ListLine line = new Prefix6ListLine(LineAction.ACCEPT, prefix6, lengthRange);
            pl.addLine(line);
        }
    }
}
Also used : Prefix6ListLine(org.batfish.representation.cisco.Prefix6ListLine) Prefix6List(org.batfish.representation.cisco.Prefix6List) PrefixListLine(org.batfish.representation.cisco.PrefixListLine) RouteMapMatchIpPrefixListLine(org.batfish.representation.cisco.RouteMapMatchIpPrefixListLine) RouteMapMatchIpv6PrefixListLine(org.batfish.representation.cisco.RouteMapMatchIpv6PrefixListLine) PrefixList(org.batfish.representation.cisco.PrefixList) Prefix(org.batfish.datamodel.Prefix) SubRange(org.batfish.datamodel.SubRange) Prefix6(org.batfish.datamodel.Prefix6)

Aggregations

PrefixList (org.batfish.representation.cisco.PrefixList)2 Prefix (org.batfish.datamodel.Prefix)1 Prefix6 (org.batfish.datamodel.Prefix6)1 SubRange (org.batfish.datamodel.SubRange)1 Prefix6List (org.batfish.representation.cisco.Prefix6List)1 Prefix6ListLine (org.batfish.representation.cisco.Prefix6ListLine)1 PrefixListLine (org.batfish.representation.cisco.PrefixListLine)1 RouteMapMatchIpPrefixListLine (org.batfish.representation.cisco.RouteMapMatchIpPrefixListLine)1 RouteMapMatchIpv6PrefixListLine (org.batfish.representation.cisco.RouteMapMatchIpv6PrefixListLine)1