Ray Milkey

Add unit test for Instructions class and improve Criteria toString() test

Change-Id: Ie1ffb4ca0c0bcd168625213fecbdb3818a61704e
...@@ -119,7 +119,7 @@ public abstract class L2ModificationInstruction implements Instruction { ...@@ -119,7 +119,7 @@ public abstract class L2ModificationInstruction implements Instruction {
119 */ 119 */
120 public static final class ModVlanIdInstruction extends L2ModificationInstruction { 120 public static final class ModVlanIdInstruction extends L2ModificationInstruction {
121 121
122 - public final VlanId vlanId; 122 + private final VlanId vlanId;
123 123
124 public ModVlanIdInstruction(VlanId vlanId) { 124 public ModVlanIdInstruction(VlanId vlanId) {
125 this.vlanId = vlanId; 125 this.vlanId = vlanId;
...@@ -168,7 +168,7 @@ public abstract class L2ModificationInstruction implements Instruction { ...@@ -168,7 +168,7 @@ public abstract class L2ModificationInstruction implements Instruction {
168 */ 168 */
169 public static final class ModVlanPcpInstruction extends L2ModificationInstruction { 169 public static final class ModVlanPcpInstruction extends L2ModificationInstruction {
170 170
171 - public final Byte vlanPcp; 171 + private final Byte vlanPcp;
172 172
173 public ModVlanPcpInstruction(Byte vlanPcp) { 173 public ModVlanPcpInstruction(Byte vlanPcp) {
174 this.vlanPcp = vlanPcp; 174 this.vlanPcp = vlanPcp;
......
...@@ -116,7 +116,7 @@ public class CriteriaTest { ...@@ -116,7 +116,7 @@ public class CriteriaTest {
116 private <T> T checkAndConvert(Criterion criterion, Criterion.Type type, Class clazz) { 116 private <T> T checkAndConvert(Criterion criterion, Criterion.Type type, Class clazz) {
117 assertThat(criterion, is(notNullValue())); 117 assertThat(criterion, is(notNullValue()));
118 assertThat(criterion.type(), is(equalTo(type))); 118 assertThat(criterion.type(), is(equalTo(type)));
119 - assertThat(criterion, is(instanceOf(clazz))); 119 + assertThat(criterion, instanceOf(clazz));
120 return (T) criterion; 120 return (T) criterion;
121 } 121 }
122 122
...@@ -131,16 +131,19 @@ public class CriteriaTest { ...@@ -131,16 +131,19 @@ public class CriteriaTest {
131 */ 131 */
132 private <T extends Criterion> void checkEqualsAndToString(T c1, T c1match, 132 private <T extends Criterion> void checkEqualsAndToString(T c1, T c1match,
133 T c2, Class clazz) { 133 T c2, Class clazz) {
134 - assertThat(c1, is(instanceOf(clazz))); 134 + assertThat(c1, instanceOf(clazz));
135 - assertThat(c1match, is(instanceOf(clazz))); 135 + assertThat(c1match, instanceOf(clazz));
136 - assertThat(c2, is(instanceOf(clazz))); 136 + assertThat(c2, instanceOf(clazz));
137 137
138 assertThat(c1, is(equalTo(c1match))); 138 assertThat(c1, is(equalTo(c1match)));
139 assertThat(c1, is(not(equalTo(c2)))); 139 assertThat(c1, is(not(equalTo(c2))));
140 assertThat(c1, is(not(equalTo(new Object())))); 140 assertThat(c1, is(not(equalTo(new Object()))));
141 141
142 - // Make sure the enumerated type appears in the toString() output. 142 + // Make sure the enumerated type appears in the toString() output and
143 + // the toString output is unique.
143 assertThat(c1.toString(), containsString(c1.type().toString())); 144 assertThat(c1.toString(), containsString(c1.type().toString()));
145 + assertThat(c1.toString(), equalTo(c1match.toString()));
146 + assertThat(c1.toString(), not(equalTo(c2.toString())));
144 } 147 }
145 148
146 149
......
1 +/*
2 + * Copyright 2014 Open Networking Laboratory
3 + *
4 + * Licensed under the Apache License, Version 2.0 (the "License");
5 + * you may not use this file except in compliance with the License.
6 + * You may obtain a copy of the License at
7 + *
8 + * http://www.apache.org/licenses/LICENSE-2.0
9 + *
10 + * Unless required by applicable law or agreed to in writing, software
11 + * distributed under the License is distributed on an "AS IS" BASIS,
12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 + * See the License for the specific language governing permissions and
14 + * limitations under the License.
15 + */
16 +package org.onlab.onos.net.flow.instructions;
17 +
18 +import org.junit.Test;
19 +import org.onlab.onos.net.PortNumber;
20 +import org.onlab.packet.IpAddress;
21 +import org.onlab.packet.IpPrefix;
22 +import org.onlab.packet.MacAddress;
23 +import org.onlab.packet.VlanId;
24 +
25 +import static org.hamcrest.MatcherAssert.assertThat;
26 +import static org.hamcrest.Matchers.containsString;
27 +import static org.hamcrest.Matchers.equalTo;
28 +import static org.hamcrest.Matchers.instanceOf;
29 +import static org.hamcrest.Matchers.is;
30 +import static org.hamcrest.Matchers.not;
31 +import static org.hamcrest.Matchers.notNullValue;
32 +import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
33 +import static org.onlab.junit.UtilityClassChecker.assertThatClassIsUtility;
34 +import static org.onlab.onos.net.PortNumber.portNumber;
35 +
36 +/**
37 + * Unit tests for the Instructions class.
38 + */
39 +public class InstructionsTest {
40 +
41 + /**
42 + * Checks that a Criterion object has the proper type, and then converts
43 + * it to the proper type.
44 + *
45 + * @param instruction Instruction object to convert
46 + * @param type Enumerated type value for the Criterion class
47 + * @param clazz Desired Criterion class
48 + * @param <T> The type the caller wants returned
49 + * @return converted object
50 + */
51 + @SuppressWarnings("unchecked")
52 + private <T> T checkAndConvert(Instruction instruction, Instruction.Type type, Class clazz) {
53 + assertThat(instruction, is(notNullValue()));
54 + assertThat(instruction.type(), is(equalTo(type)));
55 + assertThat(instruction, instanceOf(clazz));
56 + return (T) instruction;
57 + }
58 +
59 + /**
60 + * Checks the equals() and toString() methods of a Criterion class.
61 + *
62 + * @param c1 first object to compare
63 + * @param c1match object that should be equal to the first
64 + * @param c2 object that should be not equal to the first
65 + * @param clazz Class object for the Criterion subclass
66 + * @param <T> type of the arguments
67 + */
68 + private <T extends Instruction> void checkEqualsAndToString(T c1, T c1match,
69 + T c2, Class clazz) {
70 + assertThat(c1, instanceOf(clazz));
71 + assertThat(c1match, instanceOf(clazz));
72 + assertThat(c2, instanceOf(clazz));
73 +
74 + assertThat(c1, is(equalTo(c1match)));
75 + assertThat(c1, is(not(equalTo(c2))));
76 + assertThat(c1, is(not(equalTo(new Object()))));
77 +
78 + // Make sure the toString() output is unique and correct.
79 + assertThat(c1.toString(), containsString("{"));
80 + assertThat(c1.toString(), equalTo(c1match.toString()));
81 + assertThat(c1.toString(), not(equalTo(c2.toString())));
82 + }
83 +
84 + /**
85 + * Checks that Instructions is a proper utility class.
86 + */
87 + @Test
88 + public void testInstructionsUtilityClass() {
89 + assertThatClassIsUtility(Instructions.class);
90 + }
91 +
92 + /**
93 + * Checks that the Instruction class implementations are immutable.
94 + */
95 + @Test
96 + public void testImmutabilityOfInstructions() {
97 + assertThatClassIsImmutable(Instructions.DropInstruction.class);
98 + assertThatClassIsImmutable(Instructions.OutputInstruction.class);
99 + assertThatClassIsImmutable(L0ModificationInstruction.ModLambdaInstruction.class);
100 + assertThatClassIsImmutable(L2ModificationInstruction.ModEtherInstruction.class);
101 + assertThatClassIsImmutable(L2ModificationInstruction.ModVlanIdInstruction.class);
102 + assertThatClassIsImmutable(L2ModificationInstruction.ModVlanPcpInstruction.class);
103 + assertThatClassIsImmutable(L3ModificationInstruction.ModIPInstruction.class);
104 + }
105 +
106 + // DropInstruction
107 +
108 + private final Instructions.DropInstruction drop1 = Instructions.createDrop();
109 + private final Instructions.DropInstruction drop2 = Instructions.createDrop();
110 +
111 + /**
112 + * Test the createDrop method.
113 + */
114 + @Test
115 + public void testCreateDropMethod() {
116 + Instructions.DropInstruction instruction = Instructions.createDrop();
117 + checkAndConvert(instruction,
118 + Instruction.Type.DROP,
119 + Instructions.DropInstruction.class);
120 + }
121 +
122 + /**
123 + * Test the equals() method of the DropInstruction class.
124 + */
125 +
126 + @Test
127 + public void testDropInstructionEquals() throws Exception {
128 + assertThat(drop1, is(equalTo(drop2)));
129 + }
130 +
131 + /**
132 + * Test the hashCode() method of the DropInstruction class.
133 + */
134 +
135 + @Test
136 + public void testDropInstructionHashCode() {
137 + assertThat(drop1.hashCode(), is(equalTo(drop2.hashCode())));
138 + }
139 +
140 + // OutputInstruction
141 +
142 + private final PortNumber port1 = portNumber(1);
143 + private final PortNumber port2 = portNumber(2);
144 + private final Instructions.OutputInstruction output1 = Instructions.createOutput(port1);
145 + private final Instructions.OutputInstruction sameAsOutput1 = Instructions.createOutput(port1);
146 + private final Instructions.OutputInstruction output2 = Instructions.createOutput(port2);
147 +
148 + /**
149 + * Test the createOutput method.
150 + */
151 + @Test
152 + public void testCreateOutputMethod() {
153 + final Instruction instruction = Instructions.createOutput(port2);
154 + final Instructions.OutputInstruction outputInstruction =
155 + checkAndConvert(instruction,
156 + Instruction.Type.OUTPUT,
157 + Instructions.OutputInstruction.class);
158 + assertThat(outputInstruction.port(), is(equalTo(port2)));
159 + }
160 +
161 +
162 + /**
163 + * Test the equals() method of the OutputInstruction class.
164 + */
165 +
166 + @Test
167 + public void testOutputInstructionEquals() throws Exception {
168 + checkEqualsAndToString(output1, sameAsOutput1, output2,
169 + Instructions.OutputInstruction.class);
170 + }
171 +
172 + /**
173 + * Test the hashCode() method of the OutputInstruction class.
174 + */
175 +
176 + @Test
177 + public void testOutputInstructionHashCode() {
178 + assertThat(output1.hashCode(), is(equalTo(sameAsOutput1.hashCode())));
179 + assertThat(output1.hashCode(), is(not(equalTo(output2.hashCode()))));
180 + }
181 +
182 + // ModLambdaInstruction
183 +
184 + private final short lambda1 = 1;
185 + private final short lambda2 = 2;
186 + private final Instruction lambdaInstruction1 = Instructions.modL0Lambda(lambda1);
187 + private final Instruction sameAsLambdaInstruction1 = Instructions.modL0Lambda(lambda1);
188 + private final Instruction lambdaInstruction2 = Instructions.modL0Lambda(lambda2);
189 +
190 + /**
191 + * Test the modL0Lambda method.
192 + */
193 + @Test
194 + public void testCreateLambdaMethod() {
195 + final Instruction instruction = Instructions.modL0Lambda(lambda1);
196 + final L0ModificationInstruction.ModLambdaInstruction lambdaInstruction =
197 + checkAndConvert(instruction,
198 + Instruction.Type.L0MODIFICATION,
199 + L0ModificationInstruction.ModLambdaInstruction.class);
200 + assertThat(lambdaInstruction.lambda(), is(equalTo(lambda1)));
201 + }
202 +
203 +
204 + /**
205 + * Test the equals() method of the ModLambdaInstruction class.
206 + */
207 +
208 + @Test
209 + public void testModLambdaInstructionEquals() throws Exception {
210 + checkEqualsAndToString(lambdaInstruction1,
211 + sameAsLambdaInstruction1,
212 + lambdaInstruction2,
213 + L0ModificationInstruction.ModLambdaInstruction.class);
214 + }
215 +
216 + /**
217 + * Test the hashCode() method of the ModLambdaInstruction class.
218 + */
219 +
220 + @Test
221 + public void testModLambdaInstructionHashCode() {
222 + assertThat(lambdaInstruction1.hashCode(),
223 + is(equalTo(sameAsLambdaInstruction1.hashCode())));
224 + assertThat(lambdaInstruction1.hashCode(),
225 + is(not(equalTo(lambdaInstruction2.hashCode()))));
226 + }
227 +
228 + // ModEtherInstruction
229 +
230 + private static final String MAC1 = "00:00:00:00:00:01";
231 + private static final String MAC2 = "00:00:00:00:00:02";
232 + private final MacAddress mac1 = MacAddress.valueOf(MAC1);
233 + private final MacAddress mac2 = MacAddress.valueOf(MAC2);
234 + private final Instruction modEtherInstruction1 = Instructions.modL2Src(mac1);
235 + private final Instruction sameAsModEtherInstruction1 = Instructions.modL2Src(mac1);
236 + private final Instruction modEtherInstruction2 = Instructions.modL2Src(mac2);
237 +
238 + /**
239 + * Test the modL2Src method.
240 + */
241 + @Test
242 + public void testModL2SrcMethod() {
243 + final Instruction instruction = Instructions.modL2Src(mac1);
244 + final L2ModificationInstruction.ModEtherInstruction modEtherInstruction =
245 + checkAndConvert(instruction,
246 + Instruction.Type.L2MODIFICATION,
247 + L2ModificationInstruction.ModEtherInstruction.class);
248 + assertThat(modEtherInstruction.mac(), is(equalTo(mac1)));
249 + assertThat(modEtherInstruction.subtype(),
250 + is(equalTo(L2ModificationInstruction.L2SubType.ETH_SRC)));
251 + }
252 +
253 + /**
254 + * Test the modL2Dst method.
255 + */
256 + @Test
257 + public void testModL2DstMethod() {
258 + final Instruction instruction = Instructions.modL2Dst(mac1);
259 + final L2ModificationInstruction.ModEtherInstruction modEtherInstruction =
260 + checkAndConvert(instruction,
261 + Instruction.Type.L2MODIFICATION,
262 + L2ModificationInstruction.ModEtherInstruction.class);
263 + assertThat(modEtherInstruction.mac(), is(equalTo(mac1)));
264 + assertThat(modEtherInstruction.subtype(),
265 + is(equalTo(L2ModificationInstruction.L2SubType.ETH_DST)));
266 + }
267 +
268 + /**
269 + * Test the equals() method of the ModEtherInstruction class.
270 + */
271 +
272 + @Test
273 + public void testModEtherInstructionEquals() throws Exception {
274 + checkEqualsAndToString(modEtherInstruction1,
275 + sameAsModEtherInstruction1,
276 + modEtherInstruction2,
277 + L2ModificationInstruction.ModEtherInstruction.class);
278 + }
279 +
280 + /**
281 + * Test the hashCode() method of the ModEtherInstruction class.
282 + */
283 +
284 + @Test
285 + public void testModEtherInstructionHashCode() {
286 + assertThat(modEtherInstruction1.hashCode(),
287 + is(equalTo(sameAsModEtherInstruction1.hashCode())));
288 + assertThat(modEtherInstruction1.hashCode(),
289 + is(not(equalTo(modEtherInstruction2.hashCode()))));
290 + }
291 +
292 +
293 + // ModVlanIdInstruction
294 +
295 + private final short vlan1 = 1;
296 + private final short vlan2 = 2;
297 + private final VlanId vlanId1 = VlanId.vlanId(vlan1);
298 + private final VlanId vlanId2 = VlanId.vlanId(vlan2);
299 + private final Instruction modVlanId1 = Instructions.modVlanId(vlanId1);
300 + private final Instruction sameAsModVlanId1 = Instructions.modVlanId(vlanId1);
301 + private final Instruction modVlanId2 = Instructions.modVlanId(vlanId2);
302 +
303 + /**
304 + * Test the modVlanId method.
305 + */
306 + @Test
307 + public void testModVlanIdMethod() {
308 + final Instruction instruction = Instructions.modVlanId(vlanId1);
309 + final L2ModificationInstruction.ModVlanIdInstruction modEtherInstruction =
310 + checkAndConvert(instruction,
311 + Instruction.Type.L2MODIFICATION,
312 + L2ModificationInstruction.ModVlanIdInstruction.class);
313 + assertThat(modEtherInstruction.vlanId(), is(equalTo(vlanId1)));
314 + assertThat(modEtherInstruction.subtype(),
315 + is(equalTo(L2ModificationInstruction.L2SubType.VLAN_ID)));
316 + }
317 +
318 + /**
319 + * Test the equals() method of the ModVlanIdInstruction class.
320 + */
321 +
322 + @Test
323 + public void testModVlanIdInstructionEquals() throws Exception {
324 + checkEqualsAndToString(modVlanId1,
325 + sameAsModVlanId1,
326 + modVlanId2,
327 + L2ModificationInstruction.ModVlanIdInstruction.class);
328 + }
329 +
330 + /**
331 + * Test the hashCode() method of the ModEtherInstruction class.
332 + */
333 +
334 + @Test
335 + public void testModVlanIdInstructionHashCode() {
336 + assertThat(modVlanId1.hashCode(),
337 + is(equalTo(sameAsModVlanId1.hashCode())));
338 + assertThat(modVlanId1.hashCode(),
339 + is(not(equalTo(modVlanId2.hashCode()))));
340 + }
341 +
342 +
343 + // ModVlanPcpInstruction
344 +
345 + private final byte vlanPcp1 = 1;
346 + private final byte vlanPcp2 = 2;
347 + private final Instruction modVlanPcp1 = Instructions.modVlanPcp(vlanPcp1);
348 + private final Instruction sameAsModVlanPcp1 = Instructions.modVlanPcp(vlanPcp1);
349 + private final Instruction modVlanPcp2 = Instructions.modVlanPcp(vlanPcp2);
350 +
351 + /**
352 + * Test the modVlanPcp method.
353 + */
354 + @Test
355 + public void testModVlanPcpMethod() {
356 + final Instruction instruction = Instructions.modVlanPcp(vlanPcp1);
357 + final L2ModificationInstruction.ModVlanPcpInstruction modEtherInstruction =
358 + checkAndConvert(instruction,
359 + Instruction.Type.L2MODIFICATION,
360 + L2ModificationInstruction.ModVlanPcpInstruction.class);
361 + assertThat(modEtherInstruction.vlanPcp(), is(equalTo(vlanPcp1)));
362 + assertThat(modEtherInstruction.subtype(),
363 + is(equalTo(L2ModificationInstruction.L2SubType.VLAN_PCP)));
364 + }
365 +
366 + /**
367 + * Test the equals() method of the ModVlanPcpInstruction class.
368 + */
369 +
370 + @Test
371 + public void testModVlanPcpInstructionEquals() throws Exception {
372 + checkEqualsAndToString(modVlanPcp1,
373 + sameAsModVlanPcp1,
374 + modVlanPcp2,
375 + L2ModificationInstruction.ModVlanPcpInstruction.class);
376 + }
377 +
378 + /**
379 + * Test the hashCode() method of the ModEtherInstruction class.
380 + */
381 +
382 + @Test
383 + public void testModVlanPcpInstructionHashCode() {
384 + assertThat(modVlanPcp1.hashCode(),
385 + is(equalTo(sameAsModVlanPcp1.hashCode())));
386 + assertThat(modVlanPcp1.hashCode(),
387 + is(not(equalTo(modVlanPcp2.hashCode()))));
388 + }
389 +
390 + // ModIPerInstruction
391 +
392 + private static final String IP1 = "1.2.3.4/24";
393 + private static final String IP2 = "5.6.7.8/24";
394 + private IpAddress ip1 = IpPrefix.valueOf(IP1).address();
395 + private IpAddress ip2 = IpPrefix.valueOf(IP2).address();
396 + private final Instruction modIPInstruction1 = Instructions.modL3Src(ip1);
397 + private final Instruction sameAsModIPInstruction1 = Instructions.modL3Src(ip1);
398 + private final Instruction modIPInstruction2 = Instructions.modL3Src(ip2);
399 +
400 + /**
401 + * Test the modL3Src method.
402 + */
403 + @Test
404 + public void testModL3SrcMethod() {
405 + final Instruction instruction = Instructions.modL3Src(ip1);
406 + final L3ModificationInstruction.ModIPInstruction modIPInstruction =
407 + checkAndConvert(instruction,
408 + Instruction.Type.L3MODIFICATION,
409 + L3ModificationInstruction.ModIPInstruction.class);
410 + assertThat(modIPInstruction.ip(), is(equalTo(ip1)));
411 + assertThat(modIPInstruction.subtype(),
412 + is(equalTo(L3ModificationInstruction.L3SubType.IP_SRC)));
413 + }
414 +
415 + /**
416 + * Test the modL3Dst method.
417 + */
418 + @Test
419 + public void testModL3DstMethod() {
420 + final Instruction instruction = Instructions.modL3Dst(ip1);
421 + final L3ModificationInstruction.ModIPInstruction modIPInstruction =
422 + checkAndConvert(instruction,
423 + Instruction.Type.L3MODIFICATION,
424 + L3ModificationInstruction.ModIPInstruction.class);
425 + assertThat(modIPInstruction.ip(), is(equalTo(ip1)));
426 + assertThat(modIPInstruction.subtype(),
427 + is(equalTo(L3ModificationInstruction.L3SubType.IP_DST)));
428 + }
429 +
430 + /**
431 + * Test the equals() method of the ModEtherInstruction class.
432 + */
433 +
434 + @Test
435 + public void testModIPInstructionEquals() throws Exception {
436 + checkEqualsAndToString(modIPInstruction1,
437 + sameAsModIPInstruction1,
438 + modIPInstruction2,
439 + L3ModificationInstruction.ModIPInstruction.class);
440 + }
441 +
442 + /**
443 + * Test the hashCode() method of the ModEtherInstruction class.
444 + */
445 +
446 + @Test
447 + public void testModIPInstructionHashCode() {
448 + assertThat(modIPInstruction1.hashCode(),
449 + is(equalTo(sameAsModIPInstruction1.hashCode())));
450 + assertThat(modIPInstruction1.hashCode(),
451 + is(not(equalTo(modIPInstruction2.hashCode()))));
452 + }
453 +
454 +
455 +}
...@@ -192,7 +192,7 @@ public class FlowModBuilderVer10 extends FlowModBuilder { ...@@ -192,7 +192,7 @@ public class FlowModBuilderVer10 extends FlowModBuilder {
192 return factory().actions().setDlSrc(MacAddress.of(eth.mac().toLong())); 192 return factory().actions().setDlSrc(MacAddress.of(eth.mac().toLong()));
193 case VLAN_ID: 193 case VLAN_ID:
194 ModVlanIdInstruction vlanId = (ModVlanIdInstruction) l2m; 194 ModVlanIdInstruction vlanId = (ModVlanIdInstruction) l2m;
195 - return factory().actions().setVlanVid(VlanVid.ofVlan(vlanId.vlanId.toShort())); 195 + return factory().actions().setVlanVid(VlanVid.ofVlan(vlanId.vlanId().toShort()));
196 case VLAN_PCP: 196 case VLAN_PCP:
197 ModVlanPcpInstruction vlanPcp = (ModVlanPcpInstruction) l2m; 197 ModVlanPcpInstruction vlanPcp = (ModVlanPcpInstruction) l2m;
198 return factory().actions().setVlanPcp(VlanPcp.of(vlanPcp.vlanPcp())); 198 return factory().actions().setVlanPcp(VlanPcp.of(vlanPcp.vlanPcp()));
......
...@@ -210,11 +210,11 @@ public class FlowModBuilderVer13 extends FlowModBuilder { ...@@ -210,11 +210,11 @@ public class FlowModBuilderVer13 extends FlowModBuilder {
210 break; 210 break;
211 case VLAN_ID: 211 case VLAN_ID:
212 ModVlanIdInstruction vlanId = (ModVlanIdInstruction) l2m; 212 ModVlanIdInstruction vlanId = (ModVlanIdInstruction) l2m;
213 - oxm = factory().oxms().vlanVid(OFVlanVidMatch.ofVlan(vlanId.vlanId.toShort())); 213 + oxm = factory().oxms().vlanVid(OFVlanVidMatch.ofVlan(vlanId.vlanId().toShort()));
214 break; 214 break;
215 case VLAN_PCP: 215 case VLAN_PCP:
216 ModVlanPcpInstruction vlanPcp = (ModVlanPcpInstruction) l2m; 216 ModVlanPcpInstruction vlanPcp = (ModVlanPcpInstruction) l2m;
217 - oxm = factory().oxms().vlanPcp(VlanPcp.of(vlanPcp.vlanPcp)); 217 + oxm = factory().oxms().vlanPcp(VlanPcp.of(vlanPcp.vlanPcp()));
218 break; 218 break;
219 default: 219 default:
220 log.warn("Unimplemented action type {}.", l2m.subtype()); 220 log.warn("Unimplemented action type {}.", l2m.subtype());
......