6f64c76d9a7e3219e6151a8ff451d47286e5570c
[openflowplugin.git] / extension / openflowjava-extension-nicira / src / main / java / org / opendaylight / openflowjava / nx / NiciraExtensionsRegistrator.java
1 package org.opendaylight.openflowjava.nx;
2
3 import org.opendaylight.openflowjava.nx.api.NiciraExtensionCodecRegistrator;
4 import org.opendaylight.openflowjava.nx.codec.action.NiciraActionCodecs;
5 import org.opendaylight.openflowjava.nx.codec.action.OutputRegCodec;
6 import org.opendaylight.openflowjava.nx.codec.action.RegLoadCodec;
7 import org.opendaylight.openflowjava.nx.codec.action.RegMoveCodec;
8 import org.opendaylight.openflowjava.nx.codec.action.ResubmitCodec;
9 import org.opendaylight.openflowjava.nx.codec.action.MultipathCodec;
10 import org.opendaylight.openflowjava.nx.codec.match.ArpOpCodec;
11 import org.opendaylight.openflowjava.nx.codec.match.ArpShaCodec;
12 import org.opendaylight.openflowjava.nx.codec.match.ArpSpaCodec;
13 import org.opendaylight.openflowjava.nx.codec.match.ArpThaCodec;
14 import org.opendaylight.openflowjava.nx.codec.match.ArpTpaCodec;
15 import org.opendaylight.openflowjava.nx.codec.match.EthDstCodec;
16 import org.opendaylight.openflowjava.nx.codec.match.EthSrcCodec;
17 import org.opendaylight.openflowjava.nx.codec.match.EthTypeCodec;
18 import org.opendaylight.openflowjava.nx.codec.match.Reg0Codec;
19 import org.opendaylight.openflowjava.nx.codec.match.Reg1Codec;
20 import org.opendaylight.openflowjava.nx.codec.match.Reg2Codec;
21 import org.opendaylight.openflowjava.nx.codec.match.Reg3Codec;
22 import org.opendaylight.openflowjava.nx.codec.match.Reg4Codec;
23 import org.opendaylight.openflowjava.nx.codec.match.Reg5Codec;
24 import org.opendaylight.openflowjava.nx.codec.match.Reg6Codec;
25 import org.opendaylight.openflowjava.nx.codec.match.Reg7Codec;
26 import org.opendaylight.openflowjava.nx.codec.match.TunIdCodec;
27 import org.opendaylight.openflowjava.nx.codec.match.TunIpv4DstCodec;
28 import org.opendaylight.openflowjava.nx.codec.match.TunIpv4SrcCodec;
29
30 import com.google.common.base.Preconditions;
31
32 public class NiciraExtensionsRegistrator implements AutoCloseable {
33
34     private final NiciraExtensionCodecRegistrator registrator;
35
36     /**
37      * @param providers cannot be null
38      */
39     public NiciraExtensionsRegistrator(NiciraExtensionCodecRegistrator registrator) {
40         Preconditions.checkNotNull(registrator);
41         this.registrator = registrator;
42     }
43
44     public void registerNiciraExtensions() {
45         registrator.registerActionDeserializer(RegLoadCodec.DESERIALIZER_KEY, NiciraActionCodecs.REG_LOAD_CODEC);
46         registrator.registerActionSerializer(RegLoadCodec.SERIALIZER_KEY, NiciraActionCodecs.REG_LOAD_CODEC);
47         registrator.registerActionDeserializer(RegMoveCodec.DESERIALIZER_KEY, NiciraActionCodecs.REG_MOVE_CODEC);
48         registrator.registerActionSerializer(RegMoveCodec.SERIALIZER_KEY, NiciraActionCodecs.REG_MOVE_CODEC);
49         registrator.registerActionDeserializer(OutputRegCodec.DESERIALIZER_KEY, NiciraActionCodecs.OUTPUT_REG_CODEC);
50         registrator.registerActionSerializer(OutputRegCodec.SERIALIZER_KEY, NiciraActionCodecs.OUTPUT_REG_CODEC);
51         registrator.registerMatchEntrySerializer(Reg0Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG0_CODEC);
52         registrator.registerMatchEntryDeserializer(Reg0Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG0_CODEC);
53         registrator.registerMatchEntrySerializer(Reg1Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG1_CODEC);
54         registrator.registerMatchEntryDeserializer(Reg1Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG1_CODEC);
55         registrator.registerMatchEntrySerializer(Reg2Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG2_CODEC);
56         registrator.registerMatchEntryDeserializer(Reg2Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG2_CODEC);
57         registrator.registerMatchEntrySerializer(Reg3Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG3_CODEC);
58         registrator.registerMatchEntryDeserializer(Reg3Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG3_CODEC);
59         registrator.registerMatchEntrySerializer(Reg4Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG4_CODEC);
60         registrator.registerMatchEntryDeserializer(Reg4Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG4_CODEC);
61         registrator.registerMatchEntrySerializer(Reg5Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG5_CODEC);
62         registrator.registerMatchEntryDeserializer(Reg5Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG5_CODEC);
63         registrator.registerMatchEntrySerializer(Reg6Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG6_CODEC);
64         registrator.registerMatchEntryDeserializer(Reg6Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG6_CODEC);
65         registrator.registerMatchEntrySerializer(Reg7Codec.SERIALIZER_KEY, NiciraMatchCodecs.REG7_CODEC);
66         registrator.registerMatchEntryDeserializer(Reg7Codec.DESERIALIZER_KEY, NiciraMatchCodecs.REG7_CODEC);
67         registrator.registerMatchEntrySerializer(TunIdCodec.SERIALIZER_KEY, NiciraMatchCodecs.TUN_ID_CODEC);
68         registrator.registerMatchEntryDeserializer(TunIdCodec.DESERIALIZER_KEY, NiciraMatchCodecs.TUN_ID_CODEC);
69         registrator.registerMatchEntrySerializer(ArpOpCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_OP_CODEC);
70         registrator.registerMatchEntryDeserializer(ArpOpCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_OP_CODEC);
71         registrator.registerMatchEntrySerializer(ArpShaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_SHA_CODEC);
72         registrator.registerMatchEntryDeserializer(ArpShaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_SHA_CODEC);
73         registrator.registerMatchEntrySerializer(ArpSpaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_SPA_CODEC);
74         registrator.registerMatchEntryDeserializer(ArpSpaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_SPA_CODEC);
75         registrator.registerMatchEntrySerializer(ArpThaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_THA_CODEC);
76         registrator.registerMatchEntryDeserializer(ArpThaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_THA_CODEC);
77         registrator.registerMatchEntrySerializer(ArpTpaCodec.SERIALIZER_KEY, NiciraMatchCodecs.ARP_TPA_CODEC);
78         registrator.registerMatchEntryDeserializer(ArpTpaCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ARP_TPA_CODEC);
79         registrator.registerMatchEntrySerializer(EthDstCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_DST_CODEC);
80         registrator.registerMatchEntryDeserializer(EthDstCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ETH_DST_CODEC);
81         registrator.registerMatchEntrySerializer(EthSrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_SRC_CODEC);
82         registrator.registerMatchEntryDeserializer(EthSrcCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ETH_SRC_CODEC);
83         registrator.registerMatchEntrySerializer(TunIpv4DstCodec.SERIALIZER_KEY, NiciraMatchCodecs.TUN_IPV4_DST_CODEC);
84         registrator.registerMatchEntryDeserializer(TunIpv4DstCodec.DESERIALIZER_KEY, NiciraMatchCodecs.TUN_IPV4_DST_CODEC);
85         registrator.registerMatchEntrySerializer(TunIpv4SrcCodec.SERIALIZER_KEY, NiciraMatchCodecs.TUN_IPV4_SRC_CODEC);
86         registrator.registerMatchEntryDeserializer(TunIpv4SrcCodec.DESERIALIZER_KEY, NiciraMatchCodecs.TUN_IPV4_SRC_CODEC);
87         registrator.registerMatchEntrySerializer(EthTypeCodec.SERIALIZER_KEY, NiciraMatchCodecs.ETH_TYPE_CODEC);
88         registrator.registerMatchEntryDeserializer(EthTypeCodec.DESERIALIZER_KEY, NiciraMatchCodecs.ETH_TYPE_CODEC);
89         registrator.registerActionSerializer(ResubmitCodec.SERIALIZER_KEY, NiciraActionCodecs.RESUBMIT_CODEC);
90         registrator.registerActionDeserializer(ResubmitCodec.DESERIALIZER_KEY, NiciraActionCodecs.RESUBMIT_CODEC);
91         registrator.registerActionDeserializer(ResubmitCodec.TABLE_DESERIALIZER_KEY, NiciraActionCodecs.RESUBMIT_CODEC);
92         registrator.registerActionSerializer(MultipathCodec.SERIALIZER_KEY, NiciraActionCodecs.MULTIPATH_CODEC);
93         registrator.registerActionDeserializer(MultipathCodec.DESERIALIZER_KEY, NiciraActionCodecs.MULTIPATH_CODEC);
94     }
95
96     public void unregisterExtensions() {
97         registrator.unregisterActionDeserializer(RegLoadCodec.DESERIALIZER_KEY);
98         registrator.unregisterActionSerializer(RegLoadCodec.SERIALIZER_KEY);
99         registrator.unregisterActionDeserializer(RegMoveCodec.DESERIALIZER_KEY);
100         registrator.unregisterActionSerializer(RegMoveCodec.SERIALIZER_KEY);
101         registrator.unregisterActionDeserializer(OutputRegCodec.DESERIALIZER_KEY);
102         registrator.unregisterActionSerializer(OutputRegCodec.SERIALIZER_KEY);
103         registrator.unregisterMatchEntrySerializer(Reg0Codec.SERIALIZER_KEY);
104         registrator.unregisterMatchEntryDeserializer(Reg0Codec.DESERIALIZER_KEY);
105         registrator.unregisterMatchEntrySerializer(Reg1Codec.SERIALIZER_KEY);
106         registrator.unregisterMatchEntryDeserializer(Reg1Codec.DESERIALIZER_KEY);
107         registrator.unregisterMatchEntrySerializer(Reg2Codec.SERIALIZER_KEY);
108         registrator.unregisterMatchEntryDeserializer(Reg2Codec.DESERIALIZER_KEY);
109         registrator.unregisterMatchEntrySerializer(Reg3Codec.SERIALIZER_KEY);
110         registrator.unregisterMatchEntryDeserializer(Reg3Codec.DESERIALIZER_KEY);
111         registrator.unregisterMatchEntrySerializer(Reg4Codec.SERIALIZER_KEY);
112         registrator.unregisterMatchEntryDeserializer(Reg4Codec.DESERIALIZER_KEY);
113         registrator.unregisterMatchEntrySerializer(Reg5Codec.SERIALIZER_KEY);
114         registrator.unregisterMatchEntryDeserializer(Reg5Codec.DESERIALIZER_KEY);
115         registrator.unregisterMatchEntrySerializer(Reg6Codec.SERIALIZER_KEY);
116         registrator.unregisterMatchEntryDeserializer(Reg6Codec.DESERIALIZER_KEY);
117         registrator.unregisterMatchEntrySerializer(Reg7Codec.SERIALIZER_KEY);
118         registrator.unregisterMatchEntryDeserializer(Reg7Codec.DESERIALIZER_KEY);
119         registrator.unregisterMatchEntrySerializer(TunIdCodec.SERIALIZER_KEY);
120         registrator.unregisterMatchEntryDeserializer(TunIdCodec.DESERIALIZER_KEY);
121         registrator.unregisterMatchEntrySerializer(ArpOpCodec.SERIALIZER_KEY);
122         registrator.unregisterMatchEntryDeserializer(ArpOpCodec.DESERIALIZER_KEY);
123         registrator.unregisterMatchEntrySerializer(ArpShaCodec.SERIALIZER_KEY);
124         registrator.unregisterMatchEntryDeserializer(ArpShaCodec.DESERIALIZER_KEY);
125         registrator.unregisterMatchEntrySerializer(ArpSpaCodec.SERIALIZER_KEY);
126         registrator.unregisterMatchEntryDeserializer(ArpSpaCodec.DESERIALIZER_KEY);
127         registrator.unregisterMatchEntrySerializer(ArpThaCodec.SERIALIZER_KEY);
128         registrator.unregisterMatchEntryDeserializer(ArpThaCodec.DESERIALIZER_KEY);
129         registrator.unregisterMatchEntrySerializer(ArpTpaCodec.SERIALIZER_KEY);
130         registrator.unregisterMatchEntryDeserializer(ArpTpaCodec.DESERIALIZER_KEY);
131         registrator.unregisterMatchEntrySerializer(EthDstCodec.SERIALIZER_KEY);
132         registrator.unregisterMatchEntryDeserializer(EthDstCodec.DESERIALIZER_KEY);
133         registrator.unregisterMatchEntrySerializer(EthSrcCodec.SERIALIZER_KEY);
134         registrator.unregisterMatchEntryDeserializer(EthSrcCodec.DESERIALIZER_KEY);
135         registrator.unregisterMatchEntrySerializer(TunIpv4DstCodec.SERIALIZER_KEY);
136         registrator.unregisterMatchEntryDeserializer(TunIpv4DstCodec.DESERIALIZER_KEY);
137         registrator.unregisterMatchEntrySerializer(TunIpv4SrcCodec.SERIALIZER_KEY);
138         registrator.unregisterMatchEntryDeserializer(TunIpv4SrcCodec.DESERIALIZER_KEY);
139         registrator.unregisterMatchEntrySerializer(EthTypeCodec.SERIALIZER_KEY);
140         registrator.unregisterMatchEntryDeserializer(EthTypeCodec.DESERIALIZER_KEY);
141         registrator.unregisterActionSerializer(ResubmitCodec.SERIALIZER_KEY);
142         registrator.unregisterActionDeserializer(ResubmitCodec.TABLE_DESERIALIZER_KEY);
143         registrator.unregisterActionDeserializer(ResubmitCodec.DESERIALIZER_KEY);
144         registrator.unregisterActionSerializer(MultipathCodec.SERIALIZER_KEY);
145         registrator.unregisterActionDeserializer(MultipathCodec.DESERIALIZER_KEY);
146     }
147
148     @Override
149     public void close() throws Exception {
150         unregisterExtensions();
151     }
152
153 }