BUG-2794: incorporate openflowjava api changes to openflowplugin
[openflowplugin.git] / openflowplugin / src / test / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / TableFeaturesReplyConvertorTest.java
1 /*\r
2  * Copyright (c) 2014 Pantheon Technologies s.r.o. and others. All rights reserved.\r
3  *\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
7  */\r
8 \r
9 package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor;\r
10 \r
11 import java.math.BigInteger;\r
12 import java.util.ArrayList;\r
13 import java.util.List;\r
14 \r
15 import org.junit.Assert;\r
16 import org.junit.Test;\r
17 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionRelatedTableFeatureProperty;\r
18 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.ActionRelatedTableFeaturePropertyBuilder;\r
19 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.InstructionRelatedTableFeatureProperty;\r
20 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.InstructionRelatedTableFeaturePropertyBuilder;\r
21 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.NextTableRelatedTableFeatureProperty;\r
22 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.NextTableRelatedTableFeaturePropertyBuilder;\r
23 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.OxmRelatedTableFeatureProperty;\r
24 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.OxmRelatedTableFeaturePropertyBuilder;\r
25 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.table.features.properties.container.table.feature.properties.NextTableIds;\r
26 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev150225.table.features.properties.container.table.feature.properties.NextTableIdsBuilder;\r
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlIn;\r
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.CopyTtlOut;\r
29 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.DecMplsTtl;\r
30 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Group;\r
31 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Output;\r
32 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopPbb;\r
33 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PopVlan;\r
34 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushPbb;\r
35 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.PushVlan;\r
36 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetField;\r
37 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetMplsTtl;\r
38 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.SetNwTtl;\r
39 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action;\r
40 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.ActionBuilder;\r
41 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ApplyActions;\r
42 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.ClearActions;\r
43 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.GotoTable;\r
44 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.Meter;\r
45 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteActions;\r
46 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.WriteMetadata;\r
47 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction;\r
48 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.InstructionBuilder;\r
49 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableConfig;\r
50 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.TableFeaturesPropType;\r
51 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthDst;\r
52 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.EthSrc;\r
53 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPhyPort;\r
54 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.InPort;\r
55 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpEcn;\r
56 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.IpProto;\r
57 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.Ipv6Exthdr;\r
58 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.OpenflowBasicClass;\r
59 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.TcpSrc;\r
60 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpDst;\r
61 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.UdpSrc;\r
62 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanPcp;\r
63 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.VlanVid;\r
64 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry;\r
65 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntryBuilder;\r
66 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.MultipartReplyTableFeaturesBuilder;\r
67 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features.TableFeaturesBuilder;\r
68 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeatureProperties;\r
69 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.table.features.properties.grouping.TableFeaturePropertiesBuilder;\r
70 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.set.field.match.SetFieldMatch;\r
71 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfield;\r
72 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfieldMiss;\r
73 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Instructions;\r
74 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.InstructionsMiss;\r
75 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match;\r
76 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTable;\r
77 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTableMiss;\r
78 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Wildcards;\r
79 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield;\r
80 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss;\r
81 import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.TableFeatures;\r
82 \r
83 /**\r
84  * @author michal.polkorab\r
85  *\r
86  */\r
87 public class TableFeaturesReplyConvertorTest {\r
88 \r
89     /**\r
90      * Incorrect / empty input test\r
91      */\r
92     @Test\r
93     public void test() {\r
94         List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(null);\r
95         Assert.assertEquals("Returned list is not empty", 0, list.size());\r
96     }\r
97 \r
98     /**\r
99      * Incorrect / empty input test\r
100      */\r
101     @Test\r
102     public void test2() {\r
103         MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();\r
104         List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());\r
105         Assert.assertEquals("Returned list is not empty", 0, list.size());\r
106     }\r
107 \r
108     /**\r
109      * Test correct input - without table properties\r
110      */\r
111     @Test\r
112     public void testWithMPTableFeature() {\r
113         MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();\r
114         List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart\r
115         .reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features\r
116         .TableFeatures> features = new ArrayList<>();\r
117         TableFeaturesBuilder featuresBuilder = new TableFeaturesBuilder();\r
118         featuresBuilder.setTableId((short) 5);\r
119         featuresBuilder.setName("Aloha");\r
120         byte[] metaMatch = new byte[]{0, 1, 2, 3, 4, 5, 6, 7};\r
121         featuresBuilder.setMetadataMatch(metaMatch);\r
122         byte[] metaWrite = new byte[]{8, 9, 10, 11, 12, 13, 14, 15};\r
123         featuresBuilder.setMetadataWrite(metaWrite);\r
124         featuresBuilder.setConfig(new TableConfig(false));\r
125         featuresBuilder.setMaxEntries(42L);\r
126         features.add(featuresBuilder.build());\r
127         builder.setTableFeatures(features);\r
128         List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());\r
129         Assert.assertEquals("Returned empty list", 1, list.size());\r
130         TableFeatures feature = list.get(0);\r
131         Assert.assertEquals("Wrong table-id", 5, feature.getTableId().intValue());\r
132         Assert.assertEquals("Wrong name", "Aloha", feature.getName());\r
133         Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch), feature.getMetadataMatch());\r
134         Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite), feature.getMetadataWrite());\r
135         Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());\r
136         Assert.assertEquals("Wrong max-entries", 42, feature.getMaxEntries().intValue());\r
137         Assert.assertEquals("Wrong properties", 0, feature.getTableProperties().getTableFeatureProperties().size());\r
138     }\r
139 \r
140     /**\r
141      * Test correct input\r
142      */\r
143     @Test\r
144     public void testWithMPTableFeatureWithProperties() {\r
145         MultipartReplyTableFeaturesBuilder builder = new MultipartReplyTableFeaturesBuilder();\r
146         List<org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart\r
147         .reply.multipart.reply.body.multipart.reply.table.features._case.multipart.reply.table.features\r
148         .TableFeatures> features = new ArrayList<>();\r
149         TableFeaturesBuilder featuresBuilder = new TableFeaturesBuilder();\r
150         featuresBuilder.setTableId((short) 5);\r
151         featuresBuilder.setName("Aloha");\r
152         byte[] metaMatch = new byte[]{0, 1, 2, 3, 4, 5, 6, 7};\r
153         featuresBuilder.setMetadataMatch(metaMatch);\r
154         byte[] metaWrite = new byte[]{8, 9, 10, 11, 12, 13, 14, 15};\r
155         featuresBuilder.setMetadataWrite(metaWrite);\r
156         featuresBuilder.setConfig(new TableConfig(false));\r
157         featuresBuilder.setMaxEntries(42L);\r
158         List<TableFeatureProperties> properties = new ArrayList<>();\r
159         TableFeaturePropertiesBuilder propBuilder = new TableFeaturePropertiesBuilder();\r
160         propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLES);\r
161         NextTableRelatedTableFeaturePropertyBuilder nextPropBuilder =\r
162                 new NextTableRelatedTableFeaturePropertyBuilder();\r
163         List<NextTableIds> nextIds = new ArrayList<>();\r
164         nextIds.add(new NextTableIdsBuilder().setTableId((short) 1).build());\r
165         nextIds.add(new NextTableIdsBuilder().setTableId((short) 2).build());\r
166         nextPropBuilder.setNextTableIds(nextIds);\r
167         propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());\r
168         properties.add(propBuilder.build());\r
169         propBuilder = new TableFeaturePropertiesBuilder();\r
170         propBuilder.setType(TableFeaturesPropType.OFPTFPTNEXTTABLESMISS);\r
171         nextPropBuilder = new NextTableRelatedTableFeaturePropertyBuilder();\r
172         nextIds = new ArrayList<>();\r
173         nextIds.add(new NextTableIdsBuilder().setTableId((short) 3).build());\r
174         nextPropBuilder.setNextTableIds(nextIds);\r
175         propBuilder.addAugmentation(NextTableRelatedTableFeatureProperty.class, nextPropBuilder.build());\r
176         properties.add(propBuilder.build());\r
177         propBuilder = new TableFeaturePropertiesBuilder();\r
178         propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONS);\r
179         InstructionRelatedTableFeaturePropertyBuilder insPropBuilder =\r
180                 new InstructionRelatedTableFeaturePropertyBuilder();\r
181         List<Instruction> insIds = new ArrayList<>();\r
182         InstructionBuilder insBuilder = new InstructionBuilder();\r
183         insBuilder.setType(WriteActions.class);\r
184         insIds.add(insBuilder.build());\r
185         insBuilder = new InstructionBuilder();\r
186         insBuilder.setType(GotoTable.class);\r
187         insIds.add(insBuilder.build());\r
188         insPropBuilder.setInstruction(insIds);\r
189         propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
190         properties.add(propBuilder.build());\r
191         propBuilder = new TableFeaturePropertiesBuilder();\r
192         propBuilder.setType(TableFeaturesPropType.OFPTFPTINSTRUCTIONSMISS);\r
193         insPropBuilder = new InstructionRelatedTableFeaturePropertyBuilder();\r
194         insIds = new ArrayList<>();\r
195         insBuilder = new InstructionBuilder();\r
196         insBuilder.setType(WriteMetadata.class);\r
197         insIds.add(insBuilder.build());\r
198         insBuilder = new InstructionBuilder();\r
199         insBuilder.setType(ApplyActions.class);\r
200         insIds.add(insBuilder.build());\r
201         insBuilder = new InstructionBuilder();\r
202         insBuilder.setType(Meter.class);\r
203         insIds.add(insBuilder.build());\r
204         insBuilder = new InstructionBuilder();\r
205         insBuilder.setType(ClearActions.class);\r
206         insIds.add(insBuilder.build());\r
207         insBuilder = new InstructionBuilder();\r
208         insBuilder.setType(GotoTable.class);\r
209         insIds.add(insBuilder.build());\r
210         insPropBuilder.setInstruction(insIds);\r
211         propBuilder.addAugmentation(InstructionRelatedTableFeatureProperty.class, insPropBuilder.build());\r
212         properties.add(propBuilder.build());\r
213         featuresBuilder.setTableFeatureProperties(properties);\r
214         features.add(featuresBuilder.build());\r
215         featuresBuilder = new TableFeaturesBuilder();\r
216         featuresBuilder.setTableId((short) 6);\r
217         featuresBuilder.setName("Mahalo");\r
218         byte[] metaMatch2 = new byte[]{8, 9, 10, 11, 12, 13, 14, 15};\r
219         featuresBuilder.setMetadataMatch(metaMatch2);\r
220         byte[] metaWrite2 = new byte[]{0, 1, 2, 3, 4, 5, 6, 7};\r
221         featuresBuilder.setMetadataWrite(metaWrite2);\r
222         featuresBuilder.setConfig(new TableConfig(false));\r
223         featuresBuilder.setMaxEntries(24L);\r
224         properties = new ArrayList<>();\r
225         propBuilder = new TableFeaturePropertiesBuilder();\r
226         propBuilder.setType(TableFeaturesPropType.OFPTFPTMATCH);\r
227         OxmRelatedTableFeaturePropertyBuilder oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
228         List<MatchEntry> entries = new ArrayList<>();\r
229         MatchEntryBuilder entriesBuilder = new MatchEntryBuilder();\r
230         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
231         entriesBuilder.setOxmMatchField(InPhyPort.class);\r
232         entriesBuilder.setHasMask(false);\r
233         entries.add(entriesBuilder.build());\r
234         entriesBuilder = new MatchEntryBuilder();\r
235         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
236         entriesBuilder.setOxmMatchField(InPort.class);\r
237         entriesBuilder.setHasMask(false);\r
238         entries.add(entriesBuilder.build());\r
239         oxmBuilder.setMatchEntry(entries);\r
240         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
241         properties.add(propBuilder.build());\r
242         propBuilder = new TableFeaturePropertiesBuilder();\r
243         propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELD);\r
244         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
245         entries = new ArrayList<>();\r
246         entriesBuilder = new MatchEntryBuilder();\r
247         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
248         entriesBuilder.setOxmMatchField(IpProto.class);\r
249         entriesBuilder.setHasMask(false);\r
250         entries.add(entriesBuilder.build());\r
251         entriesBuilder = new MatchEntryBuilder();\r
252         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
253         entriesBuilder.setOxmMatchField(IpEcn.class);\r
254         entriesBuilder.setHasMask(false);\r
255         entries.add(entriesBuilder.build());\r
256         oxmBuilder.setMatchEntry(entries);\r
257         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
258         properties.add(propBuilder.build());\r
259         propBuilder = new TableFeaturePropertiesBuilder();\r
260         propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELD);\r
261         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
262         entries = new ArrayList<>();\r
263         entriesBuilder = new MatchEntryBuilder();\r
264         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
265         entriesBuilder.setOxmMatchField(Ipv6Exthdr.class);\r
266         entriesBuilder.setHasMask(false);\r
267         entries.add(entriesBuilder.build());\r
268         entriesBuilder = new MatchEntryBuilder();\r
269         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
270         entriesBuilder.setOxmMatchField(VlanVid.class);\r
271         entriesBuilder.setHasMask(false);\r
272         entries.add(entriesBuilder.build());\r
273         oxmBuilder.setMatchEntry(entries);\r
274         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
275         properties.add(propBuilder.build());\r
276         propBuilder = new TableFeaturePropertiesBuilder();\r
277         propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITESETFIELDMISS);\r
278         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
279         entries = new ArrayList<>();\r
280         entriesBuilder = new MatchEntryBuilder();\r
281         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
282         entriesBuilder.setOxmMatchField(VlanPcp.class);\r
283         entriesBuilder.setHasMask(false);\r
284         entries.add(entriesBuilder.build());\r
285         entriesBuilder = new MatchEntryBuilder();\r
286         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
287         entriesBuilder.setOxmMatchField(TcpSrc.class);\r
288         entriesBuilder.setHasMask(false);\r
289         entries.add(entriesBuilder.build());\r
290         oxmBuilder.setMatchEntry(entries);\r
291         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
292         properties.add(propBuilder.build());\r
293         propBuilder = new TableFeaturePropertiesBuilder();\r
294         propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYSETFIELDMISS);\r
295         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
296         entries = new ArrayList<>();\r
297         entriesBuilder = new MatchEntryBuilder();\r
298         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
299         entriesBuilder.setOxmMatchField(UdpSrc.class);\r
300         entriesBuilder.setHasMask(false);\r
301         entries.add(entriesBuilder.build());\r
302         entriesBuilder = new MatchEntryBuilder();\r
303         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
304         entriesBuilder.setOxmMatchField(UdpDst.class);\r
305         entriesBuilder.setHasMask(false);\r
306         entries.add(entriesBuilder.build());\r
307         oxmBuilder.setMatchEntry(entries);\r
308         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
309         properties.add(propBuilder.build());\r
310         propBuilder = new TableFeaturePropertiesBuilder();\r
311         propBuilder.setType(TableFeaturesPropType.OFPTFPTWILDCARDS);\r
312         oxmBuilder = new OxmRelatedTableFeaturePropertyBuilder();\r
313         entries = new ArrayList<>();\r
314         entriesBuilder = new MatchEntryBuilder();\r
315         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
316         entriesBuilder.setOxmMatchField(EthSrc.class);\r
317         entriesBuilder.setHasMask(false);\r
318         entries.add(entriesBuilder.build());\r
319         entriesBuilder = new MatchEntryBuilder();\r
320         entriesBuilder.setOxmClass(OpenflowBasicClass.class);\r
321         entriesBuilder.setOxmMatchField(EthDst.class);\r
322         entriesBuilder.setHasMask(false);\r
323         entries.add(entriesBuilder.build());\r
324         oxmBuilder.setMatchEntry(entries);\r
325         propBuilder.addAugmentation(OxmRelatedTableFeatureProperty.class, oxmBuilder.build());\r
326         properties.add(propBuilder.build());\r
327         propBuilder = new TableFeaturePropertiesBuilder();\r
328         propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONS);\r
329         ActionRelatedTableFeaturePropertyBuilder actBuilder = new ActionRelatedTableFeaturePropertyBuilder();\r
330         List<Action> actions = new ArrayList<>();\r
331         ActionBuilder actionBuilder = new ActionBuilder();\r
332         actionBuilder.setType(Output.class);\r
333         actions.add(actionBuilder.build());\r
334         actionBuilder = new ActionBuilder();\r
335         actionBuilder.setType(PopPbb.class);\r
336         actions.add(actionBuilder.build());\r
337         actionBuilder = new ActionBuilder();\r
338         actionBuilder.setType(SetNwTtl.class);\r
339         actions.add(actionBuilder.build());\r
340         actBuilder.setAction(actions);\r
341         propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());\r
342         properties.add(propBuilder.build());\r
343         propBuilder = new TableFeaturePropertiesBuilder();\r
344         propBuilder.setType(TableFeaturesPropType.OFPTFPTAPPLYACTIONSMISS);\r
345         actBuilder = new ActionRelatedTableFeaturePropertyBuilder();\r
346         actions = new ArrayList<>();\r
347         actionBuilder = new ActionBuilder();\r
348         actionBuilder.setType(Group.class);\r
349         actions.add(actionBuilder.build());\r
350         actionBuilder = new ActionBuilder();\r
351         actionBuilder.setType(CopyTtlIn.class);\r
352         actions.add(actionBuilder.build());\r
353         actionBuilder = new ActionBuilder();\r
354         actionBuilder.setType(CopyTtlOut.class);\r
355         actions.add(actionBuilder.build());\r
356         actBuilder.setAction(actions);\r
357         propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());\r
358         properties.add(propBuilder.build());\r
359         propBuilder = new TableFeaturePropertiesBuilder();\r
360         propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITEACTIONS);\r
361         actBuilder = new ActionRelatedTableFeaturePropertyBuilder();\r
362         actions = new ArrayList<>();\r
363         actionBuilder = new ActionBuilder();\r
364         actionBuilder.setType(SetMplsTtl.class);\r
365         actions.add(actionBuilder.build());\r
366         actionBuilder = new ActionBuilder();\r
367         actionBuilder.setType(DecMplsTtl.class);\r
368         actions.add(actionBuilder.build());\r
369         actionBuilder = new ActionBuilder();\r
370         actionBuilder.setType(PushVlan.class);\r
371         actions.add(actionBuilder.build());\r
372         actBuilder.setAction(actions);\r
373         propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());\r
374         properties.add(propBuilder.build());\r
375         propBuilder = new TableFeaturePropertiesBuilder();\r
376         propBuilder.setType(TableFeaturesPropType.OFPTFPTWRITEACTIONSMISS);\r
377         actBuilder = new ActionRelatedTableFeaturePropertyBuilder();\r
378         actions = new ArrayList<>();\r
379         actionBuilder = new ActionBuilder();\r
380         actionBuilder.setType(PopVlan.class);\r
381         actions.add(actionBuilder.build());\r
382         actionBuilder = new ActionBuilder();\r
383         actionBuilder.setType(PushPbb.class);\r
384         actions.add(actionBuilder.build());\r
385         actionBuilder = new ActionBuilder();\r
386         actionBuilder.setType(SetField.class);\r
387         actions.add(actionBuilder.build());\r
388         actBuilder.setAction(actions);\r
389         propBuilder.addAugmentation(ActionRelatedTableFeatureProperty.class, actBuilder.build());\r
390         properties.add(propBuilder.build());\r
391         featuresBuilder.setTableFeatureProperties(properties);\r
392         features.add(featuresBuilder.build());\r
393         builder.setTableFeatures(features);\r
394 \r
395         List<TableFeatures> list = TableFeaturesReplyConvertor.toTableFeaturesReply(builder.build());\r
396 \r
397         Assert.assertEquals("Returned empty list", 2, list.size());\r
398         TableFeatures feature = list.get(0);\r
399         Assert.assertEquals("Wrong table-id", 5, feature.getTableId().intValue());\r
400         Assert.assertEquals("Wrong name", "Aloha", feature.getName());\r
401         Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch), feature.getMetadataMatch());\r
402         Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite), feature.getMetadataWrite());\r
403         Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());\r
404         Assert.assertEquals("Wrong max-entries", 42, feature.getMaxEntries().intValue());\r
405         Assert.assertEquals("Wrong properties", 4, feature.getTableProperties().getTableFeatureProperties().size());\r
406         org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.features.table.features.table.properties\r
407         .TableFeatureProperties property = feature.getTableProperties().getTableFeatureProperties().get(0);\r
408         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTable",\r
409                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
410         NextTable propType = (NextTable) property.getTableFeaturePropType();\r
411         List<Short> ids = propType.getTables().getTableIds();\r
412         Assert.assertEquals("Wrong next table-id size", 2, ids.size());\r
413         Assert.assertEquals("Wrong next-registry-id", 1, ids.get(0).intValue());\r
414         Assert.assertEquals("Wrong next-registry-id", 2, ids.get(1).intValue());\r
415         property = feature.getTableProperties().getTableFeatureProperties().get(1);\r
416         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.NextTableMiss",\r
417                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
418         NextTableMiss propType2 = (NextTableMiss) property.getTableFeaturePropType();\r
419         ids = propType2.getTablesMiss().getTableIds();\r
420         Assert.assertEquals("Wrong next table-id size", 1, ids.size());\r
421         Assert.assertEquals("Wrong next-registry-id", 3, ids.get(0).intValue());\r
422         property = feature.getTableProperties().getTableFeatureProperties().get(2);\r
423         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Instructions",\r
424                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
425         Instructions propType3 = (Instructions) property.getTableFeaturePropType();\r
426         List<org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.list\r
427         .Instruction> instructionIds = propType3.getInstructions().getInstruction();\r
428         Assert.assertEquals("Wrong instruction-ids size", 2, instructionIds.size());\r
429         Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteActionsCase",\r
430                 instructionIds.get(0).getInstruction().getImplementedInterface().getName());\r
431         Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCase",\r
432                 instructionIds.get(1).getInstruction().getImplementedInterface().getName());\r
433         property = feature.getTableProperties().getTableFeatureProperties().get(3);\r
434         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.InstructionsMiss",\r
435                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
436         InstructionsMiss propType4 = (InstructionsMiss) property.getTableFeaturePropType();\r
437         instructionIds = propType4.getInstructionsMiss().getInstruction();\r
438         Assert.assertEquals("Wrong instruction-ids size", 5, instructionIds.size());\r
439         Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.WriteMetadataCase",\r
440                 instructionIds.get(0).getInstruction().getImplementedInterface().getName());\r
441         Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ApplyActionsCase",\r
442                 instructionIds.get(1).getInstruction().getImplementedInterface().getName());\r
443         Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.MeterCase",\r
444                 instructionIds.get(2).getInstruction().getImplementedInterface().getName());\r
445         Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.ClearActionsCase",\r
446                 instructionIds.get(3).getInstruction().getImplementedInterface().getName());\r
447         Assert.assertEquals("Wrong instruction-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.instruction.instruction.GoToTableCase",\r
448                 instructionIds.get(4).getInstruction().getImplementedInterface().getName());\r
449         feature = list.get(1);\r
450         Assert.assertEquals("Wrong table-id", 6, feature.getTableId().intValue());\r
451         Assert.assertEquals("Wrong name", "Mahalo", feature.getName());\r
452         Assert.assertEquals("Wrong metadata match", new BigInteger(1, metaMatch2), feature.getMetadataMatch());\r
453         Assert.assertEquals("Wrong metadata write", new BigInteger(1, metaWrite2), feature.getMetadataWrite());\r
454         Assert.assertEquals("Wrong config", false, feature.getConfig().isDEPRECATEDMASK());\r
455         Assert.assertEquals("Wrong max-entries", 24, feature.getMaxEntries().intValue());\r
456         Assert.assertEquals("Wrong properties", 10, feature.getTableProperties().getTableFeatureProperties().size());\r
457         property = feature.getTableProperties().getTableFeatureProperties().get(0);\r
458         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Match",\r
459                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
460         Match propType5 = (Match) property.getTableFeaturePropType();\r
461         List<SetFieldMatch> fieldMatch = propType5.getMatchSetfield().getSetFieldMatch();\r
462         Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());\r
463         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPhyPort",\r
464                 fieldMatch.get(0).getMatchType().getName());\r
465         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.InPort",\r
466                 fieldMatch.get(1).getMatchType().getName());\r
467         property = feature.getTableProperties().getTableFeatureProperties().get(1);\r
468         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfield",\r
469                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
470         ApplySetfield propType6 = (ApplySetfield) property.getTableFeaturePropType();\r
471         fieldMatch = propType6.getApplySetfield().getSetFieldMatch();\r
472         Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());\r
473         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpProto",\r
474                 fieldMatch.get(0).getMatchType().getName());\r
475         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.IpEcn",\r
476                 fieldMatch.get(1).getMatchType().getName());\r
477         property = feature.getTableProperties().getTableFeatureProperties().get(2);\r
478         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfield",\r
479                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
480         WriteSetfield propType7 = (WriteSetfield) property.getTableFeaturePropType();\r
481         fieldMatch = propType7.getWriteSetfield().getSetFieldMatch();\r
482         Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());\r
483         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Ipv6Exthdr",\r
484                 fieldMatch.get(0).getMatchType().getName());\r
485         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanVid",\r
486                 fieldMatch.get(1).getMatchType().getName());\r
487         property = feature.getTableProperties().getTableFeatureProperties().get(3);\r
488         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteSetfieldMiss",\r
489                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
490         WriteSetfieldMiss propType8 = (WriteSetfieldMiss) property.getTableFeaturePropType();\r
491         fieldMatch = propType8.getWriteSetfieldMiss().getSetFieldMatch();\r
492         Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());\r
493         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.VlanPcp",\r
494                 fieldMatch.get(0).getMatchType().getName());\r
495         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TcpSrc",\r
496                 fieldMatch.get(1).getMatchType().getName());\r
497         property = feature.getTableProperties().getTableFeatureProperties().get(4);\r
498         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplySetfieldMiss",\r
499                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
500         ApplySetfieldMiss propType9 = (ApplySetfieldMiss) property.getTableFeaturePropType();\r
501         fieldMatch = propType9.getApplySetfieldMiss().getSetFieldMatch();\r
502         Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());\r
503         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpSrc",\r
504                 fieldMatch.get(0).getMatchType().getName());\r
505         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.UdpDst",\r
506                 fieldMatch.get(1).getMatchType().getName());\r
507         property = feature.getTableProperties().getTableFeatureProperties().get(5);\r
508         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.Wildcards",\r
509                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
510         Wildcards propType10 = (Wildcards) property.getTableFeaturePropType();\r
511         fieldMatch = propType10.getWildcardSetfield().getSetFieldMatch();\r
512         Assert.assertEquals("Wrong match-entry-ids size", 2, fieldMatch.size());\r
513         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthSrc",\r
514                 fieldMatch.get(0).getMatchType().getName());\r
515         Assert.assertEquals("Wrong match-entry-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.EthDst",\r
516                 fieldMatch.get(1).getMatchType().getName());\r
517         property = feature.getTableProperties().getTableFeatureProperties().get(6);\r
518         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActions",\r
519                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
520         org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type\r
521         .ApplyActions propType11 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActions) property.getTableFeaturePropType();\r
522         List<org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.list.Action> actionsList = propType11.getApplyActions().getAction();\r
523         Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());\r
524         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.OutputActionCase",\r
525                 actionsList.get(0).getAction().getImplementedInterface().getName());\r
526         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopPbbActionCase",\r
527                 actionsList.get(1).getAction().getImplementedInterface().getName());\r
528         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetNwTtlActionCase",\r
529                 actionsList.get(2).getAction().getImplementedInterface().getName());\r
530         property = feature.getTableProperties().getTableFeatureProperties().get(7);\r
531         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.ApplyActionsMiss",\r
532                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
533         org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type\r
534         .ApplyActionsMiss propType12 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type\r
535                 .ApplyActionsMiss) property.getTableFeaturePropType();\r
536         actionsList = propType12.getApplyActionsMiss().getAction();\r
537         Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());\r
538         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.GroupActionCase",\r
539                 actionsList.get(0).getAction().getImplementedInterface().getName());\r
540         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlInCase",\r
541                 actionsList.get(1).getAction().getImplementedInterface().getName());\r
542         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.CopyTtlOutCase",\r
543                 actionsList.get(2).getAction().getImplementedInterface().getName());\r
544         property = feature.getTableProperties().getTableFeatureProperties().get(8);\r
545         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActions",\r
546                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
547         org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type\r
548         .WriteActions propType13 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type\r
549                 .WriteActions) property.getTableFeaturePropType();\r
550         actionsList = propType13.getWriteActions().getAction();\r
551         Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());\r
552         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetMplsTtlActionCase",\r
553                 actionsList.get(0).getAction().getImplementedInterface().getName());\r
554         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.DecMplsTtlCase",\r
555                 actionsList.get(1).getAction().getImplementedInterface().getName());\r
556         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushVlanActionCase",\r
557                 actionsList.get(2).getAction().getImplementedInterface().getName());\r
558         property = feature.getTableProperties().getTableFeatureProperties().get(9);\r
559         Assert.assertEquals("Wrong property type", "org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type.WriteActionsMiss",\r
560                 property.getTableFeaturePropType().getImplementedInterface().getName());\r
561         org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type\r
562         .WriteActionsMiss propType14 = (org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.table.feature.prop.type.table.feature.prop.type\r
563                 .WriteActionsMiss) property.getTableFeaturePropType();\r
564         actionsList = propType14.getWriteActionsMiss().getAction();\r
565         Assert.assertEquals("Wrong actions-ids size", 3, actionsList.size());\r
566         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PopVlanActionCase",\r
567                 actionsList.get(0).getAction().getImplementedInterface().getName());\r
568         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.PushPbbActionCase",\r
569                 actionsList.get(1).getAction().getImplementedInterface().getName());\r
570         Assert.assertEquals("Wrong actions-id", "org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.SetFieldCase",\r
571                 actionsList.get(2).getAction().getImplementedInterface().getName());\r
572     }\r
573 }