diff options
author | rrs <rrs@FreeBSD.org> | 2008-12-06 13:19:54 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2008-12-06 13:19:54 +0000 |
commit | 0f2b9dafa358fb3b64efed4842cd31650ceea672 (patch) | |
tree | 773b646ae7f5af08e1421071f2aa493698537042 /sys/netinet/sctp_structs.h | |
parent | f4594595d3de298d45caf389d9cee0d893cedfc0 (diff) | |
download | FreeBSD-src-0f2b9dafa358fb3b64efed4842cd31650ceea672.zip FreeBSD-src-0f2b9dafa358fb3b64efed4842cd31650ceea672.tar.gz |
Code from the hack-session known as the IETF (and a
bit of debugging afterwards):
- Fix protection code for notification generation.
- Decouple associd from vtag
- Allow vtags to have less strigent requirements in non-uniqueness.
o don't pre-hash them when you issue one in a cookie.
o Allow duplicates and use addresses and ports to
discriminate amongst the duplicates during lookup.
- Add support for the NAT draft draft-ietf-behave-sctpnat-00, this
is still experimental and needs more extensive testing with the
Jason Butt ipfw changes.
- Support for the SENDER_DRY event to get DTLS in OpenSSL working
with a set of patches from Michael Tuexen (hopefully heading to OpenSSL soon).
- Update the support of SCTP-AUTH by Peter Lei.
- Use macros for refcounting.
- Fix MTU for UDP encapsulation.
- Fix reporting back of unsent data.
- Update assoc send counter handling to be consistent with endpoint sent counter.
- Fix a bug in PR-SCTP.
- Fix so we only send another FWD-TSN when a SACK arrives IF and only
if the adv-peer-ack point progressed. However we still make sure
a timer is running if we do have an adv_peer_ack point.
- Fix PR-SCTP bug where chunks were retransmitted if they are sent
unreliable but not abandoned yet.
With the help of: Michael Teuxen and Peter Lei :-)
MFC after: 4 weeks
Diffstat (limited to 'sys/netinet/sctp_structs.h')
-rw-r--r-- | sys/netinet/sctp_structs.h | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/sys/netinet/sctp_structs.h b/sys/netinet/sctp_structs.h index 8beb3bf..35318ff 100644 --- a/sys/netinet/sctp_structs.h +++ b/sys/netinet/sctp_structs.h @@ -1,5 +1,5 @@ /*- - * Copyright (c) 2001-2007, by Cisco Systems, Inc. All rights reserved. + * Copyright (c) 2001-2008, by Cisco Systems, Inc. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -356,6 +356,8 @@ struct sctp_tmit_chunk { uint16_t send_size; uint16_t book_size; uint16_t mbcnt; + uint16_t auth_keyid; + uint8_t holds_key_ref; /* flag if auth keyid refcount is held */ uint8_t pad_inplace; uint8_t do_rtt; uint8_t book_size_scale; @@ -435,6 +437,8 @@ struct sctp_stream_queue_pending { uint16_t stream; uint16_t strseq; uint16_t act_flags; + uint16_t auth_keyid; + uint8_t holds_key_ref; uint8_t msg_is_complete; uint8_t some_taken; uint8_t addr_over; @@ -472,6 +476,8 @@ struct sctp_asconf_addr { struct sctp_asconf_addr_param ap; struct sctp_ifa *ifa; /* save the ifa for add/del ip */ uint8_t sent; /* has this been sent yet? */ + uint8_t special_del; /* not to be used in lookup */ + }; struct sctp_scoping { @@ -763,6 +769,12 @@ struct sctp_association { */ uint32_t highest_tsn_inside_map; + /* EY - new NR variables used for nr_sack based on mapping_array */ + uint8_t *nr_mapping_array; + uint32_t nr_mapping_array_base_tsn; + uint32_t highest_tsn_inside_nr_map; + uint16_t nr_mapping_array_size; + uint32_t last_echo_tsn; uint32_t last_cwr_tsn; uint32_t fast_recovery_tsn; @@ -992,6 +1004,8 @@ struct sctp_association { /* flag to indicate if peer can do asconf */ uint8_t peer_supports_asconf; + /* EY - flag to indicate if peer can do nr_sack */ + uint8_t peer_supports_nr_sack; /* pr-sctp support flag */ uint8_t peer_supports_prsctp; /* peer authentication support flag */ @@ -999,6 +1013,7 @@ struct sctp_association { /* stream resets are supported by the peer */ uint8_t peer_supports_strreset; + uint8_t peer_supports_nat; /* * packet drop's are supported by the peer, we don't really care * about this but we bookkeep it anyway. @@ -1028,7 +1043,9 @@ struct sctp_association { uint8_t delayed_connection; uint8_t ifp_had_enobuf; uint8_t saw_sack_with_frags; - uint8_t in_restart_hash; + /* EY */ + uint8_t saw_sack_with_nr_frags; + uint8_t in_asocid_hash; uint8_t assoc_up_sent; uint8_t adaptation_needed; uint8_t adaptation_sent; @@ -1037,6 +1054,8 @@ struct sctp_association { uint8_t sctp_cmt_on_off; uint8_t iam_blocking; uint8_t cookie_how[8]; + /* EY 05/05/08 - NR_SACK variable */ + uint8_t sctp_nr_sack_on_off; /* JRS 5/21/07 - CMT PF variable */ uint8_t sctp_cmt_pf; /* |