5be504c1cc5c0e74866e415da49f29b946fb2758
[bgpcep.git] / bgp / mvpn / src / main / java / org / opendaylight / protocol / bgp / mvpn / impl / TunnelIdentifierActivator.java
1 /*
2  * Copyright (c) 2018 AT&T Intellectual Property. 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.protocol.bgp.mvpn.impl;
10
11 import java.util.List;
12 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier.BidirPimTreeParser;
13 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier.IngressReplicationParser;
14 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier.MldpMp2mpLspParser;
15 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier.MldpP2mpLspParser;
16 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier.PimSmTreeParser;
17 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier.PimSsmTreeParser;
18 import org.opendaylight.protocol.bgp.mvpn.impl.attributes.tunnel.identifier.RsvpTeP2MpLspParser;
19 import org.opendaylight.protocol.bgp.mvpn.spi.pojo.attributes.tunnel.identifier.SimpleTunnelIdentifierRegistry;
20 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
21
22 /**
23  * Tunnel Identifier PMSI handlers Activator.
24  *
25  * @author Claudio D. Gasparini
26  */
27 final class TunnelIdentifierActivator {
28     private TunnelIdentifierActivator() {
29         throw new UnsupportedOperationException();
30     }
31
32     static void registerTunnelIdentifierHandlers(
33             final BGPExtensionProviderContext context,
34             final List<AutoCloseable> regs) {
35         final SimpleTunnelIdentifierRegistry tunnelIdentifierReg = SimpleTunnelIdentifierRegistry.getInstance();
36
37         final RsvpTeP2MpLspParser rsvpTeP2MpLspParser = new RsvpTeP2MpLspParser();
38         regs.add(tunnelIdentifierReg.registerParser(rsvpTeP2MpLspParser));
39         regs.add(tunnelIdentifierReg.registerSerializer(rsvpTeP2MpLspParser));
40
41         final MldpP2mpLspParser mldpP2mpLspParser = new MldpP2mpLspParser(context.getAddressFamilyRegistry());
42         regs.add(tunnelIdentifierReg.registerParser(mldpP2mpLspParser));
43         regs.add(tunnelIdentifierReg.registerSerializer(mldpP2mpLspParser));
44
45         final PimSsmTreeParser pimSsmTreeParser = new PimSsmTreeParser();
46         regs.add(tunnelIdentifierReg.registerParser(pimSsmTreeParser));
47         regs.add(tunnelIdentifierReg.registerSerializer(pimSsmTreeParser));
48
49         final PimSmTreeParser pimSmTreeParser = new PimSmTreeParser();
50         regs.add(tunnelIdentifierReg.registerParser(pimSmTreeParser));
51         regs.add(tunnelIdentifierReg.registerSerializer(pimSmTreeParser));
52
53         final BidirPimTreeParser bidirPimTreeParser = new BidirPimTreeParser();
54         regs.add(tunnelIdentifierReg.registerParser(bidirPimTreeParser));
55         regs.add(tunnelIdentifierReg.registerSerializer(bidirPimTreeParser));
56
57         final IngressReplicationParser ingressReplicationParser = new IngressReplicationParser();
58         regs.add(tunnelIdentifierReg.registerParser(ingressReplicationParser));
59         regs.add(tunnelIdentifierReg.registerSerializer(ingressReplicationParser));
60
61         final MldpMp2mpLspParser mldpMp2mpLspParser = new MldpMp2mpLspParser();
62         regs.add(tunnelIdentifierReg.registerParser(mldpMp2mpLspParser));
63         regs.add(tunnelIdentifierReg.registerSerializer(mldpMp2mpLspParser));
64     }
65 }