summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_usrreq.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/netinet/sctp_usrreq.c')
-rw-r--r--sys/netinet/sctp_usrreq.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index dba94b6..af3c2c7 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -2341,7 +2341,16 @@ flags_out:
}
if ((stcb) && (net)) {
- paddri->spinfo_state = net->dest_state & (SCTP_REACHABLE_MASK | SCTP_ADDR_NOHB);
+ if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
+ /* Its unconfirmed */
+ paddri->spinfo_state = SCTP_UNCONFIRMED;
+ } else if (net->dest_state & SCTP_ADDR_REACHABLE) {
+ /* The Active */
+ paddri->spinfo_state = SCTP_ACTIVE;
+ } else {
+ /* It's Inactive */
+ paddri->spinfo_state = SCTP_INACTIVE;
+ }
paddri->spinfo_cwnd = net->cwnd;
paddri->spinfo_srtt = ((net->lastsa >> 2) + net->lastsv) >> 1;
paddri->spinfo_rto = net->RTO;
@@ -2409,7 +2418,16 @@ flags_out:
* Again the user can get info from sctp_constants.h
* for what the state of the network is.
*/
- sstat->sstat_primary.spinfo_state = net->dest_state & SCTP_REACHABLE_MASK;
+ if (net->dest_state & SCTP_ADDR_UNCONFIRMED) {
+ /* It's unconfirmed */
+ sstat->sstat_primary.spinfo_state = SCTP_UNCONFIRMED;
+ } else if (net->dest_state & SCTP_ADDR_REACHABLE) {
+ /* Its active */
+ sstat->sstat_primary.spinfo_state = SCTP_ACTIVE;
+ } else {
+ /* It's Inactive */
+ sstat->sstat_primary.spinfo_state = SCTP_INACTIVE;
+ }
sstat->sstat_primary.spinfo_cwnd = net->cwnd;
sstat->sstat_primary.spinfo_srtt = net->lastsa;
sstat->sstat_primary.spinfo_rto = net->RTO;
OpenPOWER on IntegriCloud