2 * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.openflowplugin.extension.vendor.nicira;
10 import static java.util.Objects.requireNonNull;
12 import java.util.HashSet;
14 import org.opendaylight.openflowjava.nx.api.NiciraUtil;
15 import org.opendaylight.openflowjava.nx.codec.action.ConntrackCodec;
16 import org.opendaylight.openflowjava.nx.codec.action.CtClearCodec;
17 import org.opendaylight.openflowjava.nx.codec.action.DecNshTtlCodec;
18 import org.opendaylight.openflowjava.nx.codec.action.DecapCodec;
19 import org.opendaylight.openflowjava.nx.codec.action.EncapCodec;
20 import org.opendaylight.openflowjava.nx.codec.action.FinTimeoutCodec;
21 import org.opendaylight.openflowjava.nx.codec.action.LearnCodec;
22 import org.opendaylight.openflowjava.nx.codec.action.MultipathCodec;
23 import org.opendaylight.openflowjava.nx.codec.action.OutputReg2Codec;
24 import org.opendaylight.openflowjava.nx.codec.action.OutputRegCodec;
25 import org.opendaylight.openflowjava.nx.codec.action.RegLoad2Codec;
26 import org.opendaylight.openflowjava.nx.codec.action.RegLoadCodec;
27 import org.opendaylight.openflowjava.nx.codec.action.RegMoveCodec;
28 import org.opendaylight.openflowjava.nx.codec.action.ResubmitCodec;
29 import org.opendaylight.openflowjava.nx.codec.match.ArpOpCodec;
30 import org.opendaylight.openflowjava.nx.codec.match.ArpShaCodec;
31 import org.opendaylight.openflowjava.nx.codec.match.ArpSpaCodec;
32 import org.opendaylight.openflowjava.nx.codec.match.ArpThaCodec;
33 import org.opendaylight.openflowjava.nx.codec.match.ArpTpaCodec;
34 import org.opendaylight.openflowjava.nx.codec.match.CtMarkCodec;
35 import org.opendaylight.openflowjava.nx.codec.match.CtStateCodec;
36 import org.opendaylight.openflowjava.nx.codec.match.CtTpDstCodec;
37 import org.opendaylight.openflowjava.nx.codec.match.CtTpSrcCodec;
38 import org.opendaylight.openflowjava.nx.codec.match.CtZoneCodec;
39 import org.opendaylight.openflowjava.nx.codec.match.EthDstCodec;
40 import org.opendaylight.openflowjava.nx.codec.match.EthSrcCodec;
41 import org.opendaylight.openflowjava.nx.codec.match.EthTypeCodec;
42 import org.opendaylight.openflowjava.nx.codec.match.InPortCodec;
43 import org.opendaylight.openflowjava.nx.codec.match.NshFlagsCodec;
44 import org.opendaylight.openflowjava.nx.codec.match.NshMdtypeCodec;
45 import org.opendaylight.openflowjava.nx.codec.match.NshNpCodec;
46 import org.opendaylight.openflowjava.nx.codec.match.NshTtlCodec;
47 import org.opendaylight.openflowjava.nx.codec.match.Nshc1Codec;
48 import org.opendaylight.openflowjava.nx.codec.match.Nshc2Codec;
49 import org.opendaylight.openflowjava.nx.codec.match.Nshc3Codec;
50 import org.opendaylight.openflowjava.nx.codec.match.Nshc4Codec;
51 import org.opendaylight.openflowjava.nx.codec.match.NsiCodec;
52 import org.opendaylight.openflowjava.nx.codec.match.NspCodec;
53 import org.opendaylight.openflowjava.nx.codec.match.PktMarkCodec;
54 import org.opendaylight.openflowjava.nx.codec.match.Reg0Codec;
55 import org.opendaylight.openflowjava.nx.codec.match.Reg1Codec;
56 import org.opendaylight.openflowjava.nx.codec.match.Reg2Codec;
57 import org.opendaylight.openflowjava.nx.codec.match.Reg3Codec;
58 import org.opendaylight.openflowjava.nx.codec.match.Reg4Codec;
59 import org.opendaylight.openflowjava.nx.codec.match.Reg5Codec;
60 import org.opendaylight.openflowjava.nx.codec.match.Reg6Codec;
61 import org.opendaylight.openflowjava.nx.codec.match.Reg7Codec;
62 import org.opendaylight.openflowjava.nx.codec.match.TcpDstCodec;
63 import org.opendaylight.openflowjava.nx.codec.match.TcpSrcCodec;
64 import org.opendaylight.openflowjava.nx.codec.match.TunIdCodec;
65 import org.opendaylight.openflowjava.nx.codec.match.TunIpv4DstCodec;
66 import org.opendaylight.openflowjava.nx.codec.match.TunIpv4SrcCodec;
67 import org.opendaylight.openflowjava.nx.codec.match.UdpDstCodec;
68 import org.opendaylight.openflowjava.nx.codec.match.UdpSrcCodec;
69 import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey;
70 import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants;
71 import org.opendaylight.openflowplugin.extension.api.ConverterExtensionKey;
72 import org.opendaylight.openflowplugin.extension.api.ConvertorActionFromOFJava;
73 import org.opendaylight.openflowplugin.extension.api.ConvertorActionToOFJava;
74 import org.opendaylight.openflowplugin.extension.api.ExtensionConverterRegistrator;
75 import org.opendaylight.openflowplugin.extension.api.OpenFlowPluginExtensionRegistratorProvider;
76 import org.opendaylight.openflowplugin.extension.api.TypeVersionKey;
77 import org.opendaylight.openflowplugin.extension.api.path.ActionPath;
78 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.ConntrackConvertor;
79 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.CtClearConvertor;
80 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.DecNshTtlConvertor;
81 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.DecapConvertor;
82 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.EncapConvertor;
83 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.FinTimeoutConvertor;
84 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.LearnConvertor;
85 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.MultipathConvertor;
86 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.OutputReg2Convertor;
87 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.OutputRegConvertor;
88 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.OutputRegConvertorProxy;
89 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.RegLoad2Convertor;
90 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.RegLoadConvertor;
91 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.RegLoadConvertorProxy;
92 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.RegMoveConvertor;
93 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.action.ResubmitConvertor;
94 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.ArpOpConvertor;
95 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.ArpShaConvertor;
96 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.ArpSpaConvertor;
97 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.ArpThaConvertor;
98 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.ArpTpaConvertor;
99 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.CtMarkConvertor;
100 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.CtStateConvertor;
101 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.CtTpDstConvertor;
102 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.CtTpSrcConvertor;
103 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.CtZoneConvertor;
104 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.EthDstConvertor;
105 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.EthSrcConvertor;
106 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.EthTypeConvertor;
107 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NshFlagsConvertor;
108 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NshMdtypeConvertor;
109 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NshNpConvertor;
110 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NshTtlConvertor;
111 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.Nshc1Convertor;
112 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.Nshc2Convertor;
113 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.Nshc3Convertor;
114 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.Nshc4Convertor;
115 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NsiConvertor;
116 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NspConvertor;
117 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.NxmInPortConvertor;
118 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.PktMarkConvertor;
119 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.RegConvertor;
120 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.TcpDstConvertor;
121 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.TcpSrcConvertor;
122 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.TunIPv4DstConvertor;
123 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.TunIPv4SrcConvertor;
124 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.TunIdConvertor;
125 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.UdpDstConvertor;
126 import org.opendaylight.openflowplugin.extension.vendor.nicira.convertor.match.UdpSrcConvertor;
127 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action;
128 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.action.grouping.ActionChoice;
129 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionConntrack;
130 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionCtClear;
131 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionDecNshTtl;
132 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionDecap;
133 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionEncap;
134 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionFinTimeout;
135 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionLearn;
136 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionMultipath;
137 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionOutputReg;
138 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionOutputReg2;
139 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionRegLoad;
140 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionRegLoad2;
141 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionRegMove;
142 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nx.action.rev140421.ofj.aug.nx.action.ActionResubmit;
143 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionConntrackRpcAddFlowApplyActionsCase;
144 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionCtClearRpcAddFlowApplyActionsCase;
145 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionDecNshTtlRpcAddFlowApplyActionsCase;
146 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionDecapRpcAddFlowApplyActionsCase;
147 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionEncapRpcAddFlowApplyActionsCase;
148 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionFinTimeoutRpcAddFlowApplyActionsCase;
149 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionLearnRpcAddFlowApplyActionsCase;
150 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionMultipathRpcAddFlowApplyActionsCase;
151 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionOutputRegRpcAddFlowApplyActionsCase;
152 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadRpcAddFlowApplyActionsCase;
153 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegMoveRpcAddFlowApplyActionsCase;
154 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionResubmitRpcAddFlowApplyActionsCase;
155 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionConntrackRpcAddFlowWriteActionsCase;
156 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionCtClearRpcAddFlowWriteActionsCase;
157 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionDecNshTtlRpcAddFlowWriteActionsCase;
158 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionDecapRpcAddFlowWriteActionsCase;
159 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionEncapRpcAddFlowWriteActionsCase;
160 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionFinTimeoutRpcAddFlowWriteActionsCase;
161 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionLearnRpcAddFlowWriteActionsCase;
162 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionMultipathRpcAddFlowWriteActionsCase;
163 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionOutputRegRpcAddFlowWriteActionsCase;
164 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionRegLoadRpcAddFlowWriteActionsCase;
165 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionRegMoveRpcAddFlowWriteActionsCase;
166 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.flow.input.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionResubmitRpcAddFlowWriteActionsCase;
167 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionConntrackRpcAddGroupCase;
168 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionCtClearRpcAddGroupCase;
169 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionDecNshTtlRpcAddGroupCase;
170 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionDecapRpcAddGroupCase;
171 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionEncapRpcAddGroupCase;
172 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionFinTimeoutRpcAddGroupCase;
173 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionLearnRpcAddGroupCase;
174 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionMultipathRpcAddGroupCase;
175 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionOutputRegRpcAddGroupCase;
176 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionRegLoadRpcAddGroupCase;
177 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionRegMoveRpcAddGroupCase;
178 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.add.group.input.buckets.bucket.action.action.NxActionResubmitRpcAddGroupCase;
179 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionConntrackNodesNodeGroupBucketsBucketActionsCase;
180 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionCtClearNodesNodeGroupBucketsBucketActionsCase;
181 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionDecNshTtlNodesNodeGroupBucketsBucketActionsCase;
182 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionDecapNodesNodeGroupBucketsBucketActionsCase;
183 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionEncapNodesNodeGroupBucketsBucketActionsCase;
184 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionFinTimeoutNodesNodeGroupBucketsBucketActionsCase;
185 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionLearnNodesNodeGroupBucketsBucketActionsCase;
186 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionMultipathNodesNodeGroupBucketsBucketActionsCase;
187 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionOutputRegNodesNodeGroupBucketsBucketActionsCase;
188 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionRegLoadNodesNodeGroupBucketsBucketActionsCase;
189 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionRegMoveNodesNodeGroupBucketsBucketActionsCase;
190 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.group.buckets.bucket.action.action.NxActionResubmitNodesNodeGroupBucketsBucketActionsCase;
191 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionConntrackNodesNodeTableFlowApplyActionsCase;
192 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionCtClearNodesNodeTableFlowApplyActionsCase;
193 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionDecNshTtlNodesNodeTableFlowApplyActionsCase;
194 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionDecapNodesNodeTableFlowApplyActionsCase;
195 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionEncapNodesNodeTableFlowApplyActionsCase;
196 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionFinTimeoutNodesNodeTableFlowApplyActionsCase;
197 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionLearnNodesNodeTableFlowApplyActionsCase;
198 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionMultipathNodesNodeTableFlowApplyActionsCase;
199 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionOutputRegNodesNodeTableFlowApplyActionsCase;
200 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadNodesNodeTableFlowApplyActionsCase;
201 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegMoveNodesNodeTableFlowApplyActionsCase;
202 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionResubmitNodesNodeTableFlowApplyActionsCase;
203 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionConntrackNodesNodeTableFlowWriteActionsCase;
204 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionCtClearNodesNodeTableFlowWriteActionsCase;
205 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionDecNshTtlNodesNodeTableFlowWriteActionsCase;
206 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionDecapNodesNodeTableFlowWriteActionsCase;
207 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionEncapNodesNodeTableFlowWriteActionsCase;
208 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionFinTimeoutNodesNodeTableFlowWriteActionsCase;
209 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionLearnNodesNodeTableFlowWriteActionsCase;
210 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionMultipathNodesNodeTableFlowWriteActionsCase;
211 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionOutputRegNodesNodeTableFlowWriteActionsCase;
212 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionRegLoadNodesNodeTableFlowWriteActionsCase;
213 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionRegMoveNodesNodeTableFlowWriteActionsCase;
214 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.nodes.node.table.flow.instructions.instruction.instruction.write.actions._case.write.actions.action.action.NxActionResubmitNodesNodeTableFlowWriteActionsCase;
215 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadRpcRemoveFlowApplyActionsCase;
216 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegMoveRpcRemoveFlowApplyActionsCase;
217 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.flow.input.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionResubmitRpcRemoveFlowApplyActionsCase;
218 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionConntrackRpcRemoveGroupCase;
219 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionCtClearRpcRemoveGroupCase;
220 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionDecNshTtlRpcRemoveGroupCase;
221 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionDecapRpcRemoveGroupCase;
222 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionEncapRpcRemoveGroupCase;
223 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionFinTimeoutRpcRemoveGroupCase;
224 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionLearnRpcRemoveGroupCase;
225 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionMultipathRpcRemoveGroupCase;
226 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionOutputRegRpcRemoveGroupCase;
227 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionRegLoadRpcRemoveGroupCase;
228 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionRegMoveRpcRemoveGroupCase;
229 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.remove.group.input.buckets.bucket.action.action.NxActionResubmitRpcRemoveGroupCase;
230 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.transmit.packet.input.action.action.NxActionRegLoadRpcTransmitPacketCase;
231 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.transmit.packet.input.action.action.NxActionResubmitRpcTransmitPacketCase;
232 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.flow.input.original.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadRpcUpdateFlowOriginalApplyActionsCase;
233 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.flow.input.updated.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegLoadRpcUpdateFlowUpdatedApplyActionsCase;
234 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.flow.input.updated.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionRegMoveRpcUpdateFlowUpdatedApplyActionsCase;
235 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.flow.input.updated.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NxActionResubmitRpcUpdateFlowUpdatedApplyActionsCase;
236 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionConntrackRpcUpdateGroupOriginalCase;
237 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionCtClearRpcUpdateGroupOriginalCase;
238 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionDecNshTtlRpcUpdateGroupOriginalCase;
239 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionDecapRpcUpdateGroupOriginalCase;
240 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionEncapRpcUpdateGroupOriginalCase;
241 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionFinTimeoutRpcUpdateGroupOriginalCase;
242 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionLearnRpcUpdateGroupOriginalCase;
243 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionMultipathRpcUpdateGroupOriginalCase;
244 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionOutputRegRpcUpdateGroupOriginalCase;
245 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionRegLoadRpcUpdateGroupOriginalCase;
246 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionRegMoveRpcUpdateGroupOriginalCase;
247 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.original.group.buckets.bucket.action.action.NxActionResubmitRpcUpdateGroupOriginalCase;
248 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionConntrackRpcUpdateGroupUpdatedCase;
249 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionCtClearRpcUpdateGroupUpdatedCase;
250 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionDecNshTtlRpcUpdateGroupUpdatedCase;
251 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionDecapRpcUpdateGroupUpdatedCase;
252 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionEncapRpcUpdateGroupUpdatedCase;
253 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionFinTimeoutRpcUpdateGroupUpdatedCase;
254 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionLearnRpcUpdateGroupUpdatedCase;
255 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionMultipathRpcUpdateGroupUpdatedCase;
256 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionOutputRegRpcUpdateGroupUpdatedCase;
257 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionRegLoadRpcUpdateGroupUpdatedCase;
258 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionRegMoveRpcUpdateGroupUpdatedCase;
259 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.action.rev140714.update.group.input.updated.group.buckets.bucket.action.action.NxActionResubmitRpcUpdateGroupUpdatedCase;
260 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxArpShaKey;
261 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxArpThaKey;
262 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxCtMarkKey;
263 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxCtStateKey;
264 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxCtTpDstKey;
265 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxCtTpSrcKey;
266 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxCtZoneKey;
267 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshFlagsKey;
268 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshMdtypeKey;
269 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshNpKey;
270 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshTtlKey;
271 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshc1Key;
272 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshc2Key;
273 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshc3Key;
274 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNshc4Key;
275 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNsiKey;
276 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxNspKey;
277 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxPktMarkKey;
278 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg0Key;
279 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg1Key;
280 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg2Key;
281 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg3Key;
282 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg4Key;
283 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg5Key;
284 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg6Key;
285 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxReg7Key;
286 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxTunIdKey;
287 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxTunIpv4DstKey;
288 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmNxTunIpv4SrcKey;
289 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfArpOpKey;
290 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfArpSpaKey;
291 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfArpTpaKey;
292 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfEthDstKey;
293 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfEthSrcKey;
294 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfEthTypeKey;
295 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfInPortKey;
296 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfTcpDstKey;
297 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfTcpSrcKey;
298 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfUdpDstKey;
299 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.nicira.match.rev140714.NxmOfUdpSrcKey;
300 import org.opendaylight.yangtools.concepts.ObjectRegistration;
301 import org.opendaylight.yangtools.yang.common.Uint32;
302 import org.slf4j.Logger;
303 import org.slf4j.LoggerFactory;
305 public class NiciraExtensionProvider implements AutoCloseable {
307 private static final Logger LOG = LoggerFactory.getLogger(NiciraExtensionProvider.class);
309 private static final RegConvertor REG_CONVERTOR = new RegConvertor();
310 private static final TunIdConvertor TUN_ID_CONVERTOR = new TunIdConvertor();
311 private static final ArpOpConvertor ARP_OP_CONVERTOR = new ArpOpConvertor();
312 private static final ArpShaConvertor ARP_SHA_CONVERTOR = new ArpShaConvertor();
313 private static final ArpSpaConvertor ARP_SPA_CONVERTOR = new ArpSpaConvertor();
314 private static final ArpTpaConvertor ARP_TPA_CONVERTOR = new ArpTpaConvertor();
315 private static final ArpThaConvertor ARP_THA_CONVERTOR = new ArpThaConvertor();
316 private static final NxmInPortConvertor NXM_IN_PORT_CONVERTOR = new NxmInPortConvertor();
317 private static final EthDstConvertor ETH_DST_CONVERTOR = new EthDstConvertor();
318 private static final EthSrcConvertor ETH_SRC_CONVERTOR = new EthSrcConvertor();
319 private static final RegLoadConvertor REG_LOAD_CONVERTOR = new RegLoadConvertor();
320 private static final RegLoad2Convertor REG_LOAD2_CONVERTOR = new RegLoad2Convertor();
321 private static final RegLoadConvertorProxy REG_LOAD_CONVERTOR_PROXY = new RegLoadConvertorProxy();
322 private static final RegMoveConvertor REG_MOVE_CONVERTOR = new RegMoveConvertor();
323 private static final OutputRegConvertor OUTPUT_REG_CONVERTOR = new OutputRegConvertor();
324 private static final OutputReg2Convertor OUTPUT_REG2_CONVERTOR = new OutputReg2Convertor();
325 private static final OutputRegConvertorProxy OUTPUT_REG_CONVERTOR_PROXY = new OutputRegConvertorProxy();
326 private static final EthTypeConvertor ETH_TYPE_CONVERTOR = new EthTypeConvertor();
327 private static final ResubmitConvertor RESUBMIT_CONVERTOR = new ResubmitConvertor();
328 private static final FinTimeoutConvertor FIN_TIMEOUT_CONVERTOR = new FinTimeoutConvertor();
329 private static final MultipathConvertor MULTIPATH_CONVERTOR = new MultipathConvertor();
330 private static final NspConvertor NSP_CONVERTOR = new NspConvertor();
331 private static final NsiConvertor NSI_CONVERTOR = new NsiConvertor();
332 private static final Nshc1Convertor NSC1_CONVERTOR = new Nshc1Convertor();
333 private static final Nshc2Convertor NSC2_CONVERTOR = new Nshc2Convertor();
334 private static final Nshc3Convertor NSC3_CONVERTOR = new Nshc3Convertor();
335 private static final Nshc4Convertor NSC4_CONVERTOR = new Nshc4Convertor();
336 private static final NshFlagsConvertor NSH_FLAGS_CONVERTOR = new NshFlagsConvertor();
337 private static final NshTtlConvertor NSH_TTL_CONVERTOR = new NshTtlConvertor();
338 private static final TunIPv4SrcConvertor TUN_IPV4_SRC_CONVERTOR = new TunIPv4SrcConvertor();
339 private static final TunIPv4DstConvertor TUN_IPV4_DST_CONVERTOR = new TunIPv4DstConvertor();
340 private static final NshMdtypeConvertor NSH_MDTYPE_CONVERTOR = new NshMdtypeConvertor();
341 private static final NshNpConvertor NSH_NP_CONVERTOR = new NshNpConvertor();
342 private static final TcpSrcConvertor TCP_SRC_CONVERTOR = new TcpSrcConvertor();
343 private static final TcpDstConvertor TCP_DST_CONVERTOR = new TcpDstConvertor();
344 private static final UdpSrcConvertor UDP_SRC_CONVERTOR = new UdpSrcConvertor();
345 private static final UdpDstConvertor UDP_DST_CONVERTOR = new UdpDstConvertor();
346 private static final ConntrackConvertor CONNTRACK_CONVERTOR = new ConntrackConvertor();
347 private static final CtClearConvertor CT_CLEAR_CONVERTOR = new CtClearConvertor();
348 private static final LearnConvertor LEARN_CONVERTOR = new LearnConvertor();
349 private static final CtMarkConvertor CT_MARK_CONVERTOR = new CtMarkConvertor();
350 private static final CtStateConvertor CT_STATE_CONVERTOR = new CtStateConvertor();
351 private static final CtZoneConvertor CT_ZONE_CONVERTOR = new CtZoneConvertor();
352 private static final CtTpSrcConvertor CT_TP_SRC_CONVERTOR = new CtTpSrcConvertor();
353 private static final CtTpDstConvertor CT_TP_DST_CONVERTOR = new CtTpDstConvertor();
354 private static final PktMarkConvertor PKT_MARK_CONVERTOR = new PktMarkConvertor();
355 private static final EncapConvertor ENCAP_CONVERTOR = new EncapConvertor();
356 private static final DecapConvertor DECAP_CONVERTOR = new DecapConvertor();
357 private static final DecNshTtlConvertor DEC_NSH_TTL_CONVERTOR = new DecNshTtlConvertor();
359 private final ExtensionConverterRegistrator extensionConverterRegistrator;
360 private final Set<ObjectRegistration<?>> registrations;
363 * Register appropriate converters.
365 public NiciraExtensionProvider(final OpenFlowPluginExtensionRegistratorProvider provider) {
366 extensionConverterRegistrator = requireNonNull(provider.getExtensionConverterRegistrator());
367 registrations = new HashSet<>();
368 // src=dataStore/config
369 registerAction13(NxActionRegLoadNodesNodeTableFlowApplyActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
370 registerAction13(NxActionRegMoveNodesNodeTableFlowApplyActionsCase.class, REG_MOVE_CONVERTOR);
371 registerAction13(NxActionOutputRegNodesNodeTableFlowApplyActionsCase.class, OUTPUT_REG_CONVERTOR_PROXY);
372 registerAction13(NxActionResubmitNodesNodeTableFlowApplyActionsCase.class, RESUBMIT_CONVERTOR);
373 registerAction13(NxActionFinTimeoutNodesNodeTableFlowApplyActionsCase.class, FIN_TIMEOUT_CONVERTOR);
374 registerAction13(NxActionMultipathNodesNodeTableFlowApplyActionsCase.class, MULTIPATH_CONVERTOR);
375 registerAction13(NxActionConntrackNodesNodeTableFlowApplyActionsCase.class, CONNTRACK_CONVERTOR);
376 registerAction13(NxActionCtClearNodesNodeTableFlowApplyActionsCase.class, CT_CLEAR_CONVERTOR);
377 registerAction13(NxActionLearnNodesNodeTableFlowApplyActionsCase.class, LEARN_CONVERTOR);
378 registerAction13(NxActionEncapNodesNodeTableFlowApplyActionsCase.class, ENCAP_CONVERTOR);
379 registerAction13(NxActionDecapNodesNodeTableFlowApplyActionsCase.class, DECAP_CONVERTOR);
380 registerAction13(NxActionDecNshTtlNodesNodeTableFlowApplyActionsCase.class, DEC_NSH_TTL_CONVERTOR);
382 registerAction13(NxActionRegLoadNodesNodeTableFlowWriteActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
383 registerAction13(NxActionRegMoveNodesNodeTableFlowWriteActionsCase.class, REG_MOVE_CONVERTOR);
384 registerAction13(NxActionOutputRegNodesNodeTableFlowWriteActionsCase.class, OUTPUT_REG_CONVERTOR_PROXY);
385 registerAction13(NxActionResubmitNodesNodeTableFlowWriteActionsCase.class, RESUBMIT_CONVERTOR);
386 registerAction13(NxActionFinTimeoutNodesNodeTableFlowWriteActionsCase.class, FIN_TIMEOUT_CONVERTOR);
387 registerAction13(NxActionMultipathNodesNodeTableFlowWriteActionsCase.class, MULTIPATH_CONVERTOR);
388 registerAction13(NxActionConntrackNodesNodeTableFlowWriteActionsCase.class, CONNTRACK_CONVERTOR);
389 registerAction13(NxActionCtClearNodesNodeTableFlowWriteActionsCase.class, CT_CLEAR_CONVERTOR);
390 registerAction13(NxActionLearnNodesNodeTableFlowWriteActionsCase.class, LEARN_CONVERTOR);
391 registerAction13(NxActionEncapNodesNodeTableFlowWriteActionsCase.class, ENCAP_CONVERTOR);
392 registerAction13(NxActionDecapNodesNodeTableFlowWriteActionsCase.class, DECAP_CONVERTOR);
393 registerAction13(NxActionDecNshTtlNodesNodeTableFlowWriteActionsCase.class, DEC_NSH_TTL_CONVERTOR);
395 registerAction13(NxActionRegLoadNodesNodeGroupBucketsBucketActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
396 registerAction13(NxActionRegMoveNodesNodeGroupBucketsBucketActionsCase.class, REG_MOVE_CONVERTOR);
397 registerAction13(NxActionOutputRegNodesNodeGroupBucketsBucketActionsCase.class, OUTPUT_REG_CONVERTOR_PROXY);
398 registerAction13(NxActionResubmitNodesNodeGroupBucketsBucketActionsCase.class, RESUBMIT_CONVERTOR);
399 registerAction13(NxActionFinTimeoutNodesNodeGroupBucketsBucketActionsCase.class, FIN_TIMEOUT_CONVERTOR);
400 registerAction13(NxActionMultipathNodesNodeGroupBucketsBucketActionsCase.class, MULTIPATH_CONVERTOR);
401 registerAction13(NxActionConntrackNodesNodeGroupBucketsBucketActionsCase.class, CONNTRACK_CONVERTOR);
402 registerAction13(NxActionCtClearNodesNodeGroupBucketsBucketActionsCase.class, CT_CLEAR_CONVERTOR);
403 registerAction13(NxActionLearnNodesNodeGroupBucketsBucketActionsCase.class, LEARN_CONVERTOR);
404 registerAction13(NxActionEncapNodesNodeGroupBucketsBucketActionsCase.class, ENCAP_CONVERTOR);
405 registerAction13(NxActionDecapNodesNodeGroupBucketsBucketActionsCase.class, DECAP_CONVERTOR);
406 registerAction13(NxActionDecNshTtlNodesNodeGroupBucketsBucketActionsCase.class, DEC_NSH_TTL_CONVERTOR);
409 registerAction13(NxActionRegLoadRpcAddFlowApplyActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
410 registerAction13(NxActionRegMoveRpcAddFlowApplyActionsCase.class, REG_MOVE_CONVERTOR);
411 registerAction13(NxActionOutputRegRpcAddFlowApplyActionsCase.class, OUTPUT_REG_CONVERTOR_PROXY);
412 registerAction13(NxActionResubmitRpcAddFlowApplyActionsCase.class, RESUBMIT_CONVERTOR);
413 registerAction13(NxActionFinTimeoutRpcAddFlowApplyActionsCase.class, FIN_TIMEOUT_CONVERTOR);
414 registerAction13(NxActionMultipathRpcAddFlowApplyActionsCase.class, MULTIPATH_CONVERTOR);
415 registerAction13(NxActionConntrackRpcAddFlowApplyActionsCase.class, CONNTRACK_CONVERTOR);
416 registerAction13(NxActionCtClearRpcAddFlowApplyActionsCase.class, CT_CLEAR_CONVERTOR);
417 registerAction13(NxActionLearnRpcAddFlowApplyActionsCase.class, LEARN_CONVERTOR);
418 registerAction13(NxActionEncapRpcAddFlowApplyActionsCase.class, ENCAP_CONVERTOR);
419 registerAction13(NxActionDecapRpcAddFlowApplyActionsCase.class, DECAP_CONVERTOR);
420 registerAction13(NxActionDecNshTtlRpcAddFlowApplyActionsCase.class, DEC_NSH_TTL_CONVERTOR);
422 registerAction13(NxActionRegLoadRpcAddFlowWriteActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
423 registerAction13(NxActionRegMoveRpcAddFlowWriteActionsCase.class, REG_MOVE_CONVERTOR);
424 registerAction13(NxActionOutputRegRpcAddFlowWriteActionsCase.class, OUTPUT_REG_CONVERTOR_PROXY);
425 registerAction13(NxActionResubmitRpcAddFlowWriteActionsCase.class, RESUBMIT_CONVERTOR);
426 registerAction13(NxActionFinTimeoutRpcAddFlowWriteActionsCase.class, FIN_TIMEOUT_CONVERTOR);
427 registerAction13(NxActionMultipathRpcAddFlowWriteActionsCase.class, MULTIPATH_CONVERTOR);
428 registerAction13(NxActionConntrackRpcAddFlowWriteActionsCase.class, CONNTRACK_CONVERTOR);
429 registerAction13(NxActionCtClearRpcAddFlowWriteActionsCase.class, CT_CLEAR_CONVERTOR);
430 registerAction13(NxActionLearnRpcAddFlowWriteActionsCase.class, LEARN_CONVERTOR);
431 registerAction13(NxActionEncapRpcAddFlowWriteActionsCase.class, ENCAP_CONVERTOR);
432 registerAction13(NxActionDecapRpcAddFlowWriteActionsCase.class, DECAP_CONVERTOR);
433 registerAction13(NxActionDecNshTtlRpcAddFlowWriteActionsCase.class, DEC_NSH_TTL_CONVERTOR);
435 registerAction13(NxActionRegLoadRpcAddGroupCase.class, REG_LOAD_CONVERTOR_PROXY);
436 registerAction13(NxActionRegLoadRpcRemoveGroupCase.class, REG_LOAD_CONVERTOR_PROXY);
437 registerAction13(NxActionRegLoadRpcUpdateGroupOriginalCase.class, REG_LOAD_CONVERTOR_PROXY);
438 registerAction13(NxActionRegLoadRpcUpdateGroupUpdatedCase.class, REG_LOAD_CONVERTOR_PROXY);
439 registerAction13(NxActionRegMoveRpcAddGroupCase.class, REG_MOVE_CONVERTOR);
440 registerAction13(NxActionRegMoveRpcRemoveGroupCase.class, REG_MOVE_CONVERTOR);
441 registerAction13(NxActionRegMoveRpcUpdateGroupOriginalCase.class, REG_MOVE_CONVERTOR);
442 registerAction13(NxActionRegMoveRpcUpdateGroupUpdatedCase.class, REG_MOVE_CONVERTOR);
443 registerAction13(NxActionOutputRegRpcAddGroupCase.class, OUTPUT_REG_CONVERTOR_PROXY);
444 registerAction13(NxActionOutputRegRpcRemoveGroupCase.class, OUTPUT_REG_CONVERTOR_PROXY);
445 registerAction13(NxActionOutputRegRpcUpdateGroupOriginalCase.class, OUTPUT_REG_CONVERTOR_PROXY);
446 registerAction13(NxActionOutputRegRpcUpdateGroupUpdatedCase.class, OUTPUT_REG_CONVERTOR_PROXY);
447 registerAction13(NxActionResubmitRpcAddGroupCase.class, RESUBMIT_CONVERTOR);
448 registerAction13(NxActionResubmitRpcRemoveGroupCase.class, RESUBMIT_CONVERTOR);
449 registerAction13(NxActionResubmitRpcUpdateGroupOriginalCase.class, RESUBMIT_CONVERTOR);
450 registerAction13(NxActionResubmitRpcUpdateGroupUpdatedCase.class, RESUBMIT_CONVERTOR);
451 registerAction13(NxActionFinTimeoutRpcAddGroupCase.class, FIN_TIMEOUT_CONVERTOR);
452 registerAction13(NxActionFinTimeoutRpcRemoveGroupCase.class, FIN_TIMEOUT_CONVERTOR);
453 registerAction13(NxActionFinTimeoutRpcUpdateGroupOriginalCase.class, FIN_TIMEOUT_CONVERTOR);
454 registerAction13(NxActionFinTimeoutRpcUpdateGroupUpdatedCase.class, FIN_TIMEOUT_CONVERTOR);
455 registerAction13(NxActionMultipathRpcAddGroupCase.class, MULTIPATH_CONVERTOR);
456 registerAction13(NxActionMultipathRpcRemoveGroupCase.class, MULTIPATH_CONVERTOR);
457 registerAction13(NxActionMultipathRpcUpdateGroupOriginalCase.class, MULTIPATH_CONVERTOR);
458 registerAction13(NxActionMultipathRpcUpdateGroupUpdatedCase.class, MULTIPATH_CONVERTOR);
459 registerAction13(NxActionConntrackRpcAddGroupCase.class, CONNTRACK_CONVERTOR);
460 registerAction13(NxActionConntrackRpcRemoveGroupCase.class, CONNTRACK_CONVERTOR);
461 registerAction13(NxActionConntrackRpcUpdateGroupOriginalCase.class, CONNTRACK_CONVERTOR);
462 registerAction13(NxActionConntrackRpcUpdateGroupUpdatedCase.class, CONNTRACK_CONVERTOR);
463 registerAction13(NxActionCtClearRpcAddGroupCase.class, CT_CLEAR_CONVERTOR);
464 registerAction13(NxActionCtClearRpcRemoveGroupCase.class, CT_CLEAR_CONVERTOR);
465 registerAction13(NxActionCtClearRpcUpdateGroupOriginalCase.class, CT_CLEAR_CONVERTOR);
466 registerAction13(NxActionCtClearRpcUpdateGroupUpdatedCase.class, CT_CLEAR_CONVERTOR);
467 registerAction13(NxActionLearnRpcAddGroupCase.class, LEARN_CONVERTOR);
468 registerAction13(NxActionLearnRpcRemoveGroupCase.class, LEARN_CONVERTOR);
469 registerAction13(NxActionLearnRpcUpdateGroupOriginalCase.class, LEARN_CONVERTOR);
470 registerAction13(NxActionLearnRpcUpdateGroupUpdatedCase.class, LEARN_CONVERTOR);
471 registerAction13(NxActionEncapRpcAddGroupCase.class, ENCAP_CONVERTOR);
472 registerAction13(NxActionEncapRpcRemoveGroupCase.class, ENCAP_CONVERTOR);
473 registerAction13(NxActionEncapRpcUpdateGroupOriginalCase.class, ENCAP_CONVERTOR);
474 registerAction13(NxActionEncapRpcUpdateGroupUpdatedCase.class, ENCAP_CONVERTOR);
475 registerAction13(NxActionDecapRpcAddGroupCase.class, DECAP_CONVERTOR);
476 registerAction13(NxActionDecapRpcRemoveGroupCase.class, DECAP_CONVERTOR);
477 registerAction13(NxActionDecapRpcUpdateGroupOriginalCase.class, DECAP_CONVERTOR);
478 registerAction13(NxActionDecapRpcUpdateGroupUpdatedCase.class, DECAP_CONVERTOR);
479 registerAction13(NxActionDecNshTtlRpcAddGroupCase.class, DEC_NSH_TTL_CONVERTOR);
480 registerAction13(NxActionDecNshTtlRpcRemoveGroupCase.class, DEC_NSH_TTL_CONVERTOR);
481 registerAction13(NxActionDecNshTtlRpcUpdateGroupOriginalCase.class, DEC_NSH_TTL_CONVERTOR);
482 registerAction13(NxActionDecNshTtlRpcUpdateGroupUpdatedCase.class, DEC_NSH_TTL_CONVERTOR);
484 registerAction13(NxActionRegLoadRpcTransmitPacketCase.class, REG_LOAD_CONVERTOR_PROXY);
485 registerAction13(NxActionResubmitRpcTransmitPacketCase.class, RESUBMIT_CONVERTOR);
486 registerAction13(NxActionRegLoadRpcUpdateFlowOriginalApplyActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
487 registerAction13(NxActionRegLoadRpcUpdateFlowUpdatedApplyActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
488 registerAction13(NxActionResubmitRpcUpdateFlowUpdatedApplyActionsCase.class, RESUBMIT_CONVERTOR);
489 registerAction13(NxActionRegMoveRpcUpdateFlowUpdatedApplyActionsCase.class, REG_MOVE_CONVERTOR);
490 registerAction13(NxActionRegLoadRpcRemoveFlowApplyActionsCase.class, REG_LOAD_CONVERTOR_PROXY);
491 registerAction13(NxActionRegMoveRpcRemoveFlowApplyActionsCase.class, REG_MOVE_CONVERTOR);
492 registerAction13(NxActionResubmitRpcRemoveFlowApplyActionsCase.class, RESUBMIT_CONVERTOR);
494 registerAction13(ActionRegLoad.class, REG_LOAD_CONVERTOR);
495 registerAction13(ActionRegLoad2.class, REG_LOAD2_CONVERTOR);
496 registerAction13(ActionRegMove.class, REG_MOVE_CONVERTOR);
497 registerAction13(ActionOutputReg.class, OUTPUT_REG_CONVERTOR);
498 registerAction13(ActionOutputReg2.class, OUTPUT_REG2_CONVERTOR);
499 registerAction13(ActionResubmit.class, RESUBMIT_CONVERTOR);
500 registerAction13(ActionFinTimeout.class, FIN_TIMEOUT_CONVERTOR);
501 registerAction13(ActionMultipath.class, MULTIPATH_CONVERTOR);
502 registerAction13(ActionConntrack.class, CONNTRACK_CONVERTOR);
503 registerAction13(ActionCtClear.class, CT_CLEAR_CONVERTOR);
504 registerAction13(ActionLearn.class, LEARN_CONVERTOR);
505 registerAction13(ActionEncap.class, ENCAP_CONVERTOR);
506 registerAction13(ActionDecap.class, DECAP_CONVERTOR);
507 registerAction13(ActionDecNshTtl.class, DEC_NSH_TTL_CONVERTOR);
509 registrations.add(extensionConverterRegistrator.registerActionConvertor(
510 NiciraUtil.createOfJavaKeyFrom(RegLoadCodec.SERIALIZER_KEY), REG_LOAD_CONVERTOR));
511 registrations.add(extensionConverterRegistrator.registerActionConvertor(
512 NiciraUtil.createOfJavaKeyFrom(RegLoad2Codec.SERIALIZER_KEY), REG_LOAD2_CONVERTOR));
513 registrations.add(extensionConverterRegistrator.registerActionConvertor(
514 NiciraUtil.createOfJavaKeyFrom(RegMoveCodec.SERIALIZER_KEY), REG_MOVE_CONVERTOR));
515 registrations.add(extensionConverterRegistrator.registerActionConvertor(
516 NiciraUtil.createOfJavaKeyFrom(OutputRegCodec.SERIALIZER_KEY), OUTPUT_REG_CONVERTOR));
517 registrations.add(extensionConverterRegistrator.registerActionConvertor(
518 NiciraUtil.createOfJavaKeyFrom(OutputReg2Codec.SERIALIZER_KEY), OUTPUT_REG2_CONVERTOR));
519 registrations.add(extensionConverterRegistrator.registerActionConvertor(
520 NiciraUtil.createOfJavaKeyFrom(ResubmitCodec.SERIALIZER_KEY), RESUBMIT_CONVERTOR));
521 registrations.add(extensionConverterRegistrator.registerActionConvertor(
522 NiciraUtil.createOfJavaKeyFrom(FinTimeoutCodec.SERIALIZER_KEY), FIN_TIMEOUT_CONVERTOR));
523 registrations.add(extensionConverterRegistrator.registerActionConvertor(
524 NiciraUtil.createOfJavaKeyFrom(MultipathCodec.SERIALIZER_KEY), MULTIPATH_CONVERTOR));
525 registrations.add(extensionConverterRegistrator.registerActionConvertor(
526 NiciraUtil.createOfJavaKeyFrom(ConntrackCodec.SERIALIZER_KEY), CONNTRACK_CONVERTOR));
527 registrations.add(extensionConverterRegistrator.registerActionConvertor(
528 NiciraUtil.createOfJavaKeyFrom(CtClearCodec.SERIALIZER_KEY), CT_CLEAR_CONVERTOR));
529 registrations.add(extensionConverterRegistrator.registerActionConvertor(
530 NiciraUtil.createOfJavaKeyFrom(LearnCodec.SERIALIZER_KEY), LEARN_CONVERTOR));
531 registrations.add(extensionConverterRegistrator.registerActionConvertor(
532 NiciraUtil.createOfJavaKeyFrom(EncapCodec.SERIALIZER_KEY), ENCAP_CONVERTOR));
533 registrations.add(extensionConverterRegistrator.registerActionConvertor(
534 NiciraUtil.createOfJavaKeyFrom(DecapCodec.SERIALIZER_KEY), DECAP_CONVERTOR));
535 registrations.add(extensionConverterRegistrator.registerActionConvertor(
536 NiciraUtil.createOfJavaKeyFrom(LearnCodec.SERIALIZER_KEY), LEARN_CONVERTOR));
537 registrations.add(extensionConverterRegistrator.registerActionConvertor(
538 NiciraUtil.createOfJavaKeyFrom(DecNshTtlCodec.SERIALIZER_KEY), DEC_NSH_TTL_CONVERTOR));
540 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
541 new ConverterExtensionKey<>(NxmNxReg0Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
542 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
543 new ConverterExtensionKey<>(NxmNxReg1Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
544 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
545 new ConverterExtensionKey<>(NxmNxReg2Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
546 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
547 new ConverterExtensionKey<>(NxmNxReg3Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
548 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
549 new ConverterExtensionKey<>(NxmNxReg4Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
550 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
551 new ConverterExtensionKey<>(NxmNxReg5Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
552 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
553 new ConverterExtensionKey<>(NxmNxReg6Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
554 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
555 new ConverterExtensionKey<>(NxmNxReg7Key.VALUE, EncodeConstants.OF_VERSION_1_3), REG_CONVERTOR));
558 .add(extensionConverterRegistrator.registerMatchConvertor(Reg0Codec.SERIALIZER_KEY, REG_CONVERTOR));
560 .add(extensionConverterRegistrator.registerMatchConvertor(Reg1Codec.SERIALIZER_KEY, REG_CONVERTOR));
562 .add(extensionConverterRegistrator.registerMatchConvertor(Reg2Codec.SERIALIZER_KEY, REG_CONVERTOR));
564 .add(extensionConverterRegistrator.registerMatchConvertor(Reg3Codec.SERIALIZER_KEY, REG_CONVERTOR));
566 .add(extensionConverterRegistrator.registerMatchConvertor(Reg4Codec.SERIALIZER_KEY, REG_CONVERTOR));
568 .add(extensionConverterRegistrator.registerMatchConvertor(Reg5Codec.SERIALIZER_KEY, REG_CONVERTOR));
570 .add(extensionConverterRegistrator.registerMatchConvertor(Reg6Codec.SERIALIZER_KEY, REG_CONVERTOR));
572 .add(extensionConverterRegistrator.registerMatchConvertor(Reg7Codec.SERIALIZER_KEY, REG_CONVERTOR));
573 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
574 new ConverterExtensionKey<>(NxmNxTunIdKey.VALUE, EncodeConstants.OF_VERSION_1_3), TUN_ID_CONVERTOR));
576 .add(extensionConverterRegistrator.registerMatchConvertor(TunIdCodec.SERIALIZER_KEY, TUN_ID_CONVERTOR));
577 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
578 new ConverterExtensionKey<>(NxmNxArpShaKey.VALUE, EncodeConstants.OF_VERSION_1_3), ARP_SHA_CONVERTOR));
580 extensionConverterRegistrator.registerMatchConvertor(ArpShaCodec.SERIALIZER_KEY, ARP_SHA_CONVERTOR));
581 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
582 new ConverterExtensionKey<>(NxmNxArpThaKey.VALUE, EncodeConstants.OF_VERSION_1_3), ARP_THA_CONVERTOR));
584 extensionConverterRegistrator.registerMatchConvertor(ArpThaCodec.SERIALIZER_KEY, ARP_THA_CONVERTOR));
585 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
586 new ConverterExtensionKey<>(NxmOfArpOpKey.VALUE, EncodeConstants.OF_VERSION_1_3), ARP_OP_CONVERTOR));
588 .add(extensionConverterRegistrator.registerMatchConvertor(ArpOpCodec.SERIALIZER_KEY, ARP_OP_CONVERTOR));
589 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
590 new ConverterExtensionKey<>(NxmOfArpSpaKey.VALUE, EncodeConstants.OF_VERSION_1_3), ARP_SPA_CONVERTOR));
592 extensionConverterRegistrator.registerMatchConvertor(ArpSpaCodec.SERIALIZER_KEY, ARP_SPA_CONVERTOR));
593 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
594 new ConverterExtensionKey<>(NxmOfArpTpaKey.VALUE, EncodeConstants.OF_VERSION_1_3), ARP_TPA_CONVERTOR));
596 extensionConverterRegistrator.registerMatchConvertor(ArpTpaCodec.SERIALIZER_KEY, ARP_TPA_CONVERTOR));
597 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
598 new ConverterExtensionKey<>(NxmOfInPortKey.VALUE, EncodeConstants.OF_VERSION_1_3),
599 NXM_IN_PORT_CONVERTOR));
600 registrations.add(extensionConverterRegistrator.registerMatchConvertor(InPortCodec.SERIALIZER_KEY,
601 NXM_IN_PORT_CONVERTOR));
602 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
603 new ConverterExtensionKey<>(NxmOfEthSrcKey.VALUE, EncodeConstants.OF_VERSION_1_3), ETH_SRC_CONVERTOR));
605 extensionConverterRegistrator.registerMatchConvertor(EthSrcCodec.SERIALIZER_KEY, ETH_SRC_CONVERTOR));
606 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
607 new ConverterExtensionKey<>(NxmOfEthDstKey.VALUE, EncodeConstants.OF_VERSION_1_3), ETH_DST_CONVERTOR));
609 extensionConverterRegistrator.registerMatchConvertor(EthDstCodec.SERIALIZER_KEY, ETH_DST_CONVERTOR));
610 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
611 new ConverterExtensionKey<>(NxmOfEthTypeKey.VALUE, EncodeConstants.OF_VERSION_1_3),
612 ETH_TYPE_CONVERTOR));
614 extensionConverterRegistrator.registerMatchConvertor(EthTypeCodec.SERIALIZER_KEY, ETH_TYPE_CONVERTOR));
615 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
616 new ConverterExtensionKey<>(NxmNxNspKey.VALUE, EncodeConstants.OF_VERSION_1_3), NSP_CONVERTOR));
617 registrations.add(extensionConverterRegistrator.registerMatchConvertor(NspCodec.SERIALIZER_KEY, NSP_CONVERTOR));
618 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
619 new ConverterExtensionKey<>(NxmNxNsiKey.VALUE, EncodeConstants.OF_VERSION_1_3), NSI_CONVERTOR));
620 registrations.add(extensionConverterRegistrator.registerMatchConvertor(NsiCodec.SERIALIZER_KEY, NSI_CONVERTOR));
621 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
622 new ConverterExtensionKey<>(NxmNxNshc1Key.VALUE, EncodeConstants.OF_VERSION_1_3), NSC1_CONVERTOR));
624 .add(extensionConverterRegistrator.registerMatchConvertor(Nshc1Codec.SERIALIZER_KEY, NSC1_CONVERTOR));
625 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
626 new ConverterExtensionKey<>(NxmNxNshc2Key.VALUE, EncodeConstants.OF_VERSION_1_3), NSC2_CONVERTOR));
628 .add(extensionConverterRegistrator.registerMatchConvertor(Nshc2Codec.SERIALIZER_KEY, NSC2_CONVERTOR));
629 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
630 new ConverterExtensionKey<>(NxmNxNshc3Key.VALUE, EncodeConstants.OF_VERSION_1_3), NSC3_CONVERTOR));
632 .add(extensionConverterRegistrator.registerMatchConvertor(Nshc3Codec.SERIALIZER_KEY, NSC3_CONVERTOR));
633 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
634 new ConverterExtensionKey<>(NxmNxNshc4Key.VALUE, EncodeConstants.OF_VERSION_1_3), NSC4_CONVERTOR));
636 .add(extensionConverterRegistrator.registerMatchConvertor(Nshc4Codec.SERIALIZER_KEY, NSC4_CONVERTOR));
637 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
638 new ConverterExtensionKey<>(NxmNxNshFlagsKey.VALUE, EncodeConstants.OF_VERSION_1_3),
639 NSH_FLAGS_CONVERTOR));
640 registrations.add(extensionConverterRegistrator.registerMatchConvertor(NshFlagsCodec.SERIALIZER_KEY,
641 NSH_FLAGS_CONVERTOR));
642 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
643 new ConverterExtensionKey<>(NxmNxNshTtlKey.VALUE, EncodeConstants.OF_VERSION_1_3),
645 registrations.add(extensionConverterRegistrator.registerMatchConvertor(NshTtlCodec.SERIALIZER_KEY,
647 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
648 new ConverterExtensionKey<>(NxmNxTunIpv4SrcKey.VALUE, EncodeConstants.OF_VERSION_1_3),
649 TUN_IPV4_SRC_CONVERTOR));
650 registrations.add(extensionConverterRegistrator.registerMatchConvertor(TunIpv4SrcCodec.SERIALIZER_KEY,
651 TUN_IPV4_SRC_CONVERTOR));
652 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
653 new ConverterExtensionKey<>(NxmNxTunIpv4DstKey.VALUE, EncodeConstants.OF_VERSION_1_3),
654 TUN_IPV4_DST_CONVERTOR));
655 registrations.add(extensionConverterRegistrator.registerMatchConvertor(TunIpv4DstCodec.SERIALIZER_KEY,
656 TUN_IPV4_DST_CONVERTOR));
657 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
658 new ConverterExtensionKey<>(NxmNxNshMdtypeKey.VALUE, EncodeConstants.OF_VERSION_1_3),
659 NSH_MDTYPE_CONVERTOR));
660 registrations.add(extensionConverterRegistrator.registerMatchConvertor(NshMdtypeCodec.SERIALIZER_KEY,
661 NSH_MDTYPE_CONVERTOR));
662 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
663 new ConverterExtensionKey<>(NxmNxNshNpKey.VALUE, EncodeConstants.OF_VERSION_1_3), NSH_NP_CONVERTOR));
665 extensionConverterRegistrator.registerMatchConvertor(NshNpCodec.SERIALIZER_KEY, NSH_NP_CONVERTOR));
666 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
667 new ConverterExtensionKey<>(NxmOfTcpSrcKey.VALUE, EncodeConstants.OF_VERSION_1_3), TCP_SRC_CONVERTOR));
669 extensionConverterRegistrator.registerMatchConvertor(TcpSrcCodec.SERIALIZER_KEY, TCP_SRC_CONVERTOR));
670 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
671 new ConverterExtensionKey<>(NxmOfTcpDstKey.VALUE, EncodeConstants.OF_VERSION_1_3), TCP_DST_CONVERTOR));
673 extensionConverterRegistrator.registerMatchConvertor(TcpDstCodec.SERIALIZER_KEY, TCP_DST_CONVERTOR));
674 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
675 new ConverterExtensionKey<>(NxmOfUdpSrcKey.VALUE, EncodeConstants.OF_VERSION_1_3), UDP_SRC_CONVERTOR));
677 extensionConverterRegistrator.registerMatchConvertor(UdpSrcCodec.SERIALIZER_KEY, UDP_SRC_CONVERTOR));
678 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
679 new ConverterExtensionKey<>(NxmOfUdpDstKey.VALUE, EncodeConstants.OF_VERSION_1_3), UDP_DST_CONVERTOR));
681 extensionConverterRegistrator.registerMatchConvertor(UdpDstCodec.SERIALIZER_KEY, UDP_DST_CONVERTOR));
682 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
683 new ConverterExtensionKey<>(NxmNxCtStateKey.VALUE, EncodeConstants.OF_VERSION_1_3),
684 CT_STATE_CONVERTOR));
686 extensionConverterRegistrator.registerMatchConvertor(CtStateCodec.SERIALIZER_KEY, CT_STATE_CONVERTOR));
687 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
688 new ConverterExtensionKey<>(NxmNxCtZoneKey.VALUE, EncodeConstants.OF_VERSION_1_3), CT_ZONE_CONVERTOR));
690 extensionConverterRegistrator.registerMatchConvertor(CtZoneCodec.SERIALIZER_KEY, CT_ZONE_CONVERTOR));
691 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
692 new ConverterExtensionKey<>(NxmNxCtMarkKey.VALUE, EncodeConstants.OF_VERSION_1_3), CT_MARK_CONVERTOR));
694 extensionConverterRegistrator.registerMatchConvertor(CtMarkCodec.SERIALIZER_KEY, CT_MARK_CONVERTOR));
695 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
696 new ConverterExtensionKey<>(NxmNxCtTpSrcKey.VALUE, EncodeConstants.OF_VERSION_1_3),
697 CT_TP_SRC_CONVERTOR));
699 extensionConverterRegistrator.registerMatchConvertor(CtTpSrcCodec.SERIALIZER_KEY, CT_TP_SRC_CONVERTOR));
700 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
701 new ConverterExtensionKey<>(NxmNxCtTpDstKey.VALUE, EncodeConstants.OF_VERSION_1_3),
702 CT_TP_DST_CONVERTOR));
704 extensionConverterRegistrator.registerMatchConvertor(CtTpDstCodec.SERIALIZER_KEY, CT_TP_DST_CONVERTOR));
705 registrations.add(extensionConverterRegistrator.registerMatchConvertor(
706 new ConverterExtensionKey<>(NxmNxPktMarkKey.VALUE, EncodeConstants.OF_VERSION_1_3),
707 PKT_MARK_CONVERTOR));
709 extensionConverterRegistrator.registerMatchConvertor(PktMarkCodec.SERIALIZER_KEY, PKT_MARK_CONVERTOR));
713 @SuppressWarnings("checkstyle:IllegalCatch")
714 public void close() {
715 registrations.forEach(janitor -> {
718 } catch (RuntimeException e) {
719 LOG.warn("closing of extension converter failed", e);
723 registrations.clear();
726 private void registerAction13(final Class<? extends Action> actionCaseType, final ConvertorActionToOFJava<
727 org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.Action,
728 org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action>
730 TypeVersionKey<? extends Action> key = new TypeVersionKey<>(actionCaseType, EncodeConstants.OF_VERSION_1_3);
731 registrations.add(extensionConverterRegistrator.registerActionConvertor(key, actionConvertor));
734 private void registerAction13(final Class<? extends ActionChoice> actionCaseType,
735 final ConvertorActionFromOFJava<
736 org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action,
737 ActionPath> actionConvertor) {
738 ActionSerializerKey<?> key = new ActionSerializerKey<>(EncodeConstants.OF_VERSION_1_3, actionCaseType,
740 registrations.add(extensionConverterRegistrator.registerActionConvertor(key, actionConvertor));