*/
package org.opendaylight.protocol.pcep.impl;
+import com.google.common.base.Preconditions;
import java.net.InetSocketAddress;
import java.util.List;
import org.opendaylight.protocol.pcep.PCEPCapability;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.Open;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.OpenBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.types.rev131005.open.object.open.TlvsBuilder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public final class BasePCEPSessionProposalFactory implements PCEPSessionProposalFactory {
+ private static final Logger LOG = LoggerFactory.getLogger(BasePCEPSessionProposalFactory.class);
+ private static final int KA_TO_DEADTIMER_RATIO = 4;
private final int keepAlive, deadTimer;
private final List<PCEPCapability> capabilities;
public BasePCEPSessionProposalFactory(final int deadTimer, final int keepAlive, final List<PCEPCapability> capabilities) {
+ if(keepAlive != 0) {
+ Preconditions.checkArgument(keepAlive >= 1, "Minimum value for keep-alive-timer-value is 1");
+ if(deadTimer != 0 && (deadTimer / keepAlive != KA_TO_DEADTIMER_RATIO)) {
+ LOG.warn("dead-timer-value should be {} times greater than keep-alive-timer-value", KA_TO_DEADTIMER_RATIO);
+ }
+ }
+
this.deadTimer = deadTimer;
this.keepAlive = keepAlive;
this.capabilities = capabilities;
}
}
- @Override
- public Open getSessionProposal(final InetSocketAddress address, final int sessionId) {
- return getSessionProposal(address, sessionId, null);
- }
-
@Override
public Open getSessionProposal(final InetSocketAddress address, final int sessionId,
final PCEPPeerProposal peerProposal) {
return oBuilder.setTlvs(builder.build()).build();
}
- public int getKeepAlive() {
- return this.keepAlive;
- }
-
- public int getDeadTimer() {
- return this.deadTimer;
+ @Override
+ public List<PCEPCapability> getCapabilities() {
+ return this.capabilities;
}
-
}