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;
/**
*/
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;
+ }
}