Merge "OPNFLWPLUG-1006: ODL cannot control switch with pre-existing meters"
[openflowplugin.git] / extension / openflowjava-extension-nicira / src / main / java / org / opendaylight / openflowjava / nx / NiciraExtensionsRegistrator.java
1 /*
2  * Copyright (c) 2014, 2017 Cisco Systems, Inc. and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.openflowjava.nx;
10
11 import com.google.common.base.Preconditions;
12 import org.opendaylight.openflowjava.nx.api.NiciraExtensionCodecRegistrator;
13 import org.opendaylight.openflowjava.nx.codec.action.ConntrackCodec;
14 import org.opendaylight.openflowjava.nx.codec.action.CtClearCodec;
15 import org.opendaylight.openflowjava.nx.codec.action.DecNshTtlCodec;
16 import org.opendaylight.openflowjava.nx.codec.action.DecapCodec;
17 import org.opendaylight.openflowjava.nx.codec.action.EncapCodec;
18 import org.opendaylight.openflowjava.nx.codec.action.FinTimeoutCodec;
19 import org.opendaylight.openflowjava.nx.codec.action.LearnCodec;
20 import org.opendaylight.openflowjava.nx.codec.action.MultipathCodec;
21 import org.opendaylight.openflowjava.nx.codec.action.NiciraActionCodecs;
22 import org.opendaylight.openflowjava.nx.codec.action.OutputRegCodec;
23 import org.opendaylight.openflowjava.nx.codec.action.PopNshCodec;
24 import org.opendaylight.openflowjava.nx.codec.action.PushNshCodec;
25 import org.opendaylight.openflowjava.nx.codec.action.RegLoadCodec;
26 import org.opendaylight.openflowjava.nx.codec.action.RegMoveCodec;
27 import org.opendaylight.openflowjava.nx.codec.action.ResubmitCodec;
28 import org.opendaylight.openflowjava.nx.codec.match.ArpOpCodec;
29 import org.opendaylight.openflowjava.nx.codec.match.ArpShaCodec;
30 import org.opendaylight.openflowjava.nx.codec.match.ArpSpaCodec;
31 import org.opendaylight.openflowjava.nx.codec.match.ArpThaCodec;
32 import org.opendaylight.openflowjava.nx.codec.match.ArpTpaCodec;
33 import org.opendaylight.openflowjava.nx.codec.match.CtMarkCodec;
34 import org.opendaylight.openflowjava.nx.codec.match.CtStateCodec;
35 import org.opendaylight.openflowjava.nx.codec.match.CtTpDstCodec;
36 import org.opendaylight.openflowjava.nx.codec.match.CtTpSrcCodec;
37 import org.opendaylight.openflowjava.nx.codec.match.CtZoneCodec;
38 import org.opendaylight.openflowjava.nx.codec.match.EncapEthDstCodec;
39 import org.opendaylight.openflowjava.nx.codec.match.EncapEthSrcCodec;
40 import org.opendaylight.openflowjava.nx.codec.match.EncapEthTypeCodec;
41 import org.opendaylight.openflowjava.nx.codec.match.EthDstCodec;
42 import org.opendaylight.openflowjava.nx.codec.match.EthSrcCodec;
43 import org.opendaylight.openflowjava.nx.codec.match.EthTypeCodec;
44 import org.opendaylight.openflowjava.nx.codec.match.InPortCodec;
45 import org.opendaylight.openflowjava.nx.codec.match.MplsLabelCodec;
46 import org.opendaylight.openflowjava.nx.codec.match.NiciraMatchCodecs;
47 import org.opendaylight.openflowjava.nx.codec.match.NshMdtypeCodec;
48 import org.opendaylight.openflowjava.nx.codec.match.NshNpCodec;
49 import org.opendaylight.openflowjava.nx.codec.match.Nshc1Codec;
50 import org.opendaylight.openflowjava.nx.codec.match.Nshc2Codec;
51 import org.opendaylight.openflowjava.nx.codec.match.Nshc3Codec;
52 import org.opendaylight.openflowjava.nx.codec.match.Nshc4Codec;
53 import org.opendaylight.openflowjava.nx.codec.match.NsiCodec;
54 import org.opendaylight.openflowjava.nx.codec.match.NspCodec;
55 import org.opendaylight.openflowjava.nx.codec.match.PktMarkCodec;
56 import org.opendaylight.openflowjava.nx.codec.match.Reg0Codec;
57 import org.opendaylight.openflowjava.nx.codec.match.Reg1Codec;
58 import org.opendaylight.openflowjava.nx.codec.match.Reg2Codec;
59 import org.opendaylight.openflowjava.nx.codec.match.Reg3Codec;
60 import org.opendaylight.openflowjava.nx.codec.match.Reg4Codec;
61 import org.opendaylight.openflowjava.nx.codec.match.Reg5Codec;
62 import org.opendaylight.openflowjava.nx.codec.match.Reg6Codec;
63 import org.opendaylight.openflowjava.nx.codec.match.Reg7Codec;
64 import org.opendaylight.openflowjava.nx.codec.match.TcpDstCodec;
65 import org.opendaylight.openflowjava.nx.codec.match.TcpSrcCodec;
66 import org.opendaylight.openflowjava.nx.codec.match.TunGpeNpCodec;
67 import org.opendaylight.openflowjava.nx.codec.match.TunIdCodec;
68 import org.opendaylight.openflowjava.nx.codec.match.TunIpv4DstCodec;
69 import org.opendaylight.openflowjava.nx.codec.match.TunIpv4SrcCodec;
70 import org.opendaylight.openflowjava.nx.codec.match.UdpDstCodec;
71 import org.opendaylight.openflowjava.nx.codec.match.UdpSrcCodec;
72
73 public class NiciraExtensionsRegistrator implements AutoCloseable {
74     private final NiciraExtensionCodecRegistrator registrator;
75
76     public NiciraExtensionsRegistrator(NiciraExtensionCodecRegistrator registrator) {
77         this.registrator = Preconditions.checkNotNull(registrator);
78
79         registrator.registerActionDeserializer(RegLoadCodec.DESERIALIZER_KEY, NiciraActionCodecs.REG_LOAD_CODEC);
80         registrator.registerActionSerializer(RegLoadCodec.SERIALIZER_KEY, NiciraActionCodecs.REG_LOAD_CODEC);
81         registrator.registerActionDeserializer(RegMoveCodec.DESERIALIZER_KEY, NiciraActionCodecs.REG_MOVE_CODEC);
82         registrator.registerActionSerializer(RegMoveCodec.SERIALIZER_KEY, NiciraActionCodecs.REG_MOVE_CODEC);
83         registrator.registerActionDeserializer(OutputRegCodec.DESERIALIZER_KEY, NiciraActionCodecs.OUTPUT_REG_CODEC);
84         registrator.registerActionSerializer(OutputRegCodec.SERIALIZER_KEY, NiciraActionCodecs.OUTPUT_REG_CODEC);
85         registrator.registerActionSerializer(ResubmitCodec.SERIALIZER_KEY, NiciraActionCodecs.RESUBMIT_CODEC);
86         registrator.registerActionDeserializer(ResubmitCodec.DESERIALIZER_KEY, NiciraActionCodecs.RESUBMIT_CODEC);
87         registrator.registerActionDeserializer(ResubmitCodec.TABLE_DESERIALIZER_KEY, NiciraActionCodecs.RESUBMIT_CODEC);
88         registrator.registerActionSerializer(FinTimeoutCodec.SERIALIZER_KEY, NiciraActionCodecs.FIN_TIMEOUT_CODEC);
89         registrator.registerActionDeserializer(FinTimeoutCodec.DESERIALIZER_KEY, NiciraActionCodecs.FIN_TIMEOUT_CODEC);
90         registrator.registerActionSerializer(MultipathCodec.SERIALIZER_KEY, NiciraActionCodecs.MULTIPATH_CODEC);
91         registrator.registerActionDeserializer(MultipathCodec.DESERIALIZER_KEY, NiciraActionCodecs.MULTIPATH_CODEC);
92         registrator.registerActionDeserializer(PushNshCodec.DESERIALIZER_KEY, NiciraActionCodecs.PUSH_NSH_CODEC);
93         registrator.registerActionSerializer(PushNshCodec.SERIALIZER_KEY, NiciraActionCodecs.PUSH_NSH_CODEC);
94         registrator.registerActionDeserializer(PopNshCodec.DESERIALIZER_KEY, NiciraActionCodecs.POP_NSH_CODEC);
95         registrator.registerActionSerializer(PopNshCodec.SERIALIZER_KEY, NiciraActionCodecs.POP_NSH_CODEC);
96
97         registrator.registerActionSerializer(ConntrackCodec.SERIALIZER_KEY, NiciraActionCodecs.CONNTRACK_CODEC);
98         registrator.registerActionDeserializer(ConntrackCodec.DESERIALIZER_KEY, NiciraActionCodecs.CONNTRACK_CODEC);
99         registrator.registerActionSerializer(CtClearCodec.SERIALIZER_KEY, NiciraActionCodecs.CT_CLEAR_CODEC);
100         registrator.registerActionDeserializer(CtClearCodec.DESERIALIZER_KEY, NiciraActionCodecs.CT_CLEAR_CODEC);
101         registrator.registerActionSerializer(LearnCodec.SERIALIZER_KEY, NiciraActionCodecs.LEARN_CODEC);
102         registrator.registerActionDeserializer(LearnCodec.DESERIALIZER_KEY, NiciraActionCodecs.LEARN_CODEC);
103         registrator.registerActionDeserializer(EncapCodec.DESERIALIZER_KEY, NiciraActionCodecs.ENCAP_CODEC);
104         registrator.registerActionSerializer(EncapCodec.SERIALIZER_KEY, NiciraActionCodecs.ENCAP_CODEC);
105         registrator.registerActionDeserializer(DecapCodec.DESERIALIZER_KEY, NiciraActionCodecs.DECAP_CODEC);
106         registrator.registerActionSerializer(DecapCodec.SERIALIZER_KEY, NiciraActionCodecs.DECAP_CODEC);
107         registrator.registerActionDeserializer(DecNshTtlCodec.DESERIALIZER_KEY, NiciraActionCodecs.DEC_NSH_TTL_CODEC);
108         registrator.registerActionSerializer(DecNshTtlCodec.SERIALIZER_KEY, NiciraActionCodecs.DEC_NSH_TTL_CODEC);
109         // Continue
110
111         registrator.registerMatchEntrySerializer(Reg0Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG0_CODEC);
112         registrator.registerMatchEntryDeserializer(Reg0Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG0_CODEC);
113         registrator.registerMatchEntrySerializer(Reg1Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG1_CODEC);
114         registrator.registerMatchEntryDeserializer(Reg1Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG1_CODEC);
115         registrator.registerMatchEntrySerializer(Reg2Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG2_CODEC);
116         registrator.registerMatchEntryDeserializer(Reg2Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG2_CODEC);
117         registrator.registerMatchEntrySerializer(Reg3Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG3_CODEC);
118         registrator.registerMatchEntryDeserializer(Reg3Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG3_CODEC);
119         registrator.registerMatchEntrySerializer(Reg4Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG4_CODEC);
120         registrator.registerMatchEntryDeserializer(Reg4Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG4_CODEC);
121         registrator.registerMatchEntrySerializer(Reg5Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG5_CODEC);
122         registrator.registerMatchEntryDeserializer(Reg5Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG5_CODEC);
123         registrator.registerMatchEntrySerializer(Reg6Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG6_CODEC);
124         registrator.registerMatchEntryDeserializer(Reg6Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG6_CODEC);
125         registrator.registerMatchEntrySerializer(Reg7Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG7_CODEC);
126         registrator.registerMatchEntryDeserializer(Reg7Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG7_CODEC);
127         registrator.registerMatchEntrySerializer(TunIdCodec.SERIALIZER_KEY, NiciraMatchCodecs.TUN_ID_CODEC);
128         registrator.registerMatchEntryDeserializer(TunIdCodec.DESERIALIZER_KEY, NiciraMatchCodecs.TUN_ID_CODEC);
129         registrator.registerMatchEntrySerializer(ArpOpCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_OP_CODEC);
130         registrator.registerMatchEntryDeserializer(ArpOpCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_OP_CODEC);
131         registrator.registerMatchEntrySerializer(ArpShaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_SHA_CODEC);
132         registrator.registerMatchEntryDeserializer(ArpShaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_SHA_CODEC);
133         registrator.registerMatchEntrySerializer(ArpSpaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_SPA_CODEC);
134         registrator.registerMatchEntryDeserializer(ArpSpaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_SPA_CODEC);
135         registrator.registerMatchEntrySerializer(ArpThaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_THA_CODEC);
136         registrator.registerMatchEntryDeserializer(ArpThaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_THA_CODEC);
137         registrator.registerMatchEntrySerializer(ArpTpaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_TPA_CODEC);
138         registrator.registerMatchEntryDeserializer(ArpTpaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_TPA_CODEC);
139         registrator.registerMatchEntrySerializer(InPortCodec.SERIALIZER_KEY, NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC);
140         registrator.registerMatchEntryDeserializer(InPortCodec.DESERIALIZER_KEY,
141                 NiciraMatchCodecs.NXM_OF_IN_PORT_CODEC);
142         registrator.registerMatchEntrySerializer(MplsLabelCodec.SERIALIZER_KEY, NiciraMatchCodecs.OXM_OF_MPLS_LABEL);
143         registrator.registerMatchEntryDeserializer(MplsLabelCodec.DESERIALIZER_KEY,
144                 NiciraMatchCodecs.OXM_OF_MPLS_LABEL);
145         registrator.registerMatchEntrySerializer(EthDstCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_DST_CODEC);
146         registrator.registerMatchEntryDeserializer(EthDstCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ETH_DST_CODEC);
147         registrator.registerMatchEntrySerializer(EthSrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_SRC_CODEC);
148         registrator.registerMatchEntryDeserializer(EthSrcCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ETH_SRC_CODEC);
149         registrator.registerMatchEntrySerializer(EthTypeCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_TYPE_CODEC);
150         registrator.registerMatchEntryDeserializer(EthTypeCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ETH_TYPE_CODEC);
151         registrator.registerMatchEntrySerializer(NspCodec.SERIALIZER_KEY, NiciraMatchCodecs.NSP_CODEC);
152         registrator.registerMatchEntryDeserializer(NspCodec.DESERIALIZER_KEY, NiciraMatchCodecs.NSP_CODEC);
153         registrator.registerMatchEntrySerializer(Nshc1Codec.SERIALIZER_KEY, NiciraMatchCodecs.NSC1_CODEC);
154         registrator.registerMatchEntryDeserializer(Nshc1Codec.DESERIALIZER_KEY, NiciraMatchCodecs.NSC1_CODEC);
155         registrator.registerMatchEntrySerializer(Nshc2Codec.SERIALIZER_KEY, NiciraMatchCodecs.NSC2_CODEC);
156         registrator.registerMatchEntryDeserializer(Nshc2Codec.DESERIALIZER_KEY, NiciraMatchCodecs.NSC2_CODEC);
157         registrator.registerMatchEntrySerializer(Nshc3Codec.SERIALIZER_KEY, NiciraMatchCodecs.NSC3_CODEC);
158         registrator.registerMatchEntryDeserializer(Nshc3Codec.DESERIALIZER_KEY, NiciraMatchCodecs.NSC3_CODEC);
159         registrator.registerMatchEntrySerializer(Nshc4Codec.SERIALIZER_KEY, NiciraMatchCodecs.NSC4_CODEC);
160         registrator.registerMatchEntryDeserializer(Nshc4Codec.DESERIALIZER_KEY, NiciraMatchCodecs.NSC4_CODEC);
161         registrator.registerMatchEntrySerializer(NsiCodec.SERIALIZER_KEY, NiciraMatchCodecs.NSI_CODEC);
162         registrator.registerMatchEntryDeserializer(NsiCodec.DESERIALIZER_KEY, NiciraMatchCodecs.NSI_CODEC);
163         registrator.registerMatchEntrySerializer(TunIpv4DstCodec.SERIALIZER_KEY, NiciraMatchCodecs.TUN_IPV4_DST_CODEC);
164         registrator.registerMatchEntryDeserializer(TunIpv4DstCodec.DESERIALIZER_KEY,
165                 NiciraMatchCodecs.TUN_IPV4_DST_CODEC);
166         registrator.registerMatchEntrySerializer(TunIpv4SrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.TUN_IPV4_SRC_CODEC);
167         registrator.registerMatchEntryDeserializer(TunIpv4SrcCodec.DESERIALIZER_KEY,
168                 NiciraMatchCodecs.TUN_IPV4_SRC_CODEC);
169         registrator.registerMatchEntrySerializer(EncapEthTypeCodec.SERIALIZER_KEY,
170                 NiciraMatchCodecs.ENCAP_ETH_TYPE_CODEC);
171         registrator.registerMatchEntryDeserializer(EncapEthTypeCodec.DESERIALIZER_KEY,
172                 NiciraMatchCodecs.ENCAP_ETH_TYPE_CODEC);
173         registrator.registerMatchEntrySerializer(EncapEthSrcCodec.SERIALIZER_KEY,
174                 NiciraMatchCodecs.ENCAP_ETH_SRC_CODEC);
175         registrator.registerMatchEntryDeserializer(EncapEthSrcCodec.DESERIALIZER_KEY,
176                 NiciraMatchCodecs.ENCAP_ETH_SRC_CODEC);
177         registrator.registerMatchEntrySerializer(EncapEthDstCodec.SERIALIZER_KEY,
178                 NiciraMatchCodecs.ENCAP_ETH_DST_CODEC);
179         registrator.registerMatchEntryDeserializer(EncapEthDstCodec.DESERIALIZER_KEY,
180                 NiciraMatchCodecs.ENCAP_ETH_DST_CODEC);
181         registrator.registerMatchEntrySerializer(NshMdtypeCodec.SERIALIZER_KEY, NiciraMatchCodecs.NSH_MDTYPE_CODEC);
182         registrator.registerMatchEntryDeserializer(NshMdtypeCodec.DESERIALIZER_KEY, NiciraMatchCodecs.NSH_MDTYPE_CODEC);
183         registrator.registerMatchEntrySerializer(NshNpCodec.SERIALIZER_KEY, NiciraMatchCodecs.NSH_NP_CODEC);
184         registrator.registerMatchEntryDeserializer(NshNpCodec.DESERIALIZER_KEY, NiciraMatchCodecs.NSH_NP_CODEC);
185         registrator.registerMatchEntrySerializer(TunGpeNpCodec.SERIALIZER_KEY, NiciraMatchCodecs.TUN_GPE_NP_CODEC);
186         registrator.registerMatchEntryDeserializer(TunGpeNpCodec.DESERIALIZER_KEY, NiciraMatchCodecs.TUN_GPE_NP_CODEC);
187         registrator.registerMatchEntrySerializer(TcpSrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.TCP_SRC_CODEC);
188         registrator.registerMatchEntryDeserializer(TcpSrcCodec.DESERIALIZER_KEY, NiciraMatchCodecs.TCP_SRC_CODEC);
189         registrator.registerMatchEntrySerializer(TcpDstCodec.SERIALIZER_KEY, NiciraMatchCodecs.TCP_DST_CODEC);
190         registrator.registerMatchEntryDeserializer(TcpDstCodec.DESERIALIZER_KEY, NiciraMatchCodecs.TCP_DST_CODEC);
191         registrator.registerMatchEntrySerializer(UdpSrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.UDP_SRC_CODEC);
192         registrator.registerMatchEntryDeserializer(UdpSrcCodec.DESERIALIZER_KEY, NiciraMatchCodecs.UDP_SRC_CODEC);
193         registrator.registerMatchEntrySerializer(UdpDstCodec.SERIALIZER_KEY, NiciraMatchCodecs.UDP_DST_CODEC);
194         registrator.registerMatchEntryDeserializer(UdpDstCodec.DESERIALIZER_KEY, NiciraMatchCodecs.UDP_DST_CODEC);
195         registrator.registerMatchEntrySerializer(CtStateCodec.SERIALIZER_KEY, NiciraMatchCodecs.CT_ST_CODEC);
196         registrator.registerMatchEntryDeserializer(CtStateCodec.DESERIALIZER_KEY, NiciraMatchCodecs.CT_ST_CODEC);
197         registrator.registerMatchEntrySerializer(CtZoneCodec.SERIALIZER_KEY, NiciraMatchCodecs.CT_ZONE_CODEC);
198         registrator.registerMatchEntryDeserializer(CtZoneCodec.DESERIALIZER_KEY, NiciraMatchCodecs.CT_ZONE_CODEC);
199         registrator.registerMatchEntrySerializer(CtMarkCodec.SERIALIZER_KEY, NiciraMatchCodecs.CT_MARK_CODEC);
200         registrator.registerMatchEntryDeserializer(CtMarkCodec.DESERIALIZER_KEY, NiciraMatchCodecs.CT_MARK_CODEC);
201         registrator.registerMatchEntrySerializer(CtTpSrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.CT_TP_SRC_CODEC);
202         registrator.registerMatchEntryDeserializer(CtTpSrcCodec.DESERIALIZER_KEY, NiciraMatchCodecs.CT_TP_SRC_CODEC);
203         registrator.registerMatchEntrySerializer(CtTpDstCodec.SERIALIZER_KEY, NiciraMatchCodecs.CT_TP_DST_CODEC);
204         registrator.registerMatchEntryDeserializer(CtTpDstCodec.DESERIALIZER_KEY, NiciraMatchCodecs.CT_TP_DST_CODEC);
205         registrator.registerMatchEntrySerializer(PktMarkCodec.SERIALIZER_KEY, NiciraMatchCodecs.PKT_MARK_CODEC);
206         registrator.registerMatchEntryDeserializer(PktMarkCodec.DESERIALIZER_KEY, NiciraMatchCodecs.PKT_MARK_CODEC);
207     }
208
209     @Override
210     public void close() throws Exception {
211         registrator.unregisterActionDeserializer(RegLoadCodec.DESERIALIZER_KEY);
212         registrator.unregisterActionSerializer(RegLoadCodec.SERIALIZER_KEY);
213         registrator.unregisterActionDeserializer(RegMoveCodec.DESERIALIZER_KEY);
214         registrator.unregisterActionSerializer(RegMoveCodec.SERIALIZER_KEY);
215         registrator.unregisterActionDeserializer(OutputRegCodec.DESERIALIZER_KEY);
216         registrator.unregisterActionSerializer(OutputRegCodec.SERIALIZER_KEY);
217         registrator.unregisterActionSerializer(ResubmitCodec.SERIALIZER_KEY);
218         registrator.unregisterActionDeserializer(ResubmitCodec.TABLE_DESERIALIZER_KEY);
219         registrator.unregisterActionDeserializer(ResubmitCodec.DESERIALIZER_KEY);
220         registrator.unregisterActionSerializer(FinTimeoutCodec.SERIALIZER_KEY);
221         registrator.unregisterActionDeserializer(FinTimeoutCodec.DESERIALIZER_KEY);
222         registrator.unregisterActionSerializer(MultipathCodec.SERIALIZER_KEY);
223         registrator.unregisterActionDeserializer(MultipathCodec.DESERIALIZER_KEY);
224         registrator.unregisterActionDeserializer(PushNshCodec.DESERIALIZER_KEY);
225         registrator.unregisterActionSerializer(PushNshCodec.SERIALIZER_KEY);
226         registrator.unregisterActionDeserializer(PopNshCodec.DESERIALIZER_KEY);
227         registrator.unregisterActionSerializer(PopNshCodec.SERIALIZER_KEY);
228         registrator.unregisterActionSerializer(ConntrackCodec.SERIALIZER_KEY);
229         registrator.unregisterActionDeserializer(ConntrackCodec.DESERIALIZER_KEY);
230         registrator.unregisterActionSerializer(CtClearCodec.SERIALIZER_KEY);
231         registrator.unregisterActionDeserializer(CtClearCodec.DESERIALIZER_KEY);
232         registrator.unregisterActionSerializer(LearnCodec.SERIALIZER_KEY);
233         registrator.unregisterActionDeserializer(LearnCodec.DESERIALIZER_KEY);
234         registrator.unregisterActionSerializer(EncapCodec.SERIALIZER_KEY);
235         registrator.unregisterActionDeserializer(EncapCodec.DESERIALIZER_KEY);
236         registrator.unregisterActionSerializer(DecapCodec.SERIALIZER_KEY);
237         registrator.unregisterActionDeserializer(DecapCodec.DESERIALIZER_KEY);
238         registrator.unregisterActionDeserializer(DecNshTtlCodec.DESERIALIZER_KEY);
239         registrator.unregisterActionSerializer(DecNshTtlCodec.SERIALIZER_KEY);
240         // CONTINUE
241         registrator.unregisterMatchEntrySerializer(Reg0Codec.SERIALIZER_KEY);
242         registrator.unregisterMatchEntryDeserializer(Reg0Codec.DESERIALIZER_KEY);
243         registrator.unregisterMatchEntrySerializer(Reg1Codec.SERIALIZER_KEY);
244         registrator.unregisterMatchEntryDeserializer(Reg1Codec.DESERIALIZER_KEY);
245         registrator.unregisterMatchEntrySerializer(Reg2Codec.SERIALIZER_KEY);
246         registrator.unregisterMatchEntryDeserializer(Reg2Codec.DESERIALIZER_KEY);
247         registrator.unregisterMatchEntrySerializer(Reg3Codec.SERIALIZER_KEY);
248         registrator.unregisterMatchEntryDeserializer(Reg3Codec.DESERIALIZER_KEY);
249         registrator.unregisterMatchEntrySerializer(Reg4Codec.SERIALIZER_KEY);
250         registrator.unregisterMatchEntryDeserializer(Reg4Codec.DESERIALIZER_KEY);
251         registrator.unregisterMatchEntrySerializer(Reg5Codec.SERIALIZER_KEY);
252         registrator.unregisterMatchEntryDeserializer(Reg5Codec.DESERIALIZER_KEY);
253         registrator.unregisterMatchEntrySerializer(Reg6Codec.SERIALIZER_KEY);
254         registrator.unregisterMatchEntryDeserializer(Reg6Codec.DESERIALIZER_KEY);
255         registrator.unregisterMatchEntrySerializer(Reg7Codec.SERIALIZER_KEY);
256         registrator.unregisterMatchEntryDeserializer(Reg7Codec.DESERIALIZER_KEY);
257         registrator.unregisterMatchEntrySerializer(TunIdCodec.SERIALIZER_KEY);
258         registrator.unregisterMatchEntryDeserializer(TunIdCodec.DESERIALIZER_KEY);
259         registrator.unregisterMatchEntrySerializer(ArpOpCodec.SERIALIZER_KEY);
260         registrator.unregisterMatchEntryDeserializer(ArpOpCodec.DESERIALIZER_KEY);
261         registrator.unregisterMatchEntrySerializer(ArpShaCodec.SERIALIZER_KEY);
262         registrator.unregisterMatchEntryDeserializer(ArpShaCodec.DESERIALIZER_KEY);
263         registrator.unregisterMatchEntrySerializer(ArpSpaCodec.SERIALIZER_KEY);
264         registrator.unregisterMatchEntryDeserializer(ArpSpaCodec.DESERIALIZER_KEY);
265         registrator.unregisterMatchEntrySerializer(ArpThaCodec.SERIALIZER_KEY);
266         registrator.unregisterMatchEntryDeserializer(ArpThaCodec.DESERIALIZER_KEY);
267         registrator.unregisterMatchEntrySerializer(ArpTpaCodec.SERIALIZER_KEY);
268         registrator.unregisterMatchEntryDeserializer(ArpTpaCodec.DESERIALIZER_KEY);
269         registrator.unregisterMatchEntrySerializer(InPortCodec.SERIALIZER_KEY);
270         registrator.unregisterMatchEntryDeserializer(InPortCodec.DESERIALIZER_KEY);
271         registrator.unregisterMatchEntrySerializer(MplsLabelCodec.SERIALIZER_KEY);
272         registrator.unregisterMatchEntryDeserializer(MplsLabelCodec.DESERIALIZER_KEY);
273         registrator.unregisterMatchEntrySerializer(EthDstCodec.SERIALIZER_KEY);
274         registrator.unregisterMatchEntryDeserializer(EthDstCodec.DESERIALIZER_KEY);
275         registrator.unregisterMatchEntrySerializer(EthSrcCodec.SERIALIZER_KEY);
276         registrator.unregisterMatchEntryDeserializer(EthSrcCodec.DESERIALIZER_KEY);
277         registrator.unregisterMatchEntrySerializer(EthTypeCodec.SERIALIZER_KEY);
278         registrator.unregisterMatchEntryDeserializer(EthTypeCodec.DESERIALIZER_KEY);
279         registrator.unregisterMatchEntrySerializer(NspCodec.SERIALIZER_KEY);
280         registrator.unregisterMatchEntryDeserializer(NspCodec.DESERIALIZER_KEY);
281         registrator.unregisterMatchEntrySerializer(NsiCodec.SERIALIZER_KEY);
282         registrator.unregisterMatchEntryDeserializer(NsiCodec.DESERIALIZER_KEY);
283         registrator.unregisterMatchEntrySerializer(Nshc1Codec.SERIALIZER_KEY);
284         registrator.unregisterMatchEntryDeserializer(Nshc1Codec.DESERIALIZER_KEY);
285         registrator.unregisterMatchEntrySerializer(Nshc2Codec.SERIALIZER_KEY);
286         registrator.unregisterMatchEntryDeserializer(Nshc2Codec.DESERIALIZER_KEY);
287         registrator.unregisterMatchEntrySerializer(Nshc3Codec.SERIALIZER_KEY);
288         registrator.unregisterMatchEntryDeserializer(Nshc3Codec.DESERIALIZER_KEY);
289         registrator.unregisterMatchEntrySerializer(Nshc4Codec.SERIALIZER_KEY);
290         registrator.unregisterMatchEntryDeserializer(Nshc4Codec.DESERIALIZER_KEY);
291         registrator.unregisterMatchEntrySerializer(TunIpv4DstCodec.SERIALIZER_KEY);
292         registrator.unregisterMatchEntryDeserializer(TunIpv4DstCodec.DESERIALIZER_KEY);
293         registrator.unregisterMatchEntrySerializer(TunIpv4SrcCodec.SERIALIZER_KEY);
294         registrator.unregisterMatchEntryDeserializer(TunIpv4SrcCodec.DESERIALIZER_KEY);
295         registrator.unregisterMatchEntrySerializer(EncapEthTypeCodec.SERIALIZER_KEY);
296         registrator.unregisterMatchEntryDeserializer(EncapEthTypeCodec.DESERIALIZER_KEY);
297         registrator.unregisterMatchEntrySerializer(EncapEthSrcCodec.SERIALIZER_KEY);
298         registrator.unregisterMatchEntryDeserializer(EncapEthSrcCodec.DESERIALIZER_KEY);
299         registrator.unregisterMatchEntrySerializer(EncapEthDstCodec.SERIALIZER_KEY);
300         registrator.unregisterMatchEntryDeserializer(EncapEthDstCodec.DESERIALIZER_KEY);
301         registrator.unregisterMatchEntrySerializer(NshMdtypeCodec.SERIALIZER_KEY);
302         registrator.unregisterMatchEntryDeserializer(NshMdtypeCodec.DESERIALIZER_KEY);
303         registrator.unregisterMatchEntrySerializer(NshNpCodec.SERIALIZER_KEY);
304         registrator.unregisterMatchEntryDeserializer(NshNpCodec.DESERIALIZER_KEY);
305         registrator.unregisterMatchEntrySerializer(TunGpeNpCodec.SERIALIZER_KEY);
306         registrator.unregisterMatchEntryDeserializer(TunGpeNpCodec.DESERIALIZER_KEY);
307         registrator.unregisterMatchEntrySerializer(TcpSrcCodec.SERIALIZER_KEY);
308         registrator.unregisterMatchEntryDeserializer(TcpSrcCodec.DESERIALIZER_KEY);
309         registrator.unregisterMatchEntrySerializer(TcpDstCodec.SERIALIZER_KEY);
310         registrator.unregisterMatchEntryDeserializer(TcpDstCodec.DESERIALIZER_KEY);
311         registrator.unregisterMatchEntrySerializer(UdpSrcCodec.SERIALIZER_KEY);
312         registrator.unregisterMatchEntryDeserializer(UdpSrcCodec.DESERIALIZER_KEY);
313         registrator.unregisterMatchEntrySerializer(UdpDstCodec.SERIALIZER_KEY);
314         registrator.unregisterMatchEntryDeserializer(UdpDstCodec.DESERIALIZER_KEY);
315         registrator.unregisterMatchEntrySerializer(CtStateCodec.SERIALIZER_KEY);
316         registrator.unregisterMatchEntryDeserializer(CtStateCodec.DESERIALIZER_KEY);
317         registrator.unregisterMatchEntrySerializer(CtZoneCodec.SERIALIZER_KEY);
318         registrator.unregisterMatchEntryDeserializer(CtZoneCodec.DESERIALIZER_KEY);
319         registrator.unregisterMatchEntrySerializer(CtMarkCodec.SERIALIZER_KEY);
320         registrator.unregisterMatchEntryDeserializer(CtMarkCodec.DESERIALIZER_KEY);
321         registrator.unregisterMatchEntrySerializer(CtTpSrcCodec.SERIALIZER_KEY);
322         registrator.unregisterMatchEntryDeserializer(CtTpSrcCodec.DESERIALIZER_KEY);
323         registrator.unregisterMatchEntrySerializer(CtTpDstCodec.SERIALIZER_KEY);
324         registrator.unregisterMatchEntryDeserializer(CtTpDstCodec.DESERIALIZER_KEY);
325         registrator.unregisterMatchEntrySerializer(PktMarkCodec.SERIALIZER_KEY);
326         registrator.unregisterMatchEntryDeserializer(PktMarkCodec.DESERIALIZER_KEY);
327     }
328 }