import org.opendaylight.protocol.bgp.evpn.impl.extended.communities.Layer2AttributesExtCom;
import org.opendaylight.protocol.bgp.evpn.impl.extended.communities.MACMobExtCom;
import org.opendaylight.protocol.bgp.evpn.impl.nlri.EvpnNlriParser;
-import org.opendaylight.protocol.bgp.evpn.impl.nlri.NlriActivator;
import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator;
import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator;
import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
regs.add(context.registerAddressFamily(L2vpnAddressFamily.class, L2VPN_AFI));
registerNlriHandler(context, regs);
- NlriActivator.registerNlriParsers(regs);
registerExtendedCommunities(context, regs);
ESIActivator.registerEsiTypeParsers(regs);
import java.util.List;
import org.eclipse.jdt.annotation.Nullable;
import org.opendaylight.protocol.bgp.evpn.spi.EvpnRegistry;
-import org.opendaylight.protocol.bgp.evpn.spi.pojo.SimpleEvpnNlriRegistry;
import org.opendaylight.protocol.bgp.parser.BGPParsingException;
import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
import org.opendaylight.protocol.bgp.parser.spi.MultiPathSupportUtil;
+++ /dev/null
-/*
- * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.protocol.bgp.evpn.impl.nlri;
-
-import java.util.List;
-import org.opendaylight.protocol.bgp.evpn.spi.pojo.SimpleEvpnNlriRegistry;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.es.route.EsRoute;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.ethernet.a.d.route.EthernetADRoute;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.EsRouteCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.EthernetADRouteCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.IncMultiEthernetTagResCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.MacIpAdvRouteCase;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.inc.multi.ethernet.tag.res.IncMultiEthernetTagRes;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.mac.ip.adv.route.MacIpAdvRoute;
-import org.opendaylight.yangtools.concepts.Registration;
-
-public final class NlriActivator {
- private NlriActivator() {
- // Hidden on purpose
- }
-
- public static void registerNlriParsers(final List<Registration> regs) {
- final SimpleEvpnNlriRegistry evpnNlriRegistry = SimpleEvpnNlriRegistry.getInstance();
-
- final EthADRParser ethADR = new EthADRParser();
- regs.add(evpnNlriRegistry.registerNlriParser(ethADR.getType(), ethADR));
- regs.add(evpnNlriRegistry.registerNlriSerializer(EthernetADRouteCase.class, ethADR));
- regs.add(evpnNlriRegistry.registerNlriModelSerializer(EthernetADRoute.QNAME, ethADR));
-
- final MACIpAdvRParser macIpAR = new MACIpAdvRParser();
- regs.add(evpnNlriRegistry.registerNlriParser(macIpAR.getType(), macIpAR));
- regs.add(evpnNlriRegistry.registerNlriSerializer(MacIpAdvRouteCase.class, macIpAR));
- regs.add(evpnNlriRegistry.registerNlriModelSerializer(MacIpAdvRoute.QNAME, macIpAR));
-
- final IncMultEthTagRParser incMultETR = new IncMultEthTagRParser();
- regs.add(evpnNlriRegistry.registerNlriParser(incMultETR.getType(), incMultETR));
- regs.add(evpnNlriRegistry.registerNlriSerializer(IncMultiEthernetTagResCase.class, incMultETR));
- regs.add(evpnNlriRegistry.registerNlriModelSerializer(IncMultiEthernetTagRes.QNAME, incMultETR));
-
- final EthSegRParser ethSR = new EthSegRParser();
- regs.add(evpnNlriRegistry.registerNlriParser(ethSR.getType(), ethSR));
- regs.add(evpnNlriRegistry.registerNlriSerializer(EsRouteCase.class, ethSR));
- regs.add(evpnNlriRegistry.registerNlriModelSerializer(EsRoute.QNAME, ethSR));
- }
-}
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.protocol.bgp.evpn.spi.pojo;
+package org.opendaylight.protocol.bgp.evpn.impl.nlri;
import static com.google.common.base.Preconditions.checkArgument;
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
import java.util.Collection;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.protocol.bgp.evpn.spi.EvpnParser;
import org.opendaylight.protocol.bgp.evpn.spi.EvpnRegistry;
import org.opendaylight.protocol.bgp.evpn.spi.EvpnSerializer;
import org.opendaylight.protocol.concepts.HandlerRegistry;
import org.opendaylight.protocol.concepts.MultiRegistry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.NlriType;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.es.route.EsRoute;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.ethernet.a.d.route.EthernetADRoute;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.EvpnChoice;
-import org.opendaylight.yangtools.concepts.Registration;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.EsRouteCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.EthernetADRouteCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.IncMultiEthernetTagResCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.evpn.evpn.choice.MacIpAdvRouteCase;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.inc.multi.ethernet.tag.res.IncMultiEthernetTagRes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.mac.ip.adv.route.MacIpAdvRoute;
import org.opendaylight.yangtools.yang.binding.DataContainer;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
public final class SimpleEvpnNlriRegistry implements EvpnRegistry {
- private static final SimpleEvpnNlriRegistry SINGLETON = new SimpleEvpnNlriRegistry();
+ @FunctionalInterface
+ private interface SerializerInterface {
+ EvpnChoice check(EvpnSerializer serializer, ContainerNode cont);
+ }
+
+ private static final @NonNull SimpleEvpnNlriRegistry INSTANCE = new SimpleEvpnNlriRegistry();
+
private final HandlerRegistry<DataContainer, EvpnParser, EvpnSerializer> handlers = new HandlerRegistry<>();
private final MultiRegistry<NodeIdentifier, EvpnSerializer> modelHandlers = new MultiRegistry<>();
private SimpleEvpnNlriRegistry() {
- }
+ final EthADRParser ethADR = new EthADRParser();
+ registerNlriParser(ethADR.getType(), ethADR);
+ handlers.registerSerializer(EthernetADRouteCase.class, ethADR);
+ registerNlriModelSerializer(EthernetADRoute.QNAME, ethADR);
- @FunctionalInterface
- private interface SerializerInterface {
- EvpnChoice check(EvpnSerializer serializer, ContainerNode cont);
- }
+ final MACIpAdvRParser macIpAR = new MACIpAdvRParser();
+ registerNlriParser(macIpAR.getType(), macIpAR);
+ handlers.registerSerializer(MacIpAdvRouteCase.class, macIpAR);
+ registerNlriModelSerializer(MacIpAdvRoute.QNAME, macIpAR);
+
+ final IncMultEthTagRParser incMultETR = new IncMultEthTagRParser();
+ registerNlriParser(incMultETR.getType(), incMultETR);
+ handlers.registerSerializer(IncMultiEthernetTagResCase.class, incMultETR);
+ registerNlriModelSerializer(IncMultiEthernetTagRes.QNAME, incMultETR);
- public static SimpleEvpnNlriRegistry getInstance() {
- return SINGLETON;
+ final EthSegRParser ethSR = new EthSegRParser();
+ registerNlriParser(ethSR.getType(), ethSR);
+ handlers.registerSerializer(EsRouteCase.class, ethSR);
+ registerNlriModelSerializer(EsRoute.QNAME, ethSR);
}
- public Registration registerNlriParser(final NlriType esiType, final EvpnParser parser) {
- return this.handlers.registerParser(esiType.getIntValue(), parser);
+ public static @NonNull SimpleEvpnNlriRegistry getInstance() {
+ return INSTANCE;
}
- public Registration registerNlriSerializer(final Class<? extends EvpnChoice> evpnClass,
- final EvpnSerializer serializer) {
- return this.handlers.registerSerializer(evpnClass, serializer);
+ private void registerNlriParser(final NlriType esiType, final EvpnParser parser) {
+ handlers.registerParser(esiType.getIntValue(), parser);
}
- public Registration registerNlriModelSerializer(final QName qname, final EvpnSerializer serializer) {
- return this.modelHandlers.register(new NodeIdentifier(qname), serializer);
+ private void registerNlriModelSerializer(final QName qname, final EvpnSerializer serializer) {
+ modelHandlers.register(NodeIdentifier.create(qname), serializer);
}
@Override
import static org.opendaylight.protocol.bgp.evpn.impl.esi.types.LanParserTest.LAN_AUT_GEN_CASE;
import static org.opendaylight.protocol.bgp.evpn.impl.nlri.MACIpAdvRParserTest.createEti;
import static org.opendaylight.protocol.bgp.evpn.impl.nlri.NlriModelUtil.MPLS_NID;
-import static org.opendaylight.protocol.bgp.evpn.spi.pojo.SimpleEvpnNlriRegistryTest.EVPN_NID;
+import static org.opendaylight.protocol.bgp.evpn.impl.nlri.SimpleEvpnNlriRegistryTest.EVPN_NID;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
@Before
public void setUp() {
ESIActivator.registerEsiTypeParsers(new ArrayList<>());
- NlriActivator.registerNlriParsers(new ArrayList<>());
this.parser = new EvpnNlriParser();
}
import static org.opendaylight.protocol.bgp.evpn.impl.EvpnTestUtil.RD_MODEL;
import static org.opendaylight.protocol.bgp.evpn.impl.EvpnTestUtil.createValueBuilder;
import static org.opendaylight.protocol.bgp.evpn.impl.nlri.NlriModelUtil.RD_NID;
-import static org.opendaylight.protocol.bgp.evpn.spi.pojo.SimpleEvpnNlriRegistryTest.EVPN_NID;
+import static org.opendaylight.protocol.bgp.evpn.impl.nlri.SimpleEvpnNlriRegistryTest.EVPN_NID;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
@Before
public void setUp() {
ESIActivator.registerEsiTypeParsers(new ArrayList<>());
- NlriActivator.registerNlriParsers(new ArrayList<>());
this.dest = Collections.singletonList(new EvpnDestinationBuilder()
.setRouteDistinguisher(RD)
.setEvpnChoice(IncMultEthTagRParserTest.createIncMultiCase()).build());
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-package org.opendaylight.protocol.bgp.evpn.spi.pojo;
+package org.opendaylight.protocol.bgp.evpn.impl.nlri;
import static org.junit.Assert.assertArrayEquals;
import static org.junit.Assert.assertEquals;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.protocol.bgp.evpn.impl.esi.types.ESIActivator;
-import org.opendaylight.protocol.bgp.evpn.impl.nlri.EthADRParserTest;
-import org.opendaylight.protocol.bgp.evpn.impl.nlri.NlriActivator;
import org.opendaylight.protocol.util.ByteArray;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.Evpn;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn.rev200120.NlriType;
public void setUp() {
final ArrayList<Registration> reg = new ArrayList<>();
ESIActivator.registerEsiTypeParsers(reg);
- NlriActivator.registerNlriParsers(reg);
}
@Test