import org.opendaylight.protocol.bgp.parser.BGPError;
import org.opendaylight.protocol.bgp.parser.BGPSession;
import org.opendaylight.protocol.bgp.parser.BGPSessionListener;
-import org.opendaylight.protocol.bgp.parser.BGPTableType;
import org.opendaylight.protocol.bgp.parser.BGPTerminationReason;
+import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
import org.opendaylight.protocol.framework.AbstractProtocolSession;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.Keepalive;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.KeepaliveBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.Open;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.open.BgpParameters;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.open.bgp.parameters.CParameters;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130918.BgpTableType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130918.open.bgp.parameters.c.parameters.CMultiprotocol;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
import org.opendaylight.yangtools.yang.binding.Notification;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
private static final Logger logger = LoggerFactory.getLogger(BGPSessionImpl.class);
+ /*
+ * 240
+ */
private static final int DEFAULT_HOLD_TIMER_VALUE = 15;
private static final Notification keepalive = new KeepaliveBuilder().build();
- public static int HOLD_TIMER_VALUE = DEFAULT_HOLD_TIMER_VALUE; // 240
+ private static int holdTimerValue = DEFAULT_HOLD_TIMER_VALUE;
/**
* Internal session state.
/**
* System.nanoTime value about when was sent the last message Protected to be updated also in tests.
*/
+ @VisibleForTesting
protected long lastMessageSentAt;
/**
private final int keepAlive;
- private final Set<BGPTableType> tableTypes;
+ private final Set<BgpTableType> tableTypes;
BGPSessionImpl(final Timer timer, final BGPSessionListener listener, final Channel channel, final Open remoteOpen) {
this.listener = Preconditions.checkNotNull(listener);
this.stateTimer = Preconditions.checkNotNull(timer);
this.channel = Preconditions.checkNotNull(channel);
this.keepAlive = remoteOpen.getHoldTimer() / 3;
+ holdTimerValue = remoteOpen.getHoldTimer();
- final Set<BGPTableType> tts = Sets.newHashSet();
+ final Set<TablesKey> tts = Sets.newHashSet();
+ final Set<BgpTableType> tats = Sets.newHashSet();
if (remoteOpen.getBgpParameters() != null) {
for (final BgpParameters param : remoteOpen.getBgpParameters()) {
if (param instanceof CParameters) {
final CParameters cp = (CParameters) param;
- final BGPTableType tt = new BGPTableType(((CMultiprotocol) cp).getMultiprotocolCapability().getAfi(), ((CMultiprotocol) cp).getMultiprotocolCapability().getSafi());
+ final TablesKey tt = new TablesKey(((CMultiprotocol) cp).getMultiprotocolCapability().getAfi(), ((CMultiprotocol) cp).getMultiprotocolCapability().getSafi());
tts.add(tt);
+ tats.add(new BgpTableTypeImpl(tt.getAfi(), tt.getSafi()));
}
}
}
this.sync = new BGPSynchronization(this, this.listener, tts);
- this.tableTypes = tts;
+ this.tableTypes = tats;
if (remoteOpen.getHoldTimer() != 0) {
this.stateTimer.newTimeout(new TimerTask() {
}
final long ct = System.nanoTime();
- final long nextHold = this.lastMessageReceivedAt + TimeUnit.SECONDS.toNanos(HOLD_TIMER_VALUE);
+ final long nextHold = this.lastMessageReceivedAt + TimeUnit.SECONDS.toNanos(holdTimerValue);
if (ct >= nextHold) {
logger.debug("HoldTimer expired. " + new Date());
}
@Override
- final public String toString() {
+ public final String toString() {
return addToStringAttributes(Objects.toStringHelper(this)).toString();
}
}
@Override
- public Set<BGPTableType> getAdvertisedTableTypes() {
+ public Set<BgpTableType> getAdvertisedTableTypes() {
return this.tableTypes;
}