BUG-2982 : moved path-attributes container to grouping
[bgpcep.git] / bgp / linkstate / src / main / java / org / opendaylight / protocol / bgp / linkstate / BGPActivator.java
index 53ae77bf3f727cbbbd8232933aa06a87c48f79ed..6eedb8cf9d0640eaf453affdc9a5849d1c3871bd 100644 (file)
@@ -9,11 +9,14 @@ package org.opendaylight.protocol.bgp.linkstate;
 
 import java.util.ArrayList;
 import java.util.List;
-
+import org.opendaylight.protocol.bgp.linkstate.attribute.LinkstateAttributeParser;
+import org.opendaylight.protocol.bgp.linkstate.nlri.LinkstateNlriParser;
+import org.opendaylight.protocol.bgp.parser.spi.AbstractBGPExtensionProviderActivator;
 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
-import org.opendaylight.protocol.bgp.parser.spi.pojo.AbstractBGPExtensionProviderActivator;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev131125.LinkstateAddressFamily;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev131125.LinkstateSubsequentAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.Attributes1;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkstateSubsequentAddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130919.path.attributes.Attributes;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.MplsLabeledVpnSubsequentAddressFamily;
 
 /**
@@ -21,24 +24,39 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
  */
 public final class BGPActivator extends AbstractBGPExtensionProviderActivator {
 
-       private static final int LINKSTATE_AFI = 16388;
+    private static final int LINKSTATE_AFI = 16388;
+
+    private static final int LINKSTATE_SAFI = 71;
+
+    private final boolean ianaLinkstateAttributeType;
+
+    public BGPActivator() {
+        super();
+        this.ianaLinkstateAttributeType = true;
+    }
 
-       private static final int LINKSTATE_SAFI = 71;
+    public BGPActivator(final boolean ianaLinkstateAttributeType) {
+        super();
+        this.ianaLinkstateAttributeType = ianaLinkstateAttributeType;
+    }
 
-       @Override
-       protected List<AutoCloseable> startImpl(final BGPExtensionProviderContext context) {
-               final List<AutoCloseable> regs = new ArrayList<>();
+    @Override
+    protected List<AutoCloseable> startImpl(final BGPExtensionProviderContext context) {
+        final List<AutoCloseable> regs = new ArrayList<>();
 
-               regs.add(context.registerAddressFamily(LinkstateAddressFamily.class, LINKSTATE_AFI));
-               regs.add(context.registerSubsequentAddressFamily(LinkstateSubsequentAddressFamily.class, LINKSTATE_SAFI));
+        regs.add(context.registerAddressFamily(LinkstateAddressFamily.class, LINKSTATE_AFI));
+        regs.add(context.registerSubsequentAddressFamily(LinkstateSubsequentAddressFamily.class, LINKSTATE_SAFI));
 
-               regs.add(context.registerNlriParser(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class,
-                               new LinkstateNlriParser(false)));
-               regs.add(context.registerNlriParser(LinkstateAddressFamily.class, MplsLabeledVpnSubsequentAddressFamily.class,
-                               new LinkstateNlriParser(true)));
+        regs.add(context.registerNlriParser(LinkstateAddressFamily.class, LinkstateSubsequentAddressFamily.class,
+                new LinkstateNlriParser(false)));
+        regs.add(context.registerNlriParser(LinkstateAddressFamily.class, MplsLabeledVpnSubsequentAddressFamily.class,
+                new LinkstateNlriParser(true)));
+        regs.add(context.registerNlriSerializer(Attributes.class, new LinkstateNlriParser(false)));
 
-               regs.add(context.registerAttributeParser(LinkstateAttributeParser.TYPE, new LinkstateAttributeParser()));
+        regs.add(context.registerAttributeSerializer(Attributes1.class, new LinkstateAttributeParser(this.ianaLinkstateAttributeType)));
+        final LinkstateAttributeParser linkstateAttributeParser = new LinkstateAttributeParser(this.ianaLinkstateAttributeType);
+        regs.add(context.registerAttributeParser(linkstateAttributeParser.getType(), linkstateAttributeParser));
 
-               return regs;
-       }
+        return regs;
+    }
 }