1 package org.openkilda.messaging.model;
3 import com.fasterxml.jackson.annotation.JsonCreator;
4 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
5 import com.fasterxml.jackson.annotation.JsonInclude;
6 import com.fasterxml.jackson.annotation.JsonProperty;
7 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
9 import java.io.Serializable;
10 import java.util.Objects;
13 @JsonIgnoreProperties(ignoreUnknown =
true)
14 @JsonInclude(JsonInclude.Include.NON_NULL)
18 public final static int FORLORN_NEVER = -1;
20 @JsonProperty(
"switch_id")
21 private final String switchId;
23 @JsonProperty("port_id")
24 private final String portId;
27 @JsonProperty("attempts")
30 @JsonProperty("time_counter")
31 private
int timeCounter;
33 @JsonProperty("check_interval")
34 private
int checkInterval;
37 @JsonProperty("consecutive_failure")
38 private
int consecutiveFailure;
40 @JsonProperty("consecutive_success")
41 private
int consecutiveSuccess;
43 @JsonProperty("forlorn_threshold")
44 private
int forlornThreshold;
62 @JsonProperty("found_isl")
63 private
boolean foundIsl;
70 public
DiscoveryNode(String switchId, String portId,
int checkInterval,
int forlornThreshold) {
71 this.switchId = switchId;
74 this.checkInterval = checkInterval;
75 this.forlornThreshold = forlornThreshold;
76 this.consecutiveFailure = 0;
77 this.consecutiveSuccess = 0;
78 this.foundIsl =
false;
83 @JsonProperty(
"port_id")
final String portId,
84 @JsonProperty(
"attempts")
final int attempts,
85 @JsonProperty(
"time_counter")
final int timeCounter,
86 @JsonProperty(
"check_interval")
final int checkInterval,
87 @JsonProperty(
"consecutive_failure")
final int consecutiveFailure,
88 @JsonProperty(
"consecutive_success")
final int consecutiveSuccess,
89 @JsonProperty(
"forlorn_threshold")
final int forlornThreshold,
90 @JsonProperty(
"found_isl")
final boolean foundIsl) {
92 this.switchId = switchId;
94 this.attempts = attempts;
95 this.timeCounter = timeCounter;
96 this.checkInterval = checkInterval;
97 this.forlornThreshold = forlornThreshold;
98 this.consecutiveFailure = consecutiveFailure;
99 this.consecutiveSuccess = consecutiveSuccess;
100 this.foundIsl = foundIsl;
105 this.foundIsl = foundIsl;
109 return this.foundIsl;
126 if (forlornThreshold == FORLORN_NEVER) {
129 return consecutiveFailure > forlornThreshold;
133 consecutiveFailure = 0;
137 consecutiveSuccess = 0;
141 return this.consecutiveFailure;
145 return this.consecutiveSuccess;
149 consecutiveFailure++;
153 consecutiveSuccess++;
173 return (attemptLimit < attempts);
185 return timeCounter >= checkInterval;
206 Objects.equals(getPortId(), that.
getPortId());
211 return Objects.hash(getSwitchId(), getPortId());
216 return "DiscoveryNode{" +
217 "switchId='" + switchId +
'\'' +
218 ", portId='" + portId +
'\'' +
219 ", attempts=" + attempts +
220 ", consecutiveFailure=" + consecutiveFailure +
221 ", consecutiveSuccess=" + consecutiveSuccess +
void clearConsecutiveSuccess()
DiscoveryNode(@JsonProperty("switch_id") final String switchId, @JsonProperty("port_id") final String portId, @JsonProperty("attempts") final int attempts, @JsonProperty("time_counter") final int timeCounter, @JsonProperty("check_interval") final int checkInterval, @JsonProperty("consecutive_failure") final int consecutiveFailure, @JsonProperty("consecutive_success") final int consecutiveSuccess, @JsonProperty("forlorn_threshold") final int forlornThreshold, @JsonProperty("found_isl") final boolean foundIsl)
int getConsecutiveSuccess()
void incConsecutiveFailure()
boolean maxAttempts(Integer attemptLimit)
void setFoundIsl(boolean foundIsl)
void clearConsecutiveFailure()
int getConsecutiveFailure()
void incConsecutiveSuccess()