aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/sm_statefuns.c
diff options
context:
space:
mode:
authorVlad Yasevich <vladislav.yasevich@hp.com>2007-03-23 14:34:08 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:28:03 -0400
commita5a35e76753d27e782028843a5186f176b50dd16 (patch)
tree229cd1440150deca3893774dd837e901e88af960 /net/sctp/sm_statefuns.c
parentbdf3092af601ccad765974652ab103162fbe14f4 (diff)
[SCTP]: Implement sac_info field in SCTP_ASSOC_CHANGE notification.
As stated in the sctp socket api draft: sac_info: variable If the sac_state is SCTP_COMM_LOST and an ABORT chunk was received for this association, sac_info[] contains the complete ABORT chunk as defined in the SCTP specification RFC2960 [RFC2960] section 3.3.7. We now save received ABORT chunks into the sac_info field and pass that to the user. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/sm_statefuns.c')
-rw-r--r--net/sctp/sm_statefuns.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c
index 438e5dc5c714..e0ec16dd678a 100644
--- a/net/sctp/sm_statefuns.c
+++ b/net/sctp/sm_statefuns.c
@@ -186,7 +186,7 @@ sctp_disposition_t sctp_sf_do_4_C(const struct sctp_endpoint *ep,
186 * notification is passed to the upper layer. 186 * notification is passed to the upper layer.
187 */ 187 */
188 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP, 188 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP,
189 0, 0, 0, GFP_ATOMIC); 189 0, 0, 0, NULL, GFP_ATOMIC);
190 if (ev) 190 if (ev)
191 sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP, 191 sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP,
192 SCTP_ULPEVENT(ev)); 192 SCTP_ULPEVENT(ev));
@@ -661,7 +661,7 @@ sctp_disposition_t sctp_sf_do_5_1D_ce(const struct sctp_endpoint *ep,
661 ev = sctp_ulpevent_make_assoc_change(new_asoc, 0, SCTP_COMM_UP, 0, 661 ev = sctp_ulpevent_make_assoc_change(new_asoc, 0, SCTP_COMM_UP, 0,
662 new_asoc->c.sinit_num_ostreams, 662 new_asoc->c.sinit_num_ostreams,
663 new_asoc->c.sinit_max_instreams, 663 new_asoc->c.sinit_max_instreams,
664 GFP_ATOMIC); 664 NULL, GFP_ATOMIC);
665 if (!ev) 665 if (!ev)
666 goto nomem_ev; 666 goto nomem_ev;
667 667
@@ -790,7 +790,7 @@ sctp_disposition_t sctp_sf_do_5_1E_ca(const struct sctp_endpoint *ep,
790 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_UP, 790 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_UP,
791 0, asoc->c.sinit_num_ostreams, 791 0, asoc->c.sinit_num_ostreams,
792 asoc->c.sinit_max_instreams, 792 asoc->c.sinit_max_instreams,
793 GFP_ATOMIC); 793 NULL, GFP_ATOMIC);
794 794
795 if (!ev) 795 if (!ev)
796 goto nomem; 796 goto nomem;
@@ -1625,7 +1625,7 @@ static sctp_disposition_t sctp_sf_do_dupcook_a(const struct sctp_endpoint *ep,
1625 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_RESTART, 0, 1625 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_RESTART, 0,
1626 new_asoc->c.sinit_num_ostreams, 1626 new_asoc->c.sinit_num_ostreams,
1627 new_asoc->c.sinit_max_instreams, 1627 new_asoc->c.sinit_max_instreams,
1628 GFP_ATOMIC); 1628 NULL, GFP_ATOMIC);
1629 if (!ev) 1629 if (!ev)
1630 goto nomem_ev; 1630 goto nomem_ev;
1631 1631
@@ -1691,7 +1691,7 @@ static sctp_disposition_t sctp_sf_do_dupcook_b(const struct sctp_endpoint *ep,
1691 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_UP, 0, 1691 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_COMM_UP, 0,
1692 new_asoc->c.sinit_num_ostreams, 1692 new_asoc->c.sinit_num_ostreams,
1693 new_asoc->c.sinit_max_instreams, 1693 new_asoc->c.sinit_max_instreams,
1694 GFP_ATOMIC); 1694 NULL, GFP_ATOMIC);
1695 if (!ev) 1695 if (!ev)
1696 goto nomem_ev; 1696 goto nomem_ev;
1697 1697
@@ -1786,7 +1786,7 @@ static sctp_disposition_t sctp_sf_do_dupcook_d(const struct sctp_endpoint *ep,
1786 SCTP_COMM_UP, 0, 1786 SCTP_COMM_UP, 0,
1787 asoc->c.sinit_num_ostreams, 1787 asoc->c.sinit_num_ostreams,
1788 asoc->c.sinit_max_instreams, 1788 asoc->c.sinit_max_instreams,
1789 GFP_ATOMIC); 1789 NULL, GFP_ATOMIC);
1790 if (!ev) 1790 if (!ev)
1791 goto nomem; 1791 goto nomem;
1792 1792
@@ -3035,7 +3035,7 @@ sctp_disposition_t sctp_sf_do_9_2_final(const struct sctp_endpoint *ep,
3035 * notification is passed to the upper layer. 3035 * notification is passed to the upper layer.
3036 */ 3036 */
3037 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP, 3037 ev = sctp_ulpevent_make_assoc_change(asoc, 0, SCTP_SHUTDOWN_COMP,
3038 0, 0, 0, GFP_ATOMIC); 3038 0, 0, 0, NULL, GFP_ATOMIC);
3039 if (!ev) 3039 if (!ev)
3040 goto nomem; 3040 goto nomem;
3041 3041