import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.LinkProtectionType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.MplsProtocolMask;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.ProtocolId;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.link.state.PeerAdjSidBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.link.state.PeerNodeSidBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.link.state.PeerSetSidBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.link.state.PeerSidBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.link.state.SrAdjIdBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.link.state.UnreservedBandwidth;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.link.state.UnreservedBandwidthBuilder;
private static final int LINK_NAME = 1098;
private static final int SR_ADJ_ID = 1099;
private static final int SR_LAN_ADJ_ID = 1100;
- private static final int PEER_SID_CODE = 1036;
- private static final int PEER_SET_SID_CODE = 1037;
+ private static final int PEER_NODE_SID_CODE = 1101;
+ private static final int PEER_ADJ_SID_CODE = 1102;
+ private static final int PEER_SET_SID_CODE = 1103;
/**
* Parse Link Attributes.
builder.setSrLanAdjId(SrLinkAttributesParser.parseLanAdjacencySegmentIdentifier(value, protocolId));
LOG.debug("Parsed Adjacency Segment Identifier :{}", builder.getSrLanAdjId());
break;
- case PEER_SID_CODE:
- builder.setPeerSid(new PeerSidBuilder(SrLinkAttributesParser.parseAdjacencySegmentIdentifier(value, protocolId)).build());
- LOG.debug("Parsed Peer Segment Identifier :{}", builder.getPeerSid());
+ case PEER_NODE_SID_CODE:
+ builder.setPeerNodeSid(new PeerNodeSidBuilder(SrLinkAttributesParser.parseAdjacencySegmentIdentifier(value, null)).build());
+ LOG.debug("Parsed Peer Segment Identifier :{}", builder.getPeerNodeSid());
+ break;
+ case PEER_ADJ_SID_CODE:
+ builder.setPeerAdjSid(new PeerAdjSidBuilder(SrLinkAttributesParser.parseAdjacencySegmentIdentifier(value, null)).build());
+ LOG.debug("Parsed Peer Segment Identifier :{}", builder.getPeerAdjSid());
break;
case PEER_SET_SID_CODE:
- builder.setPeerSetSid(new PeerSetSidBuilder(SrLinkAttributesParser.parseAdjacencySegmentIdentifier(value, protocolId)).build());
+ builder.setPeerSetSid(new PeerSetSidBuilder(SrLinkAttributesParser.parseAdjacencySegmentIdentifier(value, null)).build());
LOG.debug("Parsed Peer Set Sid :{}", builder.getPeerSetSid());
break;
default:
if (linkAttributes.getSrLanAdjId() != null) {
TlvUtil.writeTLV(SR_LAN_ADJ_ID, SrLinkAttributesParser.serializeLanAdjacencySegmentIdentifier(linkAttributes.getSrLanAdjId()), byteAggregator);
}
- if (linkAttributes.getPeerSid() != null) {
- TlvUtil.writeTLV(PEER_SID_CODE, SrLinkAttributesParser.serializeAdjacencySegmentIdentifier(linkAttributes.getPeerSid()), byteAggregator);
+ if (linkAttributes.getPeerNodeSid() != null) {
+ TlvUtil.writeTLV(PEER_NODE_SID_CODE, SrLinkAttributesParser.serializeAdjacencySegmentIdentifier(linkAttributes.getPeerNodeSid()), byteAggregator);
+ }
+ if (linkAttributes.getPeerAdjSid() != null) {
+ TlvUtil.writeTLV(PEER_ADJ_SID_CODE, SrLinkAttributesParser.serializeAdjacencySegmentIdentifier(linkAttributes.getPeerAdjSid()), byteAggregator);
}
if (linkAttributes.getPeerSetSid() != null) {
TlvUtil.writeTLV(PEER_SET_SID_CODE, SrLinkAttributesParser.serializeAdjacencySegmentIdentifier(linkAttributes.getPeerSetSid()), byteAggregator);
private static final int BACKUP_OSPF = 0;
private static final int VALUE_ISIS = 2;
private static final int VALUE_OSPF = 1;
+ private static final int VALUE_EPE = 0;
private static final int LOCAL_ISIS = 3;
private static final int LOCAL_OSPF = 2;
+ private static final int LOCAL_EPE = 1;
private static final int SET_ISIS = 4;
private static final int SET_OSPF = 3;
private static final int FLAGS_SIZE = 8;
}
private static Flags parseFlags(final BitArray flags, final ProtocolId protocol) {
+ if (protocol == null) {
+ return null;
+ }
if (protocol.equals(ProtocolId.IsisLevel1) || protocol.equals(ProtocolId.IsisLevel2)) {
return new IsisAdjFlagsCaseBuilder()
.setAddressFamily(flags.get(ADDRESS_FAMILY_FLAG))
bitFlags.set(BACKUP_ISIS, isisFlags.isBackup());
bitFlags.set(SET_ISIS, isisFlags.isSet());
SidLabelIndexParser.setFlags(sidLabelIndex, bitFlags, VALUE_ISIS, LOCAL_ISIS);
+ } else if (flags == null){
+ SidLabelIndexParser.setFlags(sidLabelIndex, bitFlags, VALUE_EPE, LOCAL_EPE);
}
return bitFlags;
}
container sr-lan-adj-id {
uses bgp-sr:lan-adj-sid-tlv;
}
- container peer-sid {
+ container peer-node-sid {
description "The SID representing the peer of the BGP session.";
- reference "https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-00#section-4.3";
+ reference "https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-01#section-4.3";
+ uses bgp-sr:adj-sid-tlv;
+ }
+ container peer-adj-sid {
+ description "The SID representing the peer of the BGP session.";
+ reference "https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-01#section-4.3";
uses bgp-sr:adj-sid-tlv;
}
container peer-set-sid {
description "The SID representing the group the peer is part of.";
- reference "https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-00#section-4.3";
+ reference "https://tools.ietf.org/html/draft-ietf-idr-bgpls-segment-routing-epe-01#section-4.3";
uses bgp-sr:adj-sid-tlv;
}
}
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+
import com.google.common.collect.Lists;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
0, 0x05, 0x31, 0x32, 0x4b, 0x2d, 0x32,
0x04, 0x4b, 0, 0x07, (byte)-80, 10, 0, 0, (byte)0x0f, (byte)0xff, (byte)0xff, // sr-adj
0x04, 0x4c, 0, 0x0d, (byte)-80, 10, 0, 0, 1, 2, 3, 4, 5, 6, (byte)0x0f, (byte)0xff, (byte)0xff, // sr-lan-adj
- 0x04, 0x0c, 0, 0x08, (byte)0x80, 0x05, 0, 0, 0x0a, 0x0b, 0x0c, 0x0d, // peer-sid
- 0x04, 0x0d, 0, 0x08, (byte)0x80, 0x05, 0, 0, 0x0a, 0x0b, 0x0c, 0x0e, // peer-set-sid
+ 0x04, 0x4d, 0, 0x08, 0, 0x05, 0, 0, 0x0a, 0x0b, 0x0c, 0x0d, // peer-node-sid
+ 0x04, 0x4e, 0, 0x08, 0, 0x05, 0, 0, 0x0a, 0x0b, 0x0c, 0x0f, // peer-adj-sid
+ 0x04, 0x4f, 0, 0x08, 0, 0x05, 0, 0, 0x0a, 0x0b, 0x0c, 0x0e, // peer-set-sid
0x04, (byte) 0x88, 0, 0x01, 0x0a };
private static final byte[] NODE_ATTR = { 0x01, 0x07, 0, 0x04, 0, 0x2a, 0, 0x2b, 0x04, 0, 0, 0x01, (byte) 0xbc, 0x04, 0x02, 0,
assertEquals(305419896, ls.getSharedRiskLinkGroups().get(0).getValue().intValue());
assertEquals("12K-2", ls.getLinkName());
final IsisAdjFlagsCase flags = new IsisAdjFlagsCaseBuilder().setAddressFamily(Boolean.TRUE).setBackup(Boolean.FALSE).setSet(Boolean.FALSE).build();
- assertEquals(flags, ls.getPeerSid().getFlags());
- assertEquals(flags, ls.getPeerSetSid().getFlags());
- assertEquals(new Long(168496141L), ((SidCase) ls.getPeerSid().getSidLabelIndex()).getSid());
- assertEquals(new Short("5"), ls.getPeerSid().getWeight().getValue());
+ assertEquals(flags, ls.getSrAdjId().getFlags());
+ assertNull(ls.getPeerNodeSid().getFlags());
+ assertNull(ls.getPeerSetSid().getFlags());
+ assertNull(ls.getPeerAdjSid().getFlags());
+ assertEquals(new Long(168496141L), ((SidCase) ls.getPeerNodeSid().getSidLabelIndex()).getSid());
+ assertEquals(new Short("5"), ls.getPeerNodeSid().getWeight().getValue());
assertEquals(new Long(168496142L), ((SidCase) ls.getPeerSetSid().getSidLabelIndex()).getSid());
assertEquals(new Short("5"), ls.getPeerSetSid().getWeight().getValue());
+ assertEquals(new Long(168496143L), ((SidCase) ls.getPeerAdjSid().getSidLabelIndex()).getSid());
+ assertEquals(new Short("5"), ls.getPeerAdjSid().getWeight().getValue());
//serialization
final ByteBuf buff = Unpooled.buffer();