Search in sources :

Example 6 with MatchIpv6Destination

use of org.opendaylight.genius.mdsalutil.matches.MatchIpv6Destination in project netvirt by opendaylight.

the class AclServiceUtils method buildIpAndDstServiceMatch.

public static List<? extends MatchInfoBase> buildIpAndDstServiceMatch(Integer aclTag, AllowedAddressPairs aap) {
    List<MatchInfoBase> flowMatches = new ArrayList<>();
    flowMatches.add(buildRemoteAclTagMetadataMatch(aclTag));
    if (aap.getIpAddress().getIpAddress() != null) {
        if (aap.getIpAddress().getIpAddress().getIpv4Address() != null) {
            MatchEthernetType ipv4EthMatch = new MatchEthernetType(NwConstants.ETHTYPE_IPV4);
            flowMatches.add(ipv4EthMatch);
            MatchIpv4Destination dstMatch = new MatchIpv4Destination(new Ipv4Prefix(aap.getIpAddress().getIpAddress().getIpv4Address().getValue() + "/32"));
            flowMatches.add(dstMatch);
        } else if (aap.getIpAddress().getIpAddress().getIpv6Address() != null) {
            MatchEthernetType ipv6EthMatch = new MatchEthernetType(NwConstants.ETHTYPE_IPV6);
            flowMatches.add(ipv6EthMatch);
            MatchIpv6Destination dstMatch = new MatchIpv6Destination(new Ipv6Prefix(aap.getIpAddress().getIpAddress().getIpv6Address().getValue() + "/128"));
            flowMatches.add(dstMatch);
        }
    } else if (aap.getIpAddress().getIpPrefix() != null) {
        if (aap.getIpAddress().getIpPrefix().getIpv4Prefix() != null) {
            MatchEthernetType ipv4EthMatch = new MatchEthernetType(NwConstants.ETHTYPE_IPV4);
            flowMatches.add(ipv4EthMatch);
            MatchIpv4Destination dstMatch = new MatchIpv4Destination(aap.getIpAddress().getIpPrefix().getIpv4Prefix());
            flowMatches.add(dstMatch);
        } else if (aap.getIpAddress().getIpPrefix().getIpv6Prefix() != null) {
            MatchEthernetType ipv6EthMatch = new MatchEthernetType(NwConstants.ETHTYPE_IPV6);
            flowMatches.add(ipv6EthMatch);
            MatchIpv6Destination dstMatch = new MatchIpv6Destination(aap.getIpAddress().getIpPrefix().getIpv6Prefix());
            flowMatches.add(dstMatch);
        }
    }
    return flowMatches;
}
Also used : MatchIpv6Destination(org.opendaylight.genius.mdsalutil.matches.MatchIpv6Destination) ArrayList(java.util.ArrayList) MatchIpv4Destination(org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination) Ipv4Prefix(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix) MatchInfoBase(org.opendaylight.genius.mdsalutil.MatchInfoBase) MatchEthernetType(org.opendaylight.genius.mdsalutil.matches.MatchEthernetType) Ipv6Prefix(org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix)

Aggregations

ArrayList (java.util.ArrayList)6 MatchIpv6Destination (org.opendaylight.genius.mdsalutil.matches.MatchIpv6Destination)6 MatchIpv4Destination (org.opendaylight.genius.mdsalutil.matches.MatchIpv4Destination)5 MatchInfoBase (org.opendaylight.genius.mdsalutil.MatchInfoBase)4 Ipv4Prefix (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Prefix)3 Ipv6Prefix (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Prefix)3 FlowEntity (org.opendaylight.genius.mdsalutil.FlowEntity)2 MatchInfo (org.opendaylight.genius.mdsalutil.MatchInfo)2 MatchIpv4Source (org.opendaylight.genius.mdsalutil.matches.MatchIpv4Source)2 MatchIpv6Source (org.opendaylight.genius.mdsalutil.matches.MatchIpv6Source)2 MatchMetadata (org.opendaylight.genius.mdsalutil.matches.MatchMetadata)2 IpAddress (org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddress)2 Inet4Address (java.net.Inet4Address)1 InetAddress (java.net.InetAddress)1 UnknownHostException (java.net.UnknownHostException)1 ActionInfo (org.opendaylight.genius.mdsalutil.ActionInfo)1 InstructionInfo (org.opendaylight.genius.mdsalutil.InstructionInfo)1 ActionMoveSourceDestinationEth (org.opendaylight.genius.mdsalutil.actions.ActionMoveSourceDestinationEth)1 ActionMoveSourceDestinationIpv6 (org.opendaylight.genius.mdsalutil.actions.ActionMoveSourceDestinationIpv6)1 ActionNxLoadInPort (org.opendaylight.genius.mdsalutil.actions.ActionNxLoadInPort)1