package org.opendaylight.protocol.pcep.impl;
import java.net.InetSocketAddress;
+import java.util.ArrayList;
+import java.util.List;
import org.opendaylight.protocol.pcep.PCEPSessionProposalFactory;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.OpenObject;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.StatefulCapabilityTlv.Flags;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.message.open.message.OpenBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Tlvs;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.TlvsBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.tlvs.StatefulBuilder;
+import org.opendaylight.protocol.pcep.PCEPTlv;
+import org.opendaylight.protocol.pcep.object.PCEPOpenObject;
+import org.opendaylight.protocol.pcep.tlv.LSPCleanupTlv;
+import org.opendaylight.protocol.pcep.tlv.PCEStatefulCapabilityTlv;
public class PCEPSessionProposalFactoryImpl implements PCEPSessionProposalFactory {
private final boolean stateful, active, versioned, instant;
- public PCEPSessionProposalFactoryImpl(final int deadTimer, final int keepAlive, final boolean stateful, final boolean active,
- final boolean versioned, final boolean instant, final int timeout) {
+ public PCEPSessionProposalFactoryImpl(final int deadTimer, final int keepAlive, final boolean stateful, final boolean active, final boolean versioned, final boolean instant, final int timeout) {
this.deadTimer = deadTimer;
this.keepAlive = keepAlive;
this.stateful = stateful;
}
@Override
- public OpenObject getSessionProposal(final InetSocketAddress address, final int sessionId) {
- final Tlvs tlvs = null;
- final TlvsBuilder builder = new TlvsBuilder();
+ public PCEPOpenObject getSessionProposal(final InetSocketAddress address, final int sessionId) {
+ List<PCEPTlv> tlvs = null;
if (PCEPSessionProposalFactoryImpl.this.stateful) {
- builder.setStateful((new StatefulBuilder().setFlags(new Flags(PCEPSessionProposalFactoryImpl.this.versioned, PCEPSessionProposalFactoryImpl.this.instant, PCEPSessionProposalFactoryImpl.this.active)).build()));
+ tlvs = new ArrayList<PCEPTlv>();
+ tlvs.add(new PCEStatefulCapabilityTlv(PCEPSessionProposalFactoryImpl.this.instant, PCEPSessionProposalFactoryImpl.this.active, PCEPSessionProposalFactoryImpl.this.versioned));
+ if (PCEPSessionProposalFactoryImpl.this.instant) {
+ tlvs.add(new LSPCleanupTlv(PCEPSessionProposalFactoryImpl.this.timeout));
+ }
}
- return new OpenBuilder().setKeepalive((short) PCEPSessionProposalFactoryImpl.this.keepAlive).setDeadTimer(
- (short) PCEPSessionProposalFactoryImpl.this.deadTimer).setSessionId((short) sessionId).setTlvs(tlvs).build();
+ return new PCEPOpenObject(PCEPSessionProposalFactoryImpl.this.keepAlive, PCEPSessionProposalFactoryImpl.this.deadTimer, sessionId, tlvs);
}
public int getKeepAlive() {