2 * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.
\r
4 * This program and the accompanying materials are made available under the
\r
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
\r
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
\r
9 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match;
\r
11 import java.math.BigInteger;
\r
12 import java.util.ArrayList;
\r
13 import java.util.List;
\r
14 import java.util.Optional;
\r
15 import org.junit.Assert;
\r
16 import org.junit.Before;
\r
17 import org.junit.Test;
\r
18 import org.opendaylight.openflowplugin.api.OFConstants;
\r
19 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorManager;
\r
20 import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData;
\r
21 import org.opendaylight.openflowplugin.openflow.md.util.OpenflowPortsUtil;
\r
22 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Dscp;
\r
23 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
\r
24 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6Address;
\r
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv6FlowLabel;
\r
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev130715.MacAddress;
\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.ArpMatch;
\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4Match;
\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv4MatchArbitraryBitMask;
\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6Match;
\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._3.match.Ipv6MatchArbitraryBitMask;
\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.SctpMatch;
\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.TcpMatch;
\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.match.layer._4.match.UdpMatch;
\r
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.EtherType;
\r
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.Ipv6ExthdrFlags;
\r
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.PortNumber;
\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpOp;
\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSha;
\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpSpa;
\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTpa;
\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthDst;
\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthSrc;
\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthType;
\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv4Code;
\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv4Type;
\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv6Code;
\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Icmpv6Type;
\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpDscp;
\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpEcn;
\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpProto;
\r
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Dst;
\r
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv4Src;
\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Dst;
\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Exthdr;
\r
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Flabel;
\r
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdSll;
\r
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdTarget;
\r
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6NdTll;
\r
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Src;
\r
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsBos;
\r
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsLabel;
\r
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MplsTc;
\r
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;
\r
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OxmMatchType;
\r
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.PbbIsid;
\r
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.SctpDst;
\r
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.SctpSrc;
\r
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpDst;
\r
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpSrc;
\r
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TunnelId;
\r
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpDst;
\r
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanPcp;
\r
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanVid;
\r
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;
\r
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;
\r
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpOpCaseBuilder;
\r
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpShaCaseBuilder;
\r
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpSpaCaseBuilder;
\r
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpThaCaseBuilder;
\r
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ArpTpaCaseBuilder;
\r
82 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthDstCaseBuilder;
\r
83 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthSrcCaseBuilder;
\r
84 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.EthTypeCaseBuilder;
\r
85 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv4CodeCaseBuilder;
\r
86 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv4TypeCaseBuilder;
\r
87 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv6CodeCaseBuilder;
\r
88 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Icmpv6TypeCaseBuilder;
\r
89 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPhyPortCaseBuilder;
\r
90 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.InPortCaseBuilder;
\r
91 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpDscpCaseBuilder;
\r
92 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpEcnCaseBuilder;
\r
93 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.IpProtoCaseBuilder;
\r
94 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4DstCaseBuilder;
\r
95 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv4SrcCaseBuilder;
\r
96 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6DstCaseBuilder;
\r
97 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6ExthdrCaseBuilder;
\r
98 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6FlabelCaseBuilder;
\r
99 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdSllCaseBuilder;
\r
100 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTargetCaseBuilder;
\r
101 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6NdTllCaseBuilder;
\r
102 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.Ipv6SrcCaseBuilder;
\r
103 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MetadataCaseBuilder;
\r
104 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsBosCaseBuilder;
\r
105 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsLabelCaseBuilder;
\r
106 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.MplsTcCaseBuilder;
\r
107 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.PbbIsidCaseBuilder;
\r
108 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpDstCaseBuilder;
\r
109 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.SctpSrcCaseBuilder;
\r
110 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpDstCaseBuilder;
\r
111 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TcpSrcCaseBuilder;
\r
112 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.TunnelIdCaseBuilder;
\r
113 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpDstCaseBuilder;
\r
114 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.UdpSrcCaseBuilder;
\r
115 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanPcpCaseBuilder;
\r
116 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.VlanVidCaseBuilder;
\r
117 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.op._case.ArpOpBuilder;
\r
118 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.sha._case.ArpShaBuilder;
\r
119 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.spa._case.ArpSpaBuilder;
\r
120 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tha._case.ArpThaBuilder;
\r
121 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.arp.tpa._case.ArpTpaBuilder;
\r
122 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.dst._case.EthDstBuilder;
\r
123 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.src._case.EthSrcBuilder;
\r
124 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.eth.type._case.EthTypeBuilder;
\r
125 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv4.code._case.Icmpv4CodeBuilder;
\r
126 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv4.type._case.Icmpv4TypeBuilder;
\r
127 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv6.code._case.Icmpv6CodeBuilder;
\r
128 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.icmpv6.type._case.Icmpv6TypeBuilder;
\r
129 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.in.phy.port._case.InPhyPortBuilder;
\r
130 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.in.port._case.InPortBuilder;
\r
131 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.dscp._case.IpDscpBuilder;
\r
132 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.ecn._case.IpEcnBuilder;
\r
133 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ip.proto._case.IpProtoBuilder;
\r
134 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv4.dst._case.Ipv4DstBuilder;
\r
135 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv4.src._case.Ipv4SrcBuilder;
\r
136 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.dst._case.Ipv6DstBuilder;
\r
137 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.exthdr._case.Ipv6ExthdrBuilder;
\r
138 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.flabel._case.Ipv6FlabelBuilder;
\r
139 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.sll._case.Ipv6NdSllBuilder;
\r
140 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.target._case.Ipv6NdTargetBuilder;
\r
141 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.nd.tll._case.Ipv6NdTllBuilder;
\r
142 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.ipv6.src._case.Ipv6SrcBuilder;
\r
143 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.bos._case.MplsBosBuilder;
\r
144 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.label._case.MplsLabelBuilder;
\r
145 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.mpls.tc._case.MplsTcBuilder;
\r
146 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.pbb.isid._case.PbbIsidBuilder;
\r
147 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.sctp.dst._case.SctpDstBuilder;
\r
148 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.sctp.src._case.SctpSrcBuilder;
\r
149 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tcp.dst._case.TcpDstBuilder;
\r
150 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tcp.src._case.TcpSrcBuilder;
\r
151 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.tunnel.id._case.TunnelIdBuilder;
\r
152 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.udp.dst._case.UdpDstBuilder;
\r
153 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.udp.src._case.UdpSrcBuilder;
\r
154 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.vlan.pcp._case.VlanPcpBuilder;
\r
155 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.vlan.vid._case.VlanVidBuilder;
\r
156 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match;
\r
157 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.MatchBuilder;
\r
160 * @author michal.polkorab
\r
162 public class MatchResponseConvertor2Test {
\r
165 * Initializes OpenflowPortsUtil
\r
168 public void startUp() {
\r
169 OpenflowPortsUtil.init();
\r
173 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
175 @Test(expected = NullPointerException.class)
\r
176 public void testEmptyMatch() {
\r
177 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_0);
\r
178 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
179 convert(new MatchBuilder().build(), datapathIdConvertorData);
\r
183 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
186 public void testEmptyMatchEntry() {
\r
188 final MatchBuilder builder = new MatchBuilder();
\r
189 builder.setType(OxmMatchType.class);
\r
190 final List<MatchEntry> entries = new ArrayList<>();
\r
191 builder.setMatchEntry(entries);
\r
192 final Match match = builder.build();
\r
194 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_0);
\r
195 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
197 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
198 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
200 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
202 Assert.assertEquals("Wrong match entries", null, builtMatch.getEthernetMatch());
\r
203 Assert.assertEquals("Wrong match entries", null, builtMatch.getIcmpv4Match());
\r
204 Assert.assertEquals("Wrong match entries", null, builtMatch.getIcmpv6Match());
\r
205 Assert.assertEquals("Wrong match entries", null, builtMatch.getInPhyPort());
\r
206 Assert.assertEquals("Wrong match entries", null, builtMatch.getInPort());
\r
207 Assert.assertEquals("Wrong match entries", null, builtMatch.getIpMatch());
\r
208 Assert.assertEquals("Wrong match entries", null, builtMatch.getLayer3Match());
\r
209 Assert.assertEquals("Wrong match entries", null, builtMatch.getLayer4Match());
\r
210 Assert.assertEquals("Wrong match entries", null, builtMatch.getMetadata());
\r
211 Assert.assertEquals("Wrong match entries", null, builtMatch.getProtocolMatchFields());
\r
212 Assert.assertEquals("Wrong match entries", null, builtMatch.getVlanMatch());
\r
213 Assert.assertEquals("Wrong match entries", null, builtMatch.getTunnel());
\r
218 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
221 public void testWithMatchEntryNoMasks() {
\r
222 final List<MatchEntry> entries = new ArrayList<>();
\r
223 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
224 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
225 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort.class);
\r
226 entriesBuilder.setHasMask(false);
\r
227 final InPortCaseBuilder caseBuilder = new InPortCaseBuilder();
\r
228 final InPortBuilder portBuilder = new InPortBuilder();
\r
229 portBuilder.setPortNumber(new PortNumber(1L));
\r
230 caseBuilder.setInPort(portBuilder.build());
\r
231 entriesBuilder.setMatchEntryValue(caseBuilder.build());
\r
232 entries.add(entriesBuilder.build());
\r
234 final InPhyPortCaseBuilder inPhyPortCaseBuilder = new InPhyPortCaseBuilder();
\r
235 entriesBuilder = new MatchEntryBuilder();
\r
236 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
237 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPhyPort.class);
\r
238 entriesBuilder.setHasMask(false);
\r
239 final InPhyPortBuilder inPhyPortBuilder = new InPhyPortBuilder();
\r
240 inPhyPortBuilder.setPortNumber(new PortNumber(2L));
\r
241 inPhyPortCaseBuilder.setInPhyPort(inPhyPortBuilder.build());
\r
242 entriesBuilder.setMatchEntryValue(inPhyPortCaseBuilder.build());
\r
243 entries.add(entriesBuilder.build());
\r
245 entriesBuilder = new MatchEntryBuilder();
\r
246 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
247 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
248 entriesBuilder.setHasMask(false);
\r
249 final MetadataCaseBuilder metadataCaseBuilder = new MetadataCaseBuilder();
\r
250 final org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder metadataBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder();
\r
251 metadataBuilder.setMetadata(new byte[]{0, 1, 2, 3, 4, 5, 6, 7});
\r
252 metadataCaseBuilder.setMetadata(metadataBuilder.build());
\r
253 entriesBuilder.setMatchEntryValue(metadataCaseBuilder.build());
\r
254 entries.add(entriesBuilder.build());
\r
256 entriesBuilder = new MatchEntryBuilder();
\r
257 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
258 entriesBuilder.setOxmMatchField(EthDst.class);
\r
259 entriesBuilder.setHasMask(false);
\r
260 final EthDstCaseBuilder ethDstCaseBuilder = new EthDstCaseBuilder();
\r
261 final EthDstBuilder ethDstBuilder = new EthDstBuilder();
\r
262 ethDstBuilder.setMacAddress(new MacAddress("00:00:00:00:00:01"));
\r
263 ethDstCaseBuilder.setEthDst(ethDstBuilder.build());
\r
264 entriesBuilder.setMatchEntryValue(ethDstCaseBuilder.build());
\r
265 entries.add(entriesBuilder.build());
\r
267 entriesBuilder = new MatchEntryBuilder();
\r
268 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
269 entriesBuilder.setOxmMatchField(EthSrc.class);
\r
270 entriesBuilder.setHasMask(false);
\r
271 final EthSrcCaseBuilder ethSrcCaseBuilder = new EthSrcCaseBuilder();
\r
272 final EthSrcBuilder ethSrcBuilder = new EthSrcBuilder();
\r
273 ethSrcBuilder.setMacAddress(new MacAddress("00:00:00:00:00:02"));
\r
274 ethSrcCaseBuilder.setEthSrc(ethSrcBuilder.build());
\r
275 entriesBuilder.setMatchEntryValue(ethSrcCaseBuilder.build());
\r
276 entries.add(entriesBuilder.build());
\r
279 entriesBuilder = new MatchEntryBuilder();
\r
280 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
281 entriesBuilder.setOxmMatchField(EthType.class);
\r
282 entriesBuilder.setHasMask(false);
\r
283 final EthTypeCaseBuilder ethTypeCaseBuilder = new EthTypeCaseBuilder();
\r
285 final EthTypeBuilder ethTypeBuilder = new EthTypeBuilder();
\r
286 ethTypeBuilder.setEthType(new EtherType(3));
\r
287 ethTypeCaseBuilder.setEthType(ethTypeBuilder.build());
\r
288 entriesBuilder.setMatchEntryValue(ethTypeCaseBuilder.build());
\r
289 entries.add(entriesBuilder.build());
\r
292 entriesBuilder = new MatchEntryBuilder();
\r
293 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
294 entriesBuilder.setOxmMatchField(VlanVid.class);
\r
295 final VlanVidCaseBuilder vlanVidCaseBuilder = new VlanVidCaseBuilder();
\r
296 entriesBuilder.setHasMask(false);
\r
297 final VlanVidBuilder vlanVidBuilder = new VlanVidBuilder();
\r
298 vlanVidBuilder.setVlanVid(4);
\r
299 vlanVidBuilder.setCfiBit(true);
\r
300 vlanVidCaseBuilder.setVlanVid(vlanVidBuilder.build());
\r
301 entriesBuilder.setMatchEntryValue(vlanVidCaseBuilder.build());
\r
302 entries.add(entriesBuilder.build());
\r
304 entriesBuilder = new MatchEntryBuilder();
\r
305 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
306 entriesBuilder.setOxmMatchField(VlanPcp.class);
\r
307 final VlanPcpCaseBuilder vlanPcpCaseBuilder = new VlanPcpCaseBuilder();
\r
308 entriesBuilder.setHasMask(false);
\r
309 final VlanPcpBuilder vlanPcpBuilder = new VlanPcpBuilder();
\r
310 vlanPcpBuilder.setVlanPcp((short) 5);
\r
311 vlanPcpCaseBuilder.setVlanPcp(vlanPcpBuilder.build());
\r
312 entriesBuilder.setMatchEntryValue(vlanPcpCaseBuilder.build());
\r
313 entries.add(entriesBuilder.build());
\r
316 entriesBuilder = new MatchEntryBuilder();
\r
317 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
318 entriesBuilder.setOxmMatchField(IpDscp.class);
\r
319 entriesBuilder.setHasMask(false);
\r
320 final IpDscpCaseBuilder ipDscpCaseBuilder = new IpDscpCaseBuilder();
\r
321 final IpDscpBuilder ipDscpBuilder = new IpDscpBuilder();
\r
322 ipDscpBuilder.setDscp(new Dscp((short) 6));
\r
323 ipDscpCaseBuilder.setIpDscp(ipDscpBuilder.build());
\r
324 entriesBuilder.setMatchEntryValue(ipDscpCaseBuilder.build());
\r
325 entries.add(entriesBuilder.build());
\r
328 entriesBuilder = new MatchEntryBuilder();
\r
329 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
330 entriesBuilder.setOxmMatchField(IpEcn.class);
\r
331 entriesBuilder.setHasMask(false);
\r
332 final IpEcnCaseBuilder ipEcnCaseBuilder = new IpEcnCaseBuilder();
\r
333 final IpEcnBuilder ipEcnBuilder = new IpEcnBuilder();
\r
334 ipEcnBuilder.setEcn((short) 7);
\r
335 ipEcnCaseBuilder.setIpEcn(ipEcnBuilder.build());
\r
336 entriesBuilder.setMatchEntryValue(ipEcnCaseBuilder.build());
\r
337 entries.add(entriesBuilder.build());
\r
340 entriesBuilder = new MatchEntryBuilder();
\r
341 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
342 entriesBuilder.setOxmMatchField(IpProto.class);
\r
343 final IpProtoCaseBuilder ipProtoCaseBuilder = new IpProtoCaseBuilder();
\r
344 entriesBuilder.setHasMask(false);
\r
345 final IpProtoBuilder ipProtoBuilder = new IpProtoBuilder();
\r
346 ipProtoBuilder.setProtocolNumber((short) 8);
\r
347 ipProtoCaseBuilder.setIpProto(ipProtoBuilder.build());
\r
348 entriesBuilder.setMatchEntryValue(ipProtoCaseBuilder.build());
\r
349 entries.add(entriesBuilder.build());
\r
352 entriesBuilder = new MatchEntryBuilder();
\r
353 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
354 entriesBuilder.setOxmMatchField(Ipv4Src.class);
\r
355 entriesBuilder.setHasMask(false);
\r
356 final Ipv4SrcCaseBuilder ipv4AddressBuilder = new Ipv4SrcCaseBuilder();
\r
357 final Ipv4SrcBuilder ipv4SrcBuilder = new Ipv4SrcBuilder();
\r
358 ipv4SrcBuilder.setIpv4Address(new Ipv4Address("10.0.0.1"));
\r
359 ipv4AddressBuilder.setIpv4Src(ipv4SrcBuilder.build());
\r
360 entriesBuilder.setMatchEntryValue(ipv4AddressBuilder.build());
\r
361 entries.add(entriesBuilder.build());
\r
363 entriesBuilder = new MatchEntryBuilder();
\r
364 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
365 entriesBuilder.setOxmMatchField(Ipv4Dst.class);
\r
366 entriesBuilder.setHasMask(false);
\r
367 final Ipv4DstCaseBuilder ipv4DstCaseBuilder = new Ipv4DstCaseBuilder();
\r
368 final Ipv4DstBuilder ipv4DstBuilder = new Ipv4DstBuilder();
\r
369 ipv4DstBuilder.setIpv4Address(new Ipv4Address("10.0.0.2"));
\r
370 ipv4DstCaseBuilder.setIpv4Dst(ipv4DstBuilder.build());
\r
371 entriesBuilder.setMatchEntryValue(ipv4DstCaseBuilder.build());
\r
372 entries.add(entriesBuilder.build());
\r
374 entriesBuilder = new MatchEntryBuilder();
\r
375 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
376 entriesBuilder.setOxmMatchField(TcpSrc.class);
\r
377 entriesBuilder.setHasMask(false);
\r
378 final TcpSrcCaseBuilder tcpSrcCaseBuilder = new TcpSrcCaseBuilder();
\r
379 final TcpSrcBuilder tcpSrcBuilder = new TcpSrcBuilder();
\r
380 tcpSrcBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
\r
381 .inet.types.rev130715.PortNumber(9));
\r
382 tcpSrcCaseBuilder.setTcpSrc(tcpSrcBuilder.build());
\r
383 entriesBuilder.setMatchEntryValue(tcpSrcCaseBuilder.build());
\r
384 entries.add(entriesBuilder.build());
\r
386 entriesBuilder = new MatchEntryBuilder();
\r
387 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
388 entriesBuilder.setOxmMatchField(TcpDst.class);
\r
389 entriesBuilder.setHasMask(false);
\r
390 final TcpDstCaseBuilder tcpDstCaseBuilder = new TcpDstCaseBuilder();
\r
391 final TcpDstBuilder tcpDstBuilder = new TcpDstBuilder();
\r
392 tcpDstBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
\r
393 .inet.types.rev130715.PortNumber(10));
\r
394 tcpDstCaseBuilder.setTcpDst(tcpDstBuilder.build());
\r
395 entriesBuilder.setMatchEntryValue(tcpDstCaseBuilder.build());
\r
396 entries.add(entriesBuilder.build());
\r
398 entriesBuilder = new MatchEntryBuilder();
\r
399 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
400 entriesBuilder.setOxmMatchField(Icmpv4Type.class);
\r
401 entriesBuilder.setHasMask(false);
\r
402 final Icmpv4TypeCaseBuilder icmpv4TypeCaseBuilder = new Icmpv4TypeCaseBuilder();
\r
403 final Icmpv4TypeBuilder icmpv4TypeBuilder = new Icmpv4TypeBuilder();
\r
404 icmpv4TypeBuilder.setIcmpv4Type((short) 15);
\r
405 icmpv4TypeCaseBuilder.setIcmpv4Type(icmpv4TypeBuilder.build());
\r
406 entriesBuilder.setMatchEntryValue(icmpv4TypeCaseBuilder.build());
\r
407 entries.add(entriesBuilder.build());
\r
409 entriesBuilder = new MatchEntryBuilder();
\r
410 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
411 entriesBuilder.setOxmMatchField(Icmpv4Code.class);
\r
412 entriesBuilder.setHasMask(false);
\r
413 final Icmpv4CodeCaseBuilder icmpv4CodeCaseBuilder = new Icmpv4CodeCaseBuilder();
\r
414 final Icmpv4CodeBuilder icmpv4CodeBuilder = new Icmpv4CodeBuilder();
\r
415 icmpv4CodeBuilder.setIcmpv4Code((short) 16);
\r
416 icmpv4CodeCaseBuilder.setIcmpv4Code(icmpv4CodeBuilder.build());
\r
417 entriesBuilder.setMatchEntryValue(icmpv4CodeCaseBuilder.build());
\r
418 entries.add(entriesBuilder.build());
\r
420 entriesBuilder = new MatchEntryBuilder();
\r
421 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
422 entriesBuilder.setOxmMatchField(Icmpv6Type.class);
\r
423 entriesBuilder.setHasMask(false);
\r
424 final Icmpv6TypeCaseBuilder icmpv6TypeCaseBuilder = new Icmpv6TypeCaseBuilder();
\r
425 final Icmpv6TypeBuilder icmpv6TypeBuilder = new Icmpv6TypeBuilder();
\r
426 icmpv6TypeBuilder.setIcmpv6Type((short) 19);
\r
427 icmpv6TypeCaseBuilder.setIcmpv6Type(icmpv6TypeBuilder.build());
\r
428 entriesBuilder.setMatchEntryValue(icmpv6TypeCaseBuilder.build());
\r
429 entries.add(entriesBuilder.build());
\r
431 entriesBuilder = new MatchEntryBuilder();
\r
432 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
433 entriesBuilder.setOxmMatchField(Icmpv6Code.class);
\r
434 entriesBuilder.setHasMask(false);
\r
435 final Icmpv6CodeCaseBuilder icmpv6CodeCaseBuilder = new Icmpv6CodeCaseBuilder();
\r
436 final Icmpv6CodeBuilder icmpv6CodeBuilder = new Icmpv6CodeBuilder();
\r
437 icmpv6CodeBuilder.setIcmpv6Code((short) 20);
\r
438 icmpv6CodeCaseBuilder.setIcmpv6Code(icmpv6CodeBuilder.build());
\r
439 entriesBuilder.setMatchEntryValue(icmpv6CodeCaseBuilder.build());
\r
440 entries.add(entriesBuilder.build());
\r
442 entriesBuilder = new MatchEntryBuilder();
\r
443 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
444 entriesBuilder.setOxmMatchField(MplsLabel.class);
\r
445 entriesBuilder.setHasMask(false);
\r
446 final MplsLabelCaseBuilder mplsLabelCaseBuilder = new MplsLabelCaseBuilder();
\r
448 final MplsLabelBuilder mplsLabelBuilder = new MplsLabelBuilder();
\r
449 mplsLabelBuilder.setMplsLabel(21L);
\r
450 mplsLabelCaseBuilder.setMplsLabel(mplsLabelBuilder.build());
\r
451 entriesBuilder.setMatchEntryValue(mplsLabelCaseBuilder.build());
\r
452 entries.add(entriesBuilder.build());
\r
454 entriesBuilder = new MatchEntryBuilder();
\r
455 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
456 entriesBuilder.setOxmMatchField(MplsTc.class);
\r
457 entriesBuilder.setHasMask(false);
\r
458 final MplsTcCaseBuilder mplsTcCaseBuilder = new MplsTcCaseBuilder();
\r
459 final MplsTcBuilder mplsTcBuilder = new MplsTcBuilder();
\r
460 mplsTcBuilder.setTc((short) 22);
\r
461 mplsTcCaseBuilder.setMplsTc(mplsTcBuilder.build());
\r
462 entriesBuilder.setMatchEntryValue(mplsTcCaseBuilder.build());
\r
463 entries.add(entriesBuilder.build());
\r
465 entriesBuilder = new MatchEntryBuilder();
\r
466 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
467 entriesBuilder.setOxmMatchField(MplsBos.class);
\r
468 entriesBuilder.setHasMask(false);
\r
469 final MplsBosCaseBuilder mplsBosCaseBuilder = new MplsBosCaseBuilder();
\r
470 final MplsBosBuilder mplsBosBuilder = new MplsBosBuilder();
\r
471 mplsBosBuilder.setBos(true);
\r
472 mplsBosCaseBuilder.setMplsBos(mplsBosBuilder.build());
\r
473 entriesBuilder.setMatchEntryValue(mplsBosCaseBuilder.build());
\r
474 entries.add(entriesBuilder.build());
\r
476 entriesBuilder = new MatchEntryBuilder();
\r
477 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
478 entriesBuilder.setOxmMatchField(PbbIsid.class);
\r
479 entriesBuilder.setHasMask(false);
\r
480 final PbbIsidCaseBuilder pbbIsidCaseBuilder = new PbbIsidCaseBuilder();
\r
481 final PbbIsidBuilder pbbIsidBuilder = new PbbIsidBuilder();
\r
482 pbbIsidBuilder.setIsid(23L);
\r
483 pbbIsidCaseBuilder.setPbbIsid(pbbIsidBuilder.build());
\r
484 entriesBuilder.setMatchEntryValue(pbbIsidCaseBuilder.build());
\r
486 entries.add(entriesBuilder.build());
\r
487 entriesBuilder = new MatchEntryBuilder();
\r
488 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
489 entriesBuilder.setOxmMatchField(TunnelId.class);
\r
490 entriesBuilder.setHasMask(false);
\r
491 final TunnelIdCaseBuilder tunnelIdCaseBuilder = new TunnelIdCaseBuilder();
\r
492 final TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
\r
493 tunnelIdBuilder.setTunnelId(new byte[]{1, 2, 3, 4, 5, 6, 7, 8});
\r
494 tunnelIdCaseBuilder.setTunnelId(tunnelIdBuilder.build());
\r
495 entriesBuilder.setMatchEntryValue(tunnelIdCaseBuilder.build());
\r
496 entries.add(entriesBuilder.build());
\r
498 final MatchBuilder builder = new MatchBuilder();
\r
499 builder.setMatchEntry(entries);
\r
501 final Match match = builder.build();
\r
503 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_0);
\r
504 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
506 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
507 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
508 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
510 Assert.assertEquals("Wrong in port", "openflow:42:1", builtMatch.getInPort().getValue());
\r
511 Assert.assertEquals("Wrong in phy port", "openflow:42:2", builtMatch.getInPhyPort().getValue());
\r
512 Assert.assertEquals("Wrong metadata", new BigInteger(1, new byte[]{0, 1, 2, 3, 4, 5, 6, 7}), builtMatch.getMetadata().getMetadata());
\r
513 Assert.assertEquals("Wrong eth dst", new MacAddress("00:00:00:00:00:01"), builtMatch.getEthernetMatch().getEthernetDestination().getAddress());
\r
514 Assert.assertEquals("Wrong eth src", new MacAddress("00:00:00:00:00:02"), builtMatch.getEthernetMatch().getEthernetSource().getAddress());
\r
515 Assert.assertEquals("Wrong eth type", 3, builtMatch.getEthernetMatch().getEthernetType().getType().getValue().intValue());
\r
516 Assert.assertEquals("Wrong vlan id", 4, builtMatch.getVlanMatch().getVlanId().getVlanId().getValue().intValue());
\r
517 Assert.assertEquals("Wrong vlan id entries", true, builtMatch.getVlanMatch().getVlanId().isVlanIdPresent());
\r
518 Assert.assertEquals("Wrong vlan pcp", 5, builtMatch.getVlanMatch().getVlanPcp().getValue().intValue());
\r
519 Assert.assertEquals("Wrong ip dscp", 6, builtMatch.getIpMatch().getIpDscp().getValue().intValue());
\r
520 Assert.assertEquals("Wrong ip ecn", 7, builtMatch.getIpMatch().getIpEcn().intValue());
\r
521 Assert.assertEquals("Wrong ip proto", null, builtMatch.getIpMatch().getIpProto());
\r
522 Assert.assertEquals("Wrong ip protocol", 8, builtMatch.getIpMatch().getIpProtocol().intValue());
\r
524 final TcpMatch tcpMatch = (TcpMatch) builtMatch.getLayer4Match();
\r
525 Assert.assertEquals("Wrong tcp src port", 9, tcpMatch.getTcpSourcePort().getValue().intValue());
\r
526 Assert.assertEquals("Wrong tcp dst port", 10, tcpMatch.getTcpDestinationPort().getValue().intValue());
\r
527 Assert.assertEquals("Wrong icmpv4 type", 15, builtMatch.getIcmpv4Match().getIcmpv4Type().intValue());
\r
528 Assert.assertEquals("Wrong icmpv4 code", 16, builtMatch.getIcmpv4Match().getIcmpv4Code().intValue());
\r
529 Assert.assertEquals("Wrong icmpv6 type", 19, builtMatch.getIcmpv6Match().getIcmpv6Type().intValue());
\r
530 Assert.assertEquals("Wrong icmpv6 code", 20, builtMatch.getIcmpv6Match().getIcmpv6Code().intValue());
\r
532 final Ipv4Match ipv4Match = (Ipv4Match) builtMatch.getLayer3Match();
\r
533 Assert.assertEquals("Wrong ipv4 src address", "10.0.0.1/32", ipv4Match.getIpv4Source().getValue());
\r
534 Assert.assertEquals("Wrong ipv4 dst address", "10.0.0.2/32", ipv4Match.getIpv4Destination().getValue());
\r
535 Assert.assertEquals("Wrong mpls label", 21, builtMatch.getProtocolMatchFields().getMplsLabel().intValue());
\r
536 Assert.assertEquals("Wrong mpls bos", 1, builtMatch.getProtocolMatchFields().getMplsBos().intValue());
\r
537 Assert.assertEquals("Wrong mpls tc", 22, builtMatch.getProtocolMatchFields().getMplsTc().intValue());
\r
538 Assert.assertEquals("Wrong pbb isid", 23, builtMatch.getProtocolMatchFields().getPbb().getPbbIsid().intValue());
\r
539 Assert.assertEquals("Wrong tunnel id", new BigInteger(1, new byte[]{1, 2, 3, 4, 5, 6, 7, 8}),
\r
540 builtMatch.getTunnel().getTunnelId());
\r
544 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
547 public void testWithMatchEntryWithMasks() {
\r
548 final MatchBuilder builder = new MatchBuilder();
\r
549 builder.setType(OxmMatchType.class);
\r
550 final List<MatchEntry> entries = new ArrayList<>();
\r
551 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
552 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
553 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
554 entriesBuilder.setHasMask(true);
\r
557 final MetadataCaseBuilder metadataCaseBuilder = new MetadataCaseBuilder();
\r
558 final org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder metadataBuilder = new org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entry.value.grouping.match.entry.value.metadata._case.MetadataBuilder();
\r
559 metadataBuilder.setMetadata(new byte[]{0, 1, 2, 3, 4, 5, 6, 7});
\r
560 metadataBuilder.setMask(new byte[]{0, 0, 0, 0, 0, 0, 0, 1});
\r
561 metadataCaseBuilder.setMetadata(metadataBuilder.build());
\r
562 entriesBuilder.setMatchEntryValue(metadataCaseBuilder.build());
\r
563 entries.add(entriesBuilder.build());
\r
565 entriesBuilder = new MatchEntryBuilder();
\r
566 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
567 entriesBuilder.setOxmMatchField(EthDst.class);
\r
568 entriesBuilder.setHasMask(true);
\r
569 final EthDstCaseBuilder ethDstCaseBuilder = new EthDstCaseBuilder();
\r
570 final EthDstBuilder ethDstBuilder = new EthDstBuilder();
\r
571 ethDstBuilder.setMacAddress(new MacAddress("00:00:00:00:00:01"));
\r
572 ethDstBuilder.setMask(new byte[]{0, 0, 0, 0, 1, 1});
\r
573 ethDstCaseBuilder.setEthDst(ethDstBuilder.build());
\r
574 entriesBuilder.setMatchEntryValue(ethDstCaseBuilder.build());
\r
575 entries.add(entriesBuilder.build());
\r
577 entriesBuilder = new MatchEntryBuilder();
\r
578 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
579 entriesBuilder.setOxmMatchField(EthSrc.class);
\r
580 entriesBuilder.setHasMask(true);
\r
581 final EthSrcCaseBuilder ethSrcCaseBuilder = new EthSrcCaseBuilder();
\r
582 final EthSrcBuilder ethSrcBuilder = new EthSrcBuilder();
\r
583 ethSrcBuilder.setMacAddress(new MacAddress("00:00:00:00:00:02"));
\r
584 ethSrcBuilder.setMask(new byte[]{0, 0, 0, 0, 2, 2});
\r
585 ethSrcCaseBuilder.setEthSrc(ethSrcBuilder.build());
\r
586 entriesBuilder.setMatchEntryValue(ethSrcCaseBuilder.build());
\r
587 entries.add(entriesBuilder.build());
\r
589 entriesBuilder = new MatchEntryBuilder();
\r
590 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
591 entriesBuilder.setOxmMatchField(VlanVid.class);
\r
592 entriesBuilder.setHasMask(true);
\r
593 final VlanVidCaseBuilder vlanVidCaseBuilder = new VlanVidCaseBuilder();
\r
594 final VlanVidBuilder vlanVidBuilder = new VlanVidBuilder();
\r
595 vlanVidBuilder.setVlanVid(4);
\r
596 vlanVidBuilder.setCfiBit(true);
\r
597 vlanVidBuilder.setMask(new byte[]{0, 4});
\r
598 vlanVidCaseBuilder.setVlanVid(vlanVidBuilder.build());
\r
599 entriesBuilder.setMatchEntryValue(vlanVidCaseBuilder.build());
\r
600 entries.add(entriesBuilder.build());
\r
602 entriesBuilder = new MatchEntryBuilder();
\r
603 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
604 entriesBuilder.setOxmMatchField(Ipv4Src.class);
\r
605 entriesBuilder.setHasMask(true);
\r
606 final Ipv4SrcCaseBuilder ipv4SrcCaseBuilder = new Ipv4SrcCaseBuilder();
\r
607 final Ipv4SrcBuilder ipv4SrcBuilder = new Ipv4SrcBuilder();
\r
608 ipv4SrcBuilder.setIpv4Address(new Ipv4Address("10.0.0.0"));
\r
609 ipv4SrcBuilder.setMask(new byte[]{(byte) 255, (byte) 255, (byte) 255, 0});
\r
610 ipv4SrcCaseBuilder.setIpv4Src(ipv4SrcBuilder.build());
\r
611 entriesBuilder.setMatchEntryValue(ipv4SrcCaseBuilder.build());
\r
612 entries.add(entriesBuilder.build());
\r
614 entriesBuilder = new MatchEntryBuilder();
\r
615 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
616 entriesBuilder.setOxmMatchField(Ipv4Dst.class);
\r
617 entriesBuilder.setHasMask(true);
\r
618 final Ipv4DstCaseBuilder ipv4DstCaseBuilder = new Ipv4DstCaseBuilder();
\r
619 final Ipv4DstBuilder ipv4AddressBuilder = new Ipv4DstBuilder();
\r
620 ipv4AddressBuilder.setIpv4Address(new Ipv4Address("10.0.0.0"));
\r
621 ipv4AddressBuilder.setMask(new byte[]{(byte) 255, (byte) 255, (byte) 240, 0});
\r
622 ipv4DstCaseBuilder.setIpv4Dst(ipv4AddressBuilder.build());
\r
623 entriesBuilder.setMatchEntryValue(ipv4DstCaseBuilder.build());
\r
624 entries.add(entriesBuilder.build());
\r
626 entriesBuilder = new MatchEntryBuilder();
\r
627 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
628 entriesBuilder.setOxmMatchField(PbbIsid.class);
\r
629 entriesBuilder.setHasMask(true);
\r
630 final PbbIsidCaseBuilder pbbIsidCaseBuilder = new PbbIsidCaseBuilder();
\r
632 final PbbIsidBuilder pbbIsidBuilder = new PbbIsidBuilder();
\r
633 pbbIsidBuilder.setIsid(23L);
\r
634 pbbIsidBuilder.setMask(new byte[]{0, 0, 7});
\r
635 pbbIsidCaseBuilder.setPbbIsid(pbbIsidBuilder.build());
\r
636 entriesBuilder.setMatchEntryValue(pbbIsidCaseBuilder.build());
\r
637 entries.add(entriesBuilder.build());
\r
639 entriesBuilder = new MatchEntryBuilder();
\r
640 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
641 entriesBuilder.setOxmMatchField(TunnelId.class);
\r
642 entriesBuilder.setHasMask(true);
\r
643 final TunnelIdCaseBuilder tunnelIdCaseBuilder = new TunnelIdCaseBuilder();
\r
644 final TunnelIdBuilder tunnelIdBuilder = new TunnelIdBuilder();
\r
645 tunnelIdBuilder.setTunnelId(new byte[]{1, 2, 3, 4, 5, 6, 7, 8});
\r
646 tunnelIdBuilder.setMask(new byte[]{0, 0, 0, 0, 0, 0, 0, 8});
\r
647 tunnelIdCaseBuilder.setTunnelId(tunnelIdBuilder.build());
\r
648 entriesBuilder.setMatchEntryValue(tunnelIdCaseBuilder.build());
\r
649 entries.add(entriesBuilder.build());
\r
650 builder.setMatchEntry(entries);
\r
651 final Match match = builder.build();
\r
653 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_0);
\r
654 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
656 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
657 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
658 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
660 Assert.assertEquals("Wrong metadata", new BigInteger(1, new byte[]{0, 1, 2, 3, 4, 5, 6, 7}), builtMatch.getMetadata().getMetadata());
\r
661 Assert.assertEquals("Wrong metadata mask", new BigInteger(1, new byte[]{0, 0, 0, 0, 0, 0, 0, 1}),
\r
662 builtMatch.getMetadata().getMetadataMask());
\r
663 Assert.assertEquals("Wrong eth dst", new MacAddress("00:00:00:00:00:01"), builtMatch.getEthernetMatch().getEthernetDestination().getAddress());
\r
664 Assert.assertEquals("Wrong eth dst mask", new MacAddress("00:00:00:00:01:01"), builtMatch.getEthernetMatch().getEthernetDestination().getMask());
\r
665 Assert.assertEquals("Wrong eth src", new MacAddress("00:00:00:00:00:02"), builtMatch.getEthernetMatch().getEthernetSource().getAddress());
\r
666 Assert.assertEquals("Wrong eth src mask", new MacAddress("00:00:00:00:02:02"), builtMatch.getEthernetMatch().getEthernetSource().getMask());
\r
667 Assert.assertEquals("Wrong vlan id", 4, builtMatch.getVlanMatch().getVlanId().getVlanId().getValue().intValue());
\r
668 Assert.assertEquals("Wrong vlan id entries", true, builtMatch.getVlanMatch().getVlanId().isVlanIdPresent());
\r
669 final Ipv4Match ipv4Match = (Ipv4Match) builtMatch.getLayer3Match();
\r
670 Assert.assertEquals("Wrong ipv4 src address", "10.0.0.0/24", ipv4Match.getIpv4Source().getValue());
\r
671 Assert.assertEquals("Wrong ipv4 dst address", "10.0.0.0/20", ipv4Match.getIpv4Destination().getValue());
\r
672 Assert.assertEquals("Wrong pbb isid", 23, builtMatch.getProtocolMatchFields().getPbb().getPbbIsid().intValue());
\r
673 Assert.assertEquals("Wrong tunnel id", new BigInteger(1, new byte[]{1, 2, 3, 4, 5, 6, 7, 8}),
\r
674 builtMatch.getTunnel().getTunnelId());
\r
678 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
681 public void testWithMatchEntryWithArbitraryMasks() {
\r
682 final MatchBuilder builder = new MatchBuilder();
\r
683 builder.setType(OxmMatchType.class);
\r
684 final List<MatchEntry> entries = new ArrayList<>();
\r
685 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
686 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
687 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
688 entriesBuilder.setHasMask(true);
\r
690 entriesBuilder = new MatchEntryBuilder();
\r
691 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
692 entriesBuilder.setOxmMatchField(Ipv4Src.class);
\r
693 entriesBuilder.setHasMask(true);
\r
694 final Ipv4SrcCaseBuilder ipv4SrcCaseBuilder = new Ipv4SrcCaseBuilder();
\r
695 final Ipv4SrcBuilder ipv4SrcBuilder = new Ipv4SrcBuilder();
\r
696 ipv4SrcBuilder.setIpv4Address(new Ipv4Address("10.1.1.1"));
\r
697 ipv4SrcBuilder.setMask(new byte[]{(byte) 255, 0, (byte) 255, 0});
\r
698 ipv4SrcCaseBuilder.setIpv4Src(ipv4SrcBuilder.build());
\r
699 entriesBuilder.setMatchEntryValue(ipv4SrcCaseBuilder.build());
\r
700 entries.add(entriesBuilder.build());
\r
702 entriesBuilder = new MatchEntryBuilder();
\r
703 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
704 entriesBuilder.setOxmMatchField(Ipv4Dst.class);
\r
705 entriesBuilder.setHasMask(true);
\r
706 final Ipv4DstCaseBuilder ipv4DstCaseBuilder = new Ipv4DstCaseBuilder();
\r
707 final Ipv4DstBuilder ipv4AddressBuilder = new Ipv4DstBuilder();
\r
708 ipv4AddressBuilder.setIpv4Address(new Ipv4Address("10.0.1.1"));
\r
709 ipv4AddressBuilder.setMask(new byte[]{(byte) 255, 0, (byte) 240, 0});
\r
710 ipv4DstCaseBuilder.setIpv4Dst(ipv4AddressBuilder.build());
\r
711 entriesBuilder.setMatchEntryValue(ipv4DstCaseBuilder.build());
\r
712 entries.add(entriesBuilder.build());
\r
714 builder.setMatchEntry(entries);
\r
715 final Match match = builder.build();
\r
717 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
718 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
720 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
721 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
722 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
724 final Ipv4MatchArbitraryBitMask ipv4MatchArbitraryBitMask = (Ipv4MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
725 Assert.assertEquals("Wrong ipv4 src address", "10.1.1.1",
\r
726 ipv4MatchArbitraryBitMask.getIpv4SourceAddressNoMask().getValue());
\r
727 Assert.assertEquals("Wrong ipv4 dst address", "10.0.1.1",
\r
728 ipv4MatchArbitraryBitMask.getIpv4DestinationAddressNoMask().getValue());
\r
732 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
735 public void testWithMatchEntryWithSrcCidrMaskAndDstArbitraryBitMask() {
\r
736 final MatchBuilder builder = new MatchBuilder();
\r
737 builder.setType(OxmMatchType.class);
\r
738 final List<MatchEntry> entries = new ArrayList<>();
\r
739 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
740 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
741 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
742 entriesBuilder.setHasMask(true);
\r
744 entriesBuilder = new MatchEntryBuilder();
\r
745 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
746 entriesBuilder.setOxmMatchField(Ipv4Src.class);
\r
747 entriesBuilder.setHasMask(true);
\r
748 final Ipv4SrcCaseBuilder ipv4SrcCaseBuilder = new Ipv4SrcCaseBuilder();
\r
749 final Ipv4SrcBuilder ipv4SrcBuilder = new Ipv4SrcBuilder();
\r
750 ipv4SrcBuilder.setIpv4Address(new Ipv4Address("10.1.1.1"));
\r
751 ipv4SrcBuilder.setMask(new byte[]{(byte) 255, (byte) 255, (byte) 255, 0});
\r
752 ipv4SrcCaseBuilder.setIpv4Src(ipv4SrcBuilder.build());
\r
753 entriesBuilder.setMatchEntryValue(ipv4SrcCaseBuilder.build());
\r
754 entries.add(entriesBuilder.build());
\r
756 entriesBuilder = new MatchEntryBuilder();
\r
757 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
758 entriesBuilder.setOxmMatchField(Ipv4Dst.class);
\r
759 entriesBuilder.setHasMask(true);
\r
760 final Ipv4DstCaseBuilder ipv4DstCaseBuilder = new Ipv4DstCaseBuilder();
\r
761 final Ipv4DstBuilder ipv4AddressBuilder = new Ipv4DstBuilder();
\r
762 ipv4AddressBuilder.setIpv4Address(new Ipv4Address("10.0.1.1"));
\r
763 ipv4AddressBuilder.setMask(new byte[]{(byte) 255, 0, (byte) 240, 0});
\r
764 ipv4DstCaseBuilder.setIpv4Dst(ipv4AddressBuilder.build());
\r
765 entriesBuilder.setMatchEntryValue(ipv4DstCaseBuilder.build());
\r
766 entries.add(entriesBuilder.build());
\r
768 builder.setMatchEntry(entries);
\r
769 final Match match = builder.build();
\r
771 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
772 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
774 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
775 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
776 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
778 final Ipv4MatchArbitraryBitMask ipv4MatchArbitraryBitMask = (Ipv4MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
779 Assert.assertEquals("Wrong ipv4 src address", "10.1.1.1",
\r
780 ipv4MatchArbitraryBitMask.getIpv4SourceAddressNoMask().getValue());
\r
781 Assert.assertEquals("Wrong ipv4 dst address", "10.0.1.1",
\r
782 ipv4MatchArbitraryBitMask.getIpv4DestinationAddressNoMask().getValue());
\r
786 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
789 public void testWithMatchEntryWithSrcArbitraryBitMaskAndDstCidrMask() {
\r
790 final MatchBuilder builder = new MatchBuilder();
\r
791 builder.setType(OxmMatchType.class);
\r
792 final List<MatchEntry> entries = new ArrayList<>();
\r
793 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
794 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
795 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
796 entriesBuilder.setHasMask(true);
\r
798 entriesBuilder = new MatchEntryBuilder();
\r
799 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
800 entriesBuilder.setOxmMatchField(Ipv4Src.class);
\r
801 entriesBuilder.setHasMask(true);
\r
802 final Ipv4SrcCaseBuilder ipv4SrcCaseBuilder = new Ipv4SrcCaseBuilder();
\r
803 final Ipv4SrcBuilder ipv4SrcBuilder = new Ipv4SrcBuilder();
\r
804 ipv4SrcBuilder.setIpv4Address(new Ipv4Address("10.1.1.1"));
\r
805 ipv4SrcBuilder.setMask(new byte[]{(byte) 255, (byte) 0, (byte) 255, 0});
\r
806 ipv4SrcCaseBuilder.setIpv4Src(ipv4SrcBuilder.build());
\r
807 entriesBuilder.setMatchEntryValue(ipv4SrcCaseBuilder.build());
\r
808 entries.add(entriesBuilder.build());
\r
810 entriesBuilder = new MatchEntryBuilder();
\r
811 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
812 entriesBuilder.setOxmMatchField(Ipv4Dst.class);
\r
813 entriesBuilder.setHasMask(true);
\r
814 final Ipv4DstCaseBuilder ipv4DstCaseBuilder = new Ipv4DstCaseBuilder();
\r
815 final Ipv4DstBuilder ipv4AddressBuilder = new Ipv4DstBuilder();
\r
816 ipv4AddressBuilder.setIpv4Address(new Ipv4Address("10.0.1.1"));
\r
817 ipv4AddressBuilder.setMask(new byte[]{(byte) 255, (byte) 255, (byte) 240, 0});
\r
818 ipv4DstCaseBuilder.setIpv4Dst(ipv4AddressBuilder.build());
\r
819 entriesBuilder.setMatchEntryValue(ipv4DstCaseBuilder.build());
\r
820 entries.add(entriesBuilder.build());
\r
822 builder.setMatchEntry(entries);
\r
823 final Match match = builder.build();
\r
825 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
826 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
828 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
829 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
830 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
832 final Ipv4MatchArbitraryBitMask ipv4MatchArbitraryBitMask = (Ipv4MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
833 Assert.assertEquals("Wrong ipv4 src address", "10.1.1.1",
\r
834 ipv4MatchArbitraryBitMask.getIpv4SourceAddressNoMask().getValue());
\r
835 Assert.assertEquals("Wrong ipv4 dst address", "10.0.1.1",
\r
836 ipv4MatchArbitraryBitMask.getIpv4DestinationAddressNoMask().getValue());
\r
841 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
844 public void testWithMatchEntryWithDstArbitraryBitMaskAndSrcCidrMask() {
\r
845 final MatchBuilder builder = new MatchBuilder();
\r
846 builder.setType(OxmMatchType.class);
\r
847 final List<MatchEntry> entries = new ArrayList<>();
\r
848 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
849 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
850 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
851 entriesBuilder.setHasMask(true);
\r
853 entriesBuilder = new MatchEntryBuilder();
\r
854 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
855 entriesBuilder.setOxmMatchField(Ipv4Dst.class);
\r
856 entriesBuilder.setHasMask(true);
\r
857 final Ipv4DstCaseBuilder ipv4DstCaseBuilder = new Ipv4DstCaseBuilder();
\r
858 final Ipv4DstBuilder ipv4AddressBuilder = new Ipv4DstBuilder();
\r
859 ipv4AddressBuilder.setIpv4Address(new Ipv4Address("10.0.1.1"));
\r
860 ipv4AddressBuilder.setMask(new byte[]{(byte) 255, 0, (byte) 240, 0});
\r
861 ipv4DstCaseBuilder.setIpv4Dst(ipv4AddressBuilder.build());
\r
862 entriesBuilder.setMatchEntryValue(ipv4DstCaseBuilder.build());
\r
863 entries.add(entriesBuilder.build());
\r
865 entriesBuilder = new MatchEntryBuilder();
\r
866 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
867 entriesBuilder.setOxmMatchField(Ipv4Src.class);
\r
868 entriesBuilder.setHasMask(true);
\r
869 final Ipv4SrcCaseBuilder ipv4SrcCaseBuilder = new Ipv4SrcCaseBuilder();
\r
870 final Ipv4SrcBuilder ipv4SrcBuilder = new Ipv4SrcBuilder();
\r
871 ipv4SrcBuilder.setIpv4Address(new Ipv4Address("10.1.1.1"));
\r
872 ipv4SrcBuilder.setMask(new byte[]{(byte) 255, (byte) 255, (byte) 255, 0});
\r
873 ipv4SrcCaseBuilder.setIpv4Src(ipv4SrcBuilder.build());
\r
874 entriesBuilder.setMatchEntryValue(ipv4SrcCaseBuilder.build());
\r
875 entries.add(entriesBuilder.build());
\r
877 builder.setMatchEntry(entries);
\r
878 final Match match = builder.build();
\r
880 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
881 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
883 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
884 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
885 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
887 final Ipv4MatchArbitraryBitMask ipv4MatchArbitraryBitMask = (Ipv4MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
888 Assert.assertEquals("Wrong ipv4 src address", "10.1.1.1",
\r
889 ipv4MatchArbitraryBitMask.getIpv4SourceAddressNoMask().getValue());
\r
890 Assert.assertEquals("Wrong ipv4 dst address", "10.0.1.1",
\r
891 ipv4MatchArbitraryBitMask.getIpv4DestinationAddressNoMask().getValue());
\r
895 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
898 public void testWithMatchEntryWithDstCidrMaskAndSrcArbitraryBitMask() {
\r
899 final MatchBuilder builder = new MatchBuilder();
\r
900 builder.setType(OxmMatchType.class);
\r
901 final List<MatchEntry> entries = new ArrayList<>();
\r
902 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
903 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
904 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
905 entriesBuilder.setHasMask(true);
\r
907 entriesBuilder = new MatchEntryBuilder();
\r
908 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
909 entriesBuilder.setOxmMatchField(Ipv4Dst.class);
\r
910 entriesBuilder.setHasMask(true);
\r
911 final Ipv4DstCaseBuilder ipv4DstCaseBuilder = new Ipv4DstCaseBuilder();
\r
912 final Ipv4DstBuilder ipv4AddressBuilder = new Ipv4DstBuilder();
\r
913 ipv4AddressBuilder.setIpv4Address(new Ipv4Address("10.0.1.1"));
\r
914 ipv4AddressBuilder.setMask(new byte[]{(byte) 255, (byte) 255, (byte) 240, 0});
\r
915 ipv4DstCaseBuilder.setIpv4Dst(ipv4AddressBuilder.build());
\r
916 entriesBuilder.setMatchEntryValue(ipv4DstCaseBuilder.build());
\r
917 entries.add(entriesBuilder.build());
\r
919 entriesBuilder = new MatchEntryBuilder();
\r
920 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
921 entriesBuilder.setOxmMatchField(Ipv4Src.class);
\r
922 entriesBuilder.setHasMask(true);
\r
923 final Ipv4SrcCaseBuilder ipv4SrcCaseBuilder = new Ipv4SrcCaseBuilder();
\r
924 final Ipv4SrcBuilder ipv4SrcBuilder = new Ipv4SrcBuilder();
\r
925 ipv4SrcBuilder.setIpv4Address(new Ipv4Address("10.1.1.1"));
\r
926 ipv4SrcBuilder.setMask(new byte[]{(byte) 255, (byte) 0, (byte) 255, 0});
\r
927 ipv4SrcCaseBuilder.setIpv4Src(ipv4SrcBuilder.build());
\r
928 entriesBuilder.setMatchEntryValue(ipv4SrcCaseBuilder.build());
\r
929 entries.add(entriesBuilder.build());
\r
931 builder.setMatchEntry(entries);
\r
932 final Match match = builder.build();
\r
934 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
935 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
937 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
938 .MatchBuilder salMatch = convert(match, datapathIdConvertorData);
\r
939 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatch.build();
\r
941 final Ipv4MatchArbitraryBitMask ipv4MatchArbitraryBitMask = (Ipv4MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
942 Assert.assertEquals("Wrong ipv4 src address", "10.1.1.1",
\r
943 ipv4MatchArbitraryBitMask.getIpv4SourceAddressNoMask().getValue());
\r
944 Assert.assertEquals("Wrong ipv4 dst address", "10.0.1.1",
\r
945 ipv4MatchArbitraryBitMask.getIpv4DestinationAddressNoMask().getValue());
\r
949 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
952 public void testLayer4MatchUdp() {
\r
953 final MatchBuilder builder = new MatchBuilder();
\r
954 builder.setType(OxmMatchType.class);
\r
955 final List<MatchEntry> entries = new ArrayList<>();
\r
956 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
957 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
958 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpSrc.class);
\r
959 entriesBuilder.setHasMask(false);
\r
960 final UdpSrcCaseBuilder udpSrcCaseBuilder = new UdpSrcCaseBuilder();
\r
961 final UdpSrcBuilder portBuilder = new UdpSrcBuilder();
\r
962 portBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
\r
963 .inet.types.rev130715.PortNumber(11));
\r
964 udpSrcCaseBuilder.setUdpSrc(portBuilder.build());
\r
965 entriesBuilder.setMatchEntryValue(udpSrcCaseBuilder.build());
\r
966 entries.add(entriesBuilder.build());
\r
969 entriesBuilder = new MatchEntryBuilder();
\r
970 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
971 entriesBuilder.setOxmMatchField(UdpDst.class);
\r
972 entriesBuilder.setHasMask(false);
\r
973 final UdpDstCaseBuilder udpDstCaseBuilder = new UdpDstCaseBuilder();
\r
974 final UdpDstBuilder udpDstBuilder = new UdpDstBuilder();
\r
975 udpDstBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
\r
976 .inet.types.rev130715.PortNumber(12));
\r
977 udpDstCaseBuilder.setUdpDst(udpDstBuilder.build());
\r
978 entriesBuilder.setMatchEntryValue(udpDstCaseBuilder.build());
\r
979 entries.add(entriesBuilder.build());
\r
981 builder.setMatchEntry(entries);
\r
983 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
984 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
986 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
987 .MatchBuilder builtMatch = convert(builder.build(), datapathIdConvertorData);
\r
989 final UdpMatch udpMatch = (UdpMatch) builtMatch.getLayer4Match();
\r
990 Assert.assertEquals("Wrong udp src port", 11, udpMatch.getUdpSourcePort().getValue().intValue());
\r
991 Assert.assertEquals("Wrong udp dst port", 12, udpMatch.getUdpDestinationPort().getValue().intValue());
\r
995 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
998 public void testLayer4MatchSctp() {
\r
999 final MatchBuilder builder = new MatchBuilder();
\r
1000 builder.setType(OxmMatchType.class);
\r
1001 final List<MatchEntry> entries = new ArrayList<>();
\r
1002 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1003 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1004 entriesBuilder.setOxmMatchField(SctpSrc.class);
\r
1005 entriesBuilder.setHasMask(false);
\r
1006 final SctpSrcCaseBuilder sctpSrcCaseBuilder = new SctpSrcCaseBuilder();
\r
1007 final SctpSrcBuilder portBuilder = new SctpSrcBuilder();
\r
1008 portBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
\r
1009 .inet.types.rev130715.PortNumber(13));
\r
1010 sctpSrcCaseBuilder.setSctpSrc(portBuilder.build());
\r
1011 entriesBuilder.setMatchEntryValue(sctpSrcCaseBuilder.build());
\r
1012 entries.add(entriesBuilder.build());
\r
1015 entriesBuilder = new MatchEntryBuilder();
\r
1016 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1017 entriesBuilder.setOxmMatchField(SctpDst.class);
\r
1018 entriesBuilder.setHasMask(false);
\r
1019 final SctpDstCaseBuilder sctpDstCaseBuilder = new SctpDstCaseBuilder();
\r
1020 final SctpDstBuilder sctpDstBuilder = new SctpDstBuilder();
\r
1021 sctpDstBuilder.setPort(new org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf
\r
1022 .inet.types.rev130715.PortNumber(14));
\r
1023 sctpDstCaseBuilder.setSctpDst(sctpDstBuilder.build());
\r
1024 entriesBuilder.setMatchEntryValue(sctpDstCaseBuilder.build());
\r
1025 entries.add(entriesBuilder.build());
\r
1026 builder.setMatchEntry(entries);
\r
1028 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1029 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1031 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1032 .MatchBuilder salMatchBuilder = convert(builder.build(), datapathIdConvertorData);
\r
1033 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1035 final SctpMatch udpMatch = (SctpMatch) builtMatch.getLayer4Match();
\r
1036 Assert.assertEquals("Wrong sctp src port", 13, udpMatch.getSctpSourcePort().getValue().intValue());
\r
1037 Assert.assertEquals("Wrong sctp dst port", 14, udpMatch.getSctpDestinationPort().getValue().intValue());
\r
1041 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1044 public void testLayer3MatchIpv6() {
\r
1045 final MatchBuilder builder = new MatchBuilder();
\r
1046 builder.setType(OxmMatchType.class);
\r
1047 final List<MatchEntry> entries = new ArrayList<>();
\r
1048 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1049 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1050 entriesBuilder.setOxmMatchField(Ipv6Src.class);
\r
1051 entriesBuilder.setHasMask(false);
\r
1052 final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();
\r
1053 final Ipv6SrcBuilder ipv6AddressBuilder = new Ipv6SrcBuilder();
\r
1054 ipv6AddressBuilder.setIpv6Address(new Ipv6Address("2001:cdba:0000:0000:0000:0000:3257:9657"));
\r
1055 ipv6SrcCaseBuilder.setIpv6Src(ipv6AddressBuilder.build());
\r
1056 entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());
\r
1057 entries.add(entriesBuilder.build());
\r
1059 entriesBuilder = new MatchEntryBuilder();
\r
1060 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1061 entriesBuilder.setOxmMatchField(Ipv6Dst.class);
\r
1062 entriesBuilder.setHasMask(false);
\r
1063 final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();
\r
1064 final Ipv6DstBuilder ipv6DstBuilder = new Ipv6DstBuilder();
\r
1065 ipv6DstBuilder.setIpv6Address(new Ipv6Address("2001:cdba:0000:0000:0000:0000:3257:9658"));
\r
1066 ipv6DstCaseBuilder.setIpv6Dst(ipv6DstBuilder.build());
\r
1067 entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());
\r
1068 entries.add(entriesBuilder.build());
\r
1070 entriesBuilder = new MatchEntryBuilder();
\r
1071 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1072 entriesBuilder.setOxmMatchField(Ipv6Flabel.class);
\r
1073 entriesBuilder.setHasMask(false);
\r
1074 final Ipv6FlabelCaseBuilder ipv6FlabelCaseBuilder = new Ipv6FlabelCaseBuilder();
\r
1075 final Ipv6FlabelBuilder ipv6FlabelBuilder = new Ipv6FlabelBuilder();
\r
1076 ipv6FlabelBuilder.setIpv6Flabel(new Ipv6FlowLabel(18L));
\r
1077 ipv6FlabelCaseBuilder.setIpv6Flabel(ipv6FlabelBuilder.build());
\r
1078 entriesBuilder.setMatchEntryValue(ipv6FlabelCaseBuilder.build());
\r
1079 entries.add(entriesBuilder.build());
\r
1081 entriesBuilder = new MatchEntryBuilder();
\r
1082 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1083 entriesBuilder.setOxmMatchField(Ipv6NdTarget.class);
\r
1084 entriesBuilder.setHasMask(false);
\r
1085 final Ipv6NdTargetCaseBuilder ipv6NdTargetCaseBuilder = new Ipv6NdTargetCaseBuilder();
\r
1086 final Ipv6NdTargetBuilder ipv6NdTargetBuilder = new Ipv6NdTargetBuilder();
\r
1087 ipv6NdTargetBuilder.setIpv6Address(new Ipv6Address("2001:cdba:0000:0000:0000:0000:3257:9659"));
\r
1088 ipv6NdTargetCaseBuilder.setIpv6NdTarget(ipv6NdTargetBuilder.build());
\r
1089 entriesBuilder.setMatchEntryValue(ipv6NdTargetCaseBuilder.build());
\r
1090 entries.add(entriesBuilder.build());
\r
1092 entriesBuilder = new MatchEntryBuilder();
\r
1093 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1094 entriesBuilder.setOxmMatchField(Ipv6NdSll.class);
\r
1095 entriesBuilder.setHasMask(false);
\r
1096 final Ipv6NdSllCaseBuilder ipv6NdSllCaseBuilder = new Ipv6NdSllCaseBuilder();
\r
1097 final Ipv6NdSllBuilder ipv6NdSllBuilder = new Ipv6NdSllBuilder();
\r
1098 ipv6NdSllBuilder.setMacAddress(new MacAddress("00:00:00:00:00:05"));
\r
1099 ipv6NdSllCaseBuilder.setIpv6NdSll(ipv6NdSllBuilder.build());
\r
1100 entriesBuilder.setMatchEntryValue(ipv6NdSllCaseBuilder.build());
\r
1101 entries.add(entriesBuilder.build());
\r
1103 entriesBuilder = new MatchEntryBuilder();
\r
1104 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1105 entriesBuilder.setOxmMatchField(Ipv6NdTll.class);
\r
1106 entriesBuilder.setHasMask(false);
\r
1107 final Ipv6NdTllCaseBuilder ipv6NdTllCaseBuilder = new Ipv6NdTllCaseBuilder();
\r
1108 final Ipv6NdTllBuilder ipv6NdTllBuilder = new Ipv6NdTllBuilder();
\r
1109 ipv6NdTllBuilder.setMacAddress(new MacAddress("00:00:00:00:00:06"));
\r
1110 ipv6NdTllCaseBuilder.setIpv6NdTll(ipv6NdTllBuilder.build());
\r
1111 entriesBuilder.setMatchEntryValue(ipv6NdTllCaseBuilder.build());
\r
1112 entries.add(entriesBuilder.build());
\r
1114 entriesBuilder = new MatchEntryBuilder();
\r
1115 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1116 entriesBuilder.setOxmMatchField(Ipv6Exthdr.class);
\r
1117 entriesBuilder.setHasMask(false);
\r
1118 final Ipv6ExthdrCaseBuilder ipv6ExthdrCaseBuilder = new Ipv6ExthdrCaseBuilder();
\r
1119 final Ipv6ExthdrBuilder ipv6ExthdrBuilder = new Ipv6ExthdrBuilder();
\r
1120 ipv6ExthdrBuilder.setPseudoField(new Ipv6ExthdrFlags(true, false, true, false, true, false, true, false, true));
\r
1121 ipv6ExthdrCaseBuilder.setIpv6Exthdr(ipv6ExthdrBuilder.build());
\r
1122 entriesBuilder.setMatchEntryValue(ipv6ExthdrCaseBuilder.build());
\r
1123 builder.setMatchEntry(entries);
\r
1124 entries.add(entriesBuilder.build());
\r
1126 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1127 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1129 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1130 .MatchBuilder salMatchBuilder = convert(builder.build(), datapathIdConvertorData);
\r
1131 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1133 final Ipv6Match ipv6Match = (Ipv6Match) builtMatch.getLayer3Match();
\r
1134 Assert.assertEquals("Wrong ipv6 src address", "2001:cdba::3257:9657/128",
\r
1135 ipv6Match.getIpv6Source().getValue());
\r
1136 Assert.assertEquals("Wrong ipv6 dst address", "2001:cdba::3257:9658/128",
\r
1137 ipv6Match.getIpv6Destination().getValue());
\r
1138 Assert.assertEquals("Wrong ipv6 nd target", "2001:cdba:0000:0000:0000:0000:3257:9659",
\r
1139 ipv6Match.getIpv6NdTarget().getValue());
\r
1140 Assert.assertEquals("Wrong ipv6 flabel", 18, ipv6Match.getIpv6Label().getIpv6Flabel().getValue().intValue());
\r
1141 Assert.assertEquals("Wrong ipv6 nd sll", new MacAddress("00:00:00:00:00:05"), ipv6Match.getIpv6NdSll());
\r
1142 Assert.assertEquals("Wrong ipv6 nd tll", new MacAddress("00:00:00:00:00:06"), ipv6Match.getIpv6NdTll());
\r
1143 Assert.assertEquals("Wrong ipv6 ext header", 358, ipv6Match.getIpv6ExtHeader().getIpv6Exthdr().intValue());
\r
1147 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1150 public void testLayer3MatchIpv6ExtHeader2() {
\r
1151 final MatchBuilder builder = new MatchBuilder();
\r
1152 builder.setType(OxmMatchType.class);
\r
1153 final List<MatchEntry> entries = new ArrayList<>();
\r
1154 final MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1155 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1156 entriesBuilder.setOxmMatchField(Ipv6Exthdr.class);
\r
1157 entriesBuilder.setHasMask(true);
\r
1158 final Ipv6ExthdrCaseBuilder ipv6ExthdrCaseBuilder = new Ipv6ExthdrCaseBuilder();
\r
1159 final Ipv6ExthdrBuilder ipv6ExthdrBuilder = new Ipv6ExthdrBuilder();
\r
1160 ipv6ExthdrBuilder.setPseudoField(new Ipv6ExthdrFlags(false, true, false, true, false, true, false, true, false));
\r
1161 ipv6ExthdrBuilder.setMask(new byte[]{1, 2});
\r
1162 ipv6ExthdrCaseBuilder.setIpv6Exthdr(ipv6ExthdrBuilder.build());
\r
1163 entriesBuilder.setMatchEntryValue(ipv6ExthdrCaseBuilder.build());
\r
1164 entries.add(entriesBuilder.build());
\r
1165 builder.setMatchEntry(entries);
\r
1167 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1168 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1170 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1171 .MatchBuilder salMatchBuilder = convert(builder.build(), datapathIdConvertorData);
\r
1172 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1174 final Ipv6Match ipv6Match = (Ipv6Match) builtMatch.getLayer3Match();
\r
1175 Assert.assertEquals("Wrong ipv6 ext header", 153, ipv6Match.getIpv6ExtHeader().getIpv6Exthdr().intValue());
\r
1176 Assert.assertEquals("Wrong ipv6 ext header mask", 258, ipv6Match.getIpv6ExtHeader().getIpv6ExthdrMask().intValue());
\r
1180 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1183 public void testLayer3MatchArp() {
\r
1184 final MatchBuilder builder = new MatchBuilder();
\r
1185 builder.setType(OxmMatchType.class);
\r
1186 final List<MatchEntry> entries = new ArrayList<>();
\r
1187 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1188 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1189 entriesBuilder.setOxmMatchField(ArpOp.class);
\r
1190 entriesBuilder.setHasMask(false);
\r
1191 final ArpOpCaseBuilder arpOpCaseBuilder = new ArpOpCaseBuilder();
\r
1192 final ArpOpBuilder arpOpBuilder = new ArpOpBuilder();
\r
1193 arpOpBuilder.setOpCode(17);
\r
1194 arpOpCaseBuilder.setArpOp(arpOpBuilder.build());
\r
1195 entriesBuilder.setMatchEntryValue(arpOpCaseBuilder.build());
\r
1196 entries.add(entriesBuilder.build());
\r
1198 entriesBuilder = new MatchEntryBuilder();
\r
1199 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1200 entriesBuilder.setOxmMatchField(ArpSpa.class);
\r
1201 entriesBuilder.setHasMask(false);
\r
1202 final ArpSpaCaseBuilder arpSpaCaseBuilder = new ArpSpaCaseBuilder();
\r
1203 final ArpSpaBuilder arpSpaBuilder = new ArpSpaBuilder();
\r
1204 arpSpaBuilder.setIpv4Address(new Ipv4Address("10.0.0.3"));
\r
1205 arpSpaCaseBuilder.setArpSpa(arpSpaBuilder.build());
\r
1206 entriesBuilder.setMatchEntryValue(arpSpaCaseBuilder.build());
\r
1207 entries.add(entriesBuilder.build());
\r
1209 entriesBuilder = new MatchEntryBuilder();
\r
1210 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1211 entriesBuilder.setOxmMatchField(ArpTpa.class);
\r
1212 entriesBuilder.setHasMask(false);
\r
1213 final ArpTpaCaseBuilder arpTpaCaseBuilder = new ArpTpaCaseBuilder();
\r
1214 final ArpTpaBuilder arpTpaBuilder = new ArpTpaBuilder();
\r
1215 arpTpaBuilder.setIpv4Address(new Ipv4Address("10.0.0.4"));
\r
1216 arpTpaCaseBuilder.setArpTpa(arpTpaBuilder.build());
\r
1217 entriesBuilder.setMatchEntryValue(arpTpaCaseBuilder.build());
\r
1218 entries.add(entriesBuilder.build());
\r
1220 entriesBuilder = new MatchEntryBuilder();
\r
1221 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1222 entriesBuilder.setOxmMatchField(ArpSha.class);
\r
1223 entriesBuilder.setHasMask(false);
\r
1224 final ArpShaCaseBuilder arpShaCaseBuilder = new ArpShaCaseBuilder();
\r
1225 final ArpShaBuilder arpShaBuilder = new ArpShaBuilder();
\r
1226 arpShaBuilder.setMacAddress(new MacAddress("00:00:00:00:00:03"));
\r
1227 arpShaCaseBuilder.setArpSha(arpShaBuilder.build());
\r
1228 entriesBuilder.setMatchEntryValue(arpShaCaseBuilder.build());
\r
1229 entries.add(entriesBuilder.build());
\r
1231 entriesBuilder = new MatchEntryBuilder();
\r
1232 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1233 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTha.class);
\r
1234 entriesBuilder.setHasMask(false);
\r
1235 final ArpThaCaseBuilder arpThaCaseBuilder = new ArpThaCaseBuilder();
\r
1236 final ArpThaBuilder arpThaBuilder = new ArpThaBuilder();
\r
1237 arpThaBuilder.setMacAddress(new MacAddress("00:00:00:00:00:04"));
\r
1238 arpThaCaseBuilder.setArpTha(arpThaBuilder.build());
\r
1239 entriesBuilder.setMatchEntryValue(arpThaCaseBuilder.build());
\r
1240 entries.add(entriesBuilder.build());
\r
1241 builder.setMatchEntry(entries);
\r
1243 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1244 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1246 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1247 .MatchBuilder salMatchBuilder = convert(builder.build(), datapathIdConvertorData);
\r
1248 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1250 final ArpMatch arpMatch = (ArpMatch) builtMatch.getLayer3Match();
\r
1251 Assert.assertEquals("Wrong arp op", 17, arpMatch.getArpOp().intValue());
\r
1252 Assert.assertEquals("Wrong arp spa", "10.0.0.3/32", arpMatch.getArpSourceTransportAddress().getValue());
\r
1253 Assert.assertEquals("Wrong arp tpa", "10.0.0.4/32", arpMatch.getArpTargetTransportAddress().getValue());
\r
1254 Assert.assertEquals("Wrong arp sha", "00:00:00:00:00:03", arpMatch.getArpSourceHardwareAddress().getAddress().getValue());
\r
1255 Assert.assertEquals("Wrong arp tha", "00:00:00:00:00:04", arpMatch.getArpTargetHardwareAddress().getAddress().getValue());
\r
1259 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1262 public void testLayer3MatchArpWithMasks() {
\r
1263 final MatchBuilder builder = new MatchBuilder();
\r
1264 builder.setType(OxmMatchType.class);
\r
1265 final List<MatchEntry> entries = new ArrayList<>();
\r
1266 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1267 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1268 entriesBuilder.setOxmMatchField(ArpSpa.class);
\r
1269 entriesBuilder.setHasMask(true);
\r
1270 final ArpSpaCaseBuilder arpSpaCaseBuilder = new ArpSpaCaseBuilder();
\r
1271 final ArpSpaBuilder arpSpaBuilder = new ArpSpaBuilder();
\r
1272 arpSpaBuilder.setIpv4Address(new Ipv4Address("10.0.0.3"));
\r
1273 arpSpaBuilder.setMask(new byte[]{(byte) 255, (byte) 255, (byte) 255, 0});
\r
1274 arpSpaCaseBuilder.setArpSpa(arpSpaBuilder.build());
\r
1275 entriesBuilder.setMatchEntryValue(arpSpaCaseBuilder.build());
\r
1276 entries.add(entriesBuilder.build());
\r
1278 entriesBuilder = new MatchEntryBuilder();
\r
1279 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1280 entriesBuilder.setOxmMatchField(ArpTpa.class);
\r
1281 entriesBuilder.setHasMask(true);
\r
1282 final ArpTpaCaseBuilder arpTpaCaseBuilder = new ArpTpaCaseBuilder();
\r
1283 final ArpTpaBuilder arpTpaBuilder = new ArpTpaBuilder();
\r
1284 arpTpaBuilder.setIpv4Address(new Ipv4Address("10.0.0.0"));
\r
1285 arpTpaBuilder.setMask(new byte[]{(byte) 255, (byte) 128, 0, 0});
\r
1286 arpTpaCaseBuilder.setArpTpa(arpTpaBuilder.build());
\r
1287 entriesBuilder.setMatchEntryValue(arpTpaCaseBuilder.build());
\r
1288 entries.add(entriesBuilder.build());
\r
1290 entriesBuilder = new MatchEntryBuilder();
\r
1291 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1292 entriesBuilder.setOxmMatchField(ArpSha.class);
\r
1293 entriesBuilder.setHasMask(true);
\r
1294 final ArpShaCaseBuilder arpShaCaseBuilder = new ArpShaCaseBuilder();
\r
1295 final ArpShaBuilder arpShaBuilder = new ArpShaBuilder();
\r
1296 arpShaBuilder.setMacAddress(new MacAddress("00:00:00:00:00:03"));
\r
1297 arpShaBuilder.setMask(new byte[]{0, 0, 1, 0, 4, 0});
\r
1298 arpShaCaseBuilder.setArpSha(arpShaBuilder.build());
\r
1299 entriesBuilder.setMatchEntryValue(arpShaCaseBuilder.build());
\r
1300 entries.add(entriesBuilder.build());
\r
1302 entriesBuilder = new MatchEntryBuilder();
\r
1303 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1304 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.ArpTha.class);
\r
1305 entriesBuilder.setHasMask(true);
\r
1306 final ArpThaCaseBuilder arpThaCaseBuilder = new ArpThaCaseBuilder();
\r
1307 final ArpThaBuilder arpThaBuilder = new ArpThaBuilder();
\r
1308 arpThaBuilder.setMacAddress(new MacAddress("00:00:00:00:00:04"));
\r
1309 arpThaBuilder.setMask(new byte[]{1, 1, 1, 2, 2, 2});
\r
1310 arpThaCaseBuilder.setArpTha(arpThaBuilder.build());
\r
1311 entriesBuilder.setMatchEntryValue(arpThaCaseBuilder.build());
\r
1312 entries.add(entriesBuilder.build());
\r
1314 builder.setMatchEntry(entries);
\r
1316 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1317 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1319 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1320 .MatchBuilder salMatchBuilder = convert(builder.build(), datapathIdConvertorData);
\r
1321 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1323 final ArpMatch arpMatch = (ArpMatch) builtMatch.getLayer3Match();
\r
1324 Assert.assertEquals("Wrong arp spa", "10.0.0.3/24", arpMatch.getArpSourceTransportAddress().getValue());
\r
1325 Assert.assertEquals("Wrong arp tpa", "10.0.0.0/9", arpMatch.getArpTargetTransportAddress().getValue());
\r
1326 Assert.assertEquals("Wrong arp sha", "00:00:00:00:00:03", arpMatch.getArpSourceHardwareAddress().getAddress().getValue());
\r
1327 Assert.assertEquals("Wrong arp sha mask", "00:00:01:00:04:00", arpMatch.getArpSourceHardwareAddress().getMask().getValue());
\r
1328 Assert.assertEquals("Wrong arp tha", "00:00:00:00:00:04", arpMatch.getArpTargetHardwareAddress().getAddress().getValue());
\r
1329 Assert.assertEquals("Wrong arp tha mask", "01:01:01:02:02:02", arpMatch.getArpTargetHardwareAddress().getMask().getValue());
\r
1333 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1336 public void testWithMatchEntryWithIpv6ArbitraryMasks() {
\r
1337 final MatchBuilder builder = new MatchBuilder();
\r
1338 builder.setType(OxmMatchType.class);
\r
1339 final List<MatchEntry> entries = new ArrayList<>();
\r
1340 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1341 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1342 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
1343 entriesBuilder.setHasMask(true);
\r
1345 entriesBuilder = new MatchEntryBuilder();
\r
1346 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1347 entriesBuilder.setOxmMatchField(Ipv6Src.class);
\r
1348 entriesBuilder.setHasMask(true);
\r
1349 final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();
\r
1350 final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();
\r
1351 ipv6SrcBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));
\r
1352 ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});
\r
1353 ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());
\r
1354 entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());
\r
1355 entries.add(entriesBuilder.build());
\r
1357 entriesBuilder = new MatchEntryBuilder();
\r
1358 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1359 entriesBuilder.setOxmMatchField(Ipv6Dst.class);
\r
1360 entriesBuilder.setHasMask(true);
\r
1361 final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();
\r
1362 final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();
\r
1363 ipv6AddressBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));
\r
1364 ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});
\r
1365 ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());
\r
1366 entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());
\r
1367 entries.add(entriesBuilder.build());
\r
1369 builder.setMatchEntry(entries);
\r
1370 final Match match = builder.build();
\r
1372 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1373 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1375 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1376 .MatchBuilder salMatchBuilder = convert(match, datapathIdConvertorData);
\r
1377 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1379 final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
1380 Assert.assertEquals("Wrong ipv6 src address", "1001:1001:1001:1001:1001:1001:1001:1001",
\r
1381 ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());
\r
1382 Assert.assertEquals("Wrong ipv6 dst address", "2002:2002:2002:2002:2002:2002:2002:2002",
\r
1383 ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());
\r
1387 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1390 public void testWithMatchEntryWithIpv6SrcCidrlMaskAndDstArbitraryBitMask() {
\r
1391 final MatchBuilder builder = new MatchBuilder();
\r
1392 builder.setType(OxmMatchType.class);
\r
1393 final List<MatchEntry> entries = new ArrayList<>();
\r
1394 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1395 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1396 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
1397 entriesBuilder.setHasMask(true);
\r
1399 entriesBuilder = new MatchEntryBuilder();
\r
1400 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1401 entriesBuilder.setOxmMatchField(Ipv6Src.class);
\r
1402 entriesBuilder.setHasMask(true);
\r
1403 final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();
\r
1404 final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();
\r
1405 ipv6SrcBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));
\r
1406 ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
\r
1407 ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());
\r
1408 entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());
\r
1409 entries.add(entriesBuilder.build());
\r
1411 entriesBuilder = new MatchEntryBuilder();
\r
1412 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1413 entriesBuilder.setOxmMatchField(Ipv6Dst.class);
\r
1414 entriesBuilder.setHasMask(true);
\r
1415 final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();
\r
1416 final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();
\r
1417 ipv6AddressBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));
\r
1418 ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});
\r
1419 ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());
\r
1420 entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());
\r
1421 entries.add(entriesBuilder.build());
\r
1423 builder.setMatchEntry(entries);
\r
1424 final Match match = builder.build();
\r
1426 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1427 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1429 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1430 .MatchBuilder salMatchBuilder = convert(match, datapathIdConvertorData);
\r
1431 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1433 final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
1434 Assert.assertEquals("Wrong ipv6 src address", "1001:1001:1001:1001:1001:1001:1001:1001",
\r
1435 ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());
\r
1436 Assert.assertEquals("Wrong ipv6 dst address", "2002:2002:2002:2002:2002:2002:2002:2002",
\r
1437 ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());
\r
1441 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1444 public void testWithMatchEntryWithIpv6SrcArbitraryBitMaskAndDstCidrMask() {
\r
1445 final MatchBuilder builder = new MatchBuilder();
\r
1446 builder.setType(OxmMatchType.class);
\r
1447 final List<MatchEntry> entries = new ArrayList<>();
\r
1448 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1449 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1450 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
1451 entriesBuilder.setHasMask(true);
\r
1453 entriesBuilder = new MatchEntryBuilder();
\r
1454 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1455 entriesBuilder.setOxmMatchField(Ipv6Src.class);
\r
1456 entriesBuilder.setHasMask(true);
\r
1457 final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();
\r
1458 final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();
\r
1459 ipv6SrcBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));
\r
1460 ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});
\r
1461 ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());
\r
1462 entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());
\r
1463 entries.add(entriesBuilder.build());
\r
1465 entriesBuilder = new MatchEntryBuilder();
\r
1466 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1467 entriesBuilder.setOxmMatchField(Ipv6Dst.class);
\r
1468 entriesBuilder.setHasMask(true);
\r
1469 final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();
\r
1470 final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();
\r
1471 ipv6AddressBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));
\r
1472 ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
\r
1473 ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());
\r
1474 entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());
\r
1475 entries.add(entriesBuilder.build());
\r
1477 builder.setMatchEntry(entries);
\r
1478 final Match match = builder.build();
\r
1480 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1481 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1483 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1484 .MatchBuilder salMatchBuilder = convert(match, datapathIdConvertorData);
\r
1485 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1487 final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
1488 Assert.assertEquals("Wrong ipv6 src address", "1001:1001:1001:1001:1001:1001:1001:1001",
\r
1489 ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());
\r
1490 Assert.assertEquals("Wrong ipv6 dst address", "2002:2002:2002:2002:2002:2002:2002:2002",
\r
1491 ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());
\r
1496 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1499 public void testWithMatchEntryWithIpv6DstArbitraryBitMaskAndSrcCidrMask() {
\r
1500 final MatchBuilder builder = new MatchBuilder();
\r
1501 builder.setType(OxmMatchType.class);
\r
1502 final List<MatchEntry> entries = new ArrayList<>();
\r
1503 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1504 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1505 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
1506 entriesBuilder.setHasMask(true);
\r
1508 entriesBuilder = new MatchEntryBuilder();
\r
1509 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1510 entriesBuilder.setOxmMatchField(Ipv6Dst.class);
\r
1511 entriesBuilder.setHasMask(true);
\r
1512 final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();
\r
1513 final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();
\r
1514 ipv6AddressBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));
\r
1515 ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});
\r
1516 ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());
\r
1517 entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());
\r
1518 entries.add(entriesBuilder.build());
\r
1520 entriesBuilder = new MatchEntryBuilder();
\r
1521 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1522 entriesBuilder.setOxmMatchField(Ipv6Src.class);
\r
1523 entriesBuilder.setHasMask(true);
\r
1524 final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();
\r
1525 final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();
\r
1526 ipv6SrcBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));
\r
1527 ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
\r
1528 ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());
\r
1529 entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());
\r
1530 entries.add(entriesBuilder.build());
\r
1532 builder.setMatchEntry(entries);
\r
1533 final Match match = builder.build();
\r
1535 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1536 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1538 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1539 .MatchBuilder salMatchBuilder = convert(match, datapathIdConvertorData);
\r
1540 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1542 final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
1543 Assert.assertEquals("Wrong ipv6 src address", "2002:2002:2002:2002:2002:2002:2002:2002",
\r
1544 ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());
\r
1545 Assert.assertEquals("Wrong ipv6 dst address", "1001:1001:1001:1001:1001:1001:1001:1001",
\r
1546 ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());
\r
1551 * Test {@link org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match.MatchResponseConvertor#convert(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.MatchEntriesGrouping, org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.data.VersionDatapathIdConvertorData)}
\r
1554 public void testWithMatchEntryWithIpv6DstCidrMaskAndSrcArbitraryBitMask() {
\r
1555 final MatchBuilder builder = new MatchBuilder();
\r
1556 builder.setType(OxmMatchType.class);
\r
1557 final List<MatchEntry> entries = new ArrayList<>();
\r
1558 MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();
\r
1559 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1560 entriesBuilder.setOxmMatchField(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Metadata.class);
\r
1561 entriesBuilder.setHasMask(true);
\r
1563 entriesBuilder = new MatchEntryBuilder();
\r
1564 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1565 entriesBuilder.setOxmMatchField(Ipv6Dst.class);
\r
1566 entriesBuilder.setHasMask(true);
\r
1567 final Ipv6DstCaseBuilder ipv6DstCaseBuilder = new Ipv6DstCaseBuilder();
\r
1568 final Ipv6DstBuilder ipv6AddressBuilder = new Ipv6DstBuilder();
\r
1569 ipv6AddressBuilder.setIpv6Address(new Ipv6Address("1001:1001:1001:1001:1001:1001:1001:1001"));
\r
1570 ipv6AddressBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0});
\r
1571 ipv6DstCaseBuilder.setIpv6Dst(ipv6AddressBuilder.build());
\r
1572 entriesBuilder.setMatchEntryValue(ipv6DstCaseBuilder.build());
\r
1573 entries.add(entriesBuilder.build());
\r
1575 entriesBuilder = new MatchEntryBuilder();
\r
1576 entriesBuilder.setOxmClass(OpenflowBasicClass.class);
\r
1577 entriesBuilder.setOxmMatchField(Ipv6Src.class);
\r
1578 entriesBuilder.setHasMask(true);
\r
1579 final Ipv6SrcCaseBuilder ipv6SrcCaseBuilder = new Ipv6SrcCaseBuilder();
\r
1580 final Ipv6SrcBuilder ipv6SrcBuilder = new Ipv6SrcBuilder();
\r
1581 ipv6SrcBuilder.setIpv6Address(new Ipv6Address("2002:2002:2002:2002:2002:2002:2002:2002"));
\r
1582 ipv6SrcBuilder.setMask(new byte[]{(byte) 255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,(byte) 255});
\r
1583 ipv6SrcCaseBuilder.setIpv6Src(ipv6SrcBuilder.build());
\r
1584 entriesBuilder.setMatchEntryValue(ipv6SrcCaseBuilder.build());
\r
1585 entries.add(entriesBuilder.build());
\r
1587 builder.setMatchEntry(entries);
\r
1588 final Match match = builder.build();
\r
1590 final VersionDatapathIdConvertorData datapathIdConvertorData = new VersionDatapathIdConvertorData(OFConstants.OFP_VERSION_1_3);
\r
1591 datapathIdConvertorData.setDatapathId(new BigInteger("42"));
\r
1593 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1594 .MatchBuilder salMatchBuilder = convert(match, datapathIdConvertorData);
\r
1595 final org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match builtMatch = salMatchBuilder.build();
\r
1597 final Ipv6MatchArbitraryBitMask ipv6MatchArbitraryBitMask = (Ipv6MatchArbitraryBitMask) builtMatch.getLayer3Match();
\r
1598 Assert.assertEquals("Wrong ipv6 src address", "2002:2002:2002:2002:2002:2002:2002:2002",
\r
1599 ipv6MatchArbitraryBitMask.getIpv6SourceAddressNoMask().getValue());
\r
1600 Assert.assertEquals("Wrong ipv6 dst address", "1001:1001:1001:1001:1001:1001:1001:1001",
\r
1601 ipv6MatchArbitraryBitMask.getIpv6DestinationAddressNoMask().getValue());
\r
1604 private org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1605 .MatchBuilder convert(Match match, VersionDatapathIdConvertorData data) {
\r
1606 final Optional<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow
\r
1607 .MatchBuilder> salMatchOptional = ConvertorManager.getInstance().convert(match, data);
\r
1609 return salMatchOptional
\r
1610 .orElse(new org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder());
\r