Author: tuexen
Date: Thu Mar  7 19:38:04 2013
New Revision: 247924
URL: http://svnweb.freebsd.org/changeset/base/247924

Log:
  MFC r235414,r235415:
  
  Provide the error code in SCTP_PEER_ADDR_CHANGE notifications as
  specified in RFC 6458.

Modified:
  stable/8/sys/netinet/sctp_indata.c
  stable/8/sys/netinet/sctp_input.c
  stable/8/sys/netinet/sctp_output.c
  stable/8/sys/netinet/sctp_timer.c
  stable/8/sys/netinet/sctp_usrreq.c
  stable/8/sys/netinet6/sctp6_usrreq.c
Directory Properties:
  stable/8/sys/   (props changed)
  stable/8/sys/netinet/   (props changed)
  stable/8/sys/netinet6/   (props changed)

Modified: stable/8/sys/netinet/sctp_indata.c
==============================================================================
--- stable/8/sys/netinet/sctp_indata.c  Thu Mar  7 19:34:56 2013        
(r247923)
+++ stable/8/sys/netinet/sctp_indata.c  Thu Mar  7 19:38:04 2013        
(r247924)
@@ -4024,7 +4024,7 @@ sctp_express_handle_sack(struct sctp_tcb
                                        /* addr came good */
                                        net->dest_state |= SCTP_ADDR_REACHABLE;
                                        
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb,
-                                           SCTP_RECEIVED_SACK, (void *)net, 
SCTP_SO_NOT_LOCKED);
+                                           0, (void *)net, SCTP_SO_NOT_LOCKED);
                                }
                                if (net == stcb->asoc.primary_destination) {
                                        if (stcb->asoc.alternate) {
@@ -4831,7 +4831,7 @@ sctp_handle_sack(struct mbuf *m, int off
                                        /* addr came good */
                                        net->dest_state |= SCTP_ADDR_REACHABLE;
                                        
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb,
-                                           SCTP_RECEIVED_SACK, (void *)net, 
SCTP_SO_NOT_LOCKED);
+                                           0, (void *)net, SCTP_SO_NOT_LOCKED);
                                }
                                if (net == stcb->asoc.primary_destination) {
                                        if (stcb->asoc.alternate) {

Modified: stable/8/sys/netinet/sctp_input.c
==============================================================================
--- stable/8/sys/netinet/sctp_input.c   Thu Mar  7 19:34:56 2013        
(r247923)
+++ stable/8/sys/netinet/sctp_input.c   Thu Mar  7 19:38:04 2013        
(r247924)
@@ -632,7 +632,7 @@ sctp_handle_heartbeat_ack(struct sctp_he
        if (!(r_net->dest_state & SCTP_ADDR_REACHABLE)) {
                r_net->dest_state |= SCTP_ADDR_REACHABLE;
                sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb,
-                   SCTP_HEARTBEAT_SUCCESS, (void *)r_net, SCTP_SO_NOT_LOCKED);
+                   0, (void *)r_net, SCTP_SO_NOT_LOCKED);
        }
        if (r_net->dest_state & SCTP_ADDR_PF) {
                r_net->dest_state &= ~SCTP_ADDR_PF;

Modified: stable/8/sys/netinet/sctp_output.c
==============================================================================
--- stable/8/sys/netinet/sctp_output.c  Thu Mar  7 19:34:56 2013        
(r247923)
+++ stable/8/sys/netinet/sctp_output.c  Thu Mar  7 19:38:04 2013        
(r247924)
@@ -3815,8 +3815,7 @@ sctp_handle_no_route(struct sctp_tcb *st
                        if ((net->dest_state & SCTP_ADDR_REACHABLE) && stcb) {
                                SCTPDBG(SCTP_DEBUG_OUTPUT1, "no route takes 
interface %p down\n", net);
                                sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN,
-                                   stcb,
-                                   SCTP_FAILED_THRESHOLD,
+                                   stcb, 0,
                                    (void *)net,
                                    so_locked);
                                net->dest_state &= ~SCTP_ADDR_REACHABLE;

Modified: stable/8/sys/netinet/sctp_timer.c
==============================================================================
--- stable/8/sys/netinet/sctp_timer.c   Thu Mar  7 19:34:56 2013        
(r247923)
+++ stable/8/sys/netinet/sctp_timer.c   Thu Mar  7 19:38:04 2013        
(r247924)
@@ -101,8 +101,7 @@ sctp_threshold_management(struct sctp_in
                                net->dest_state &= ~SCTP_ADDR_REQ_PRIMARY;
                                net->dest_state &= ~SCTP_ADDR_PF;
                                sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN,
-                                   stcb,
-                                   SCTP_FAILED_THRESHOLD,
+                                   stcb, 0,
                                    (void *)net, SCTP_SO_NOT_LOCKED);
                        }
                } else if ((net->pf_threshold < net->failure_threshold) &&

Modified: stable/8/sys/netinet/sctp_usrreq.c
==============================================================================
--- stable/8/sys/netinet/sctp_usrreq.c  Thu Mar  7 19:34:56 2013        
(r247923)
+++ stable/8/sys/netinet/sctp_usrreq.c  Thu Mar  7 19:38:04 2013        
(r247924)
@@ -270,7 +270,7 @@ sctp_notify(struct sctp_inpcb *inp,
                        net->dest_state &= ~SCTP_ADDR_REACHABLE;
                        net->dest_state &= ~SCTP_ADDR_PF;
                        sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN,
-                           stcb, SCTP_FAILED_THRESHOLD,
+                           stcb, 0,
                            (void *)net, SCTP_SO_NOT_LOCKED);
                }
                SCTP_TCB_UNLOCK(stcb);
@@ -4794,12 +4794,12 @@ sctp_setopt(struct socket *so, int optna
                                                if (net->dest_state & 
SCTP_ADDR_REACHABLE) {
                                                        if (net->error_count > 
paddrp->spp_pathmaxrxt) {
                                                                net->dest_state 
&= ~SCTP_ADDR_REACHABLE;
-                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, SCTP_RESPONSE_TO_USER_REQ, 
net, SCTP_SO_LOCKED);
+                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
                                                        }
                                                } else {
                                                        if (net->error_count <= 
paddrp->spp_pathmaxrxt) {
                                                                net->dest_state 
|= SCTP_ADDR_REACHABLE;
-                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, SCTP_RESPONSE_TO_USER_REQ, net, 
SCTP_SO_LOCKED);
+                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
                                                        }
                                                }
                                                net->failure_threshold = 
paddrp->spp_pathmaxrxt;
@@ -4837,12 +4837,12 @@ sctp_setopt(struct socket *so, int optna
                                                        if (net->dest_state & 
SCTP_ADDR_REACHABLE) {
                                                                if 
(net->error_count > paddrp->spp_pathmaxrxt) {
                                                                        
net->dest_state &= ~SCTP_ADDR_REACHABLE;
-                                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, SCTP_RESPONSE_TO_USER_REQ, 
net, SCTP_SO_LOCKED);
+                                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
                                                                }
                                                        } else {
                                                                if 
(net->error_count <= paddrp->spp_pathmaxrxt) {
                                                                        
net->dest_state |= SCTP_ADDR_REACHABLE;
-                                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, SCTP_RESPONSE_TO_USER_REQ, net, 
SCTP_SO_LOCKED);
+                                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
                                                                }
                                                        }
                                                        net->failure_threshold 
= paddrp->spp_pathmaxrxt;
@@ -5648,12 +5648,12 @@ sctp_setopt(struct socket *so, int optna
                                        if (net->dest_state & 
SCTP_ADDR_REACHABLE) {
                                                if (net->failure_threshold > 
thlds->spt_pathmaxrxt) {
                                                        net->dest_state &= 
~SCTP_ADDR_REACHABLE;
-                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, SCTP_RESPONSE_TO_USER_REQ, 
net, SCTP_SO_LOCKED);
+                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
                                                }
                                        } else {
                                                if (net->failure_threshold <= 
thlds->spt_pathmaxrxt) {
                                                        net->dest_state |= 
SCTP_ADDR_REACHABLE;
-                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, SCTP_RESPONSE_TO_USER_REQ, net, 
SCTP_SO_LOCKED);
+                                                       
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
                                                }
                                        }
                                        net->failure_threshold = 
thlds->spt_pathmaxrxt;
@@ -5677,12 +5677,12 @@ sctp_setopt(struct socket *so, int optna
                                                if (net->dest_state & 
SCTP_ADDR_REACHABLE) {
                                                        if 
(net->failure_threshold > thlds->spt_pathmaxrxt) {
                                                                net->dest_state 
&= ~SCTP_ADDR_REACHABLE;
-                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, SCTP_RESPONSE_TO_USER_REQ, 
net, SCTP_SO_LOCKED);
+                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN, stcb, 0, net, SCTP_SO_LOCKED);
                                                        }
                                                } else {
                                                        if 
(net->failure_threshold <= thlds->spt_pathmaxrxt) {
                                                                net->dest_state 
|= SCTP_ADDR_REACHABLE;
-                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, SCTP_RESPONSE_TO_USER_REQ, net, 
SCTP_SO_LOCKED);
+                                                               
sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_UP, stcb, 0, net, SCTP_SO_LOCKED);
                                                        }
                                                }
                                                net->failure_threshold = 
thlds->spt_pathmaxrxt;

Modified: stable/8/sys/netinet6/sctp6_usrreq.c
==============================================================================
--- stable/8/sys/netinet6/sctp6_usrreq.c        Thu Mar  7 19:34:56 2013        
(r247923)
+++ stable/8/sys/netinet6/sctp6_usrreq.c        Thu Mar  7 19:38:04 2013        
(r247924)
@@ -426,8 +426,7 @@ sctp6_notify(struct sctp_inpcb *inp,
                        net->dest_state &= ~SCTP_ADDR_REACHABLE;
                        net->dest_state &= ~SCTP_ADDR_PF;
                        sctp_ulp_notify(SCTP_NOTIFY_INTERFACE_DOWN,
-                           stcb, SCTP_FAILED_THRESHOLD,
-                           (void *)net, SCTP_SO_NOT_LOCKED);
+                           stcb, 0, (void *)net, SCTP_SO_NOT_LOCKED);
                }
                SCTP_TCB_UNLOCK(stcb);
        } else if ((icmph->icmp6_code == ICMP_UNREACH_PROTOCOL) ||
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to