aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sctp/structs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/sctp/structs.h')
-rw-r--r--include/net/sctp/structs.h79
1 files changed, 32 insertions, 47 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index 0a248b323d87..6ee76c804893 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -19,9 +19,8 @@
19 * See the GNU General Public License for more details. 19 * See the GNU General Public License for more details.
20 * 20 *
21 * You should have received a copy of the GNU General Public License 21 * You should have received a copy of the GNU General Public License
22 * along with GNU CC; see the file COPYING. If not, write to 22 * along with GNU CC; see the file COPYING. If not, see
23 * the Free Software Foundation, 59 Temple Place - Suite 330, 23 * <http://www.gnu.org/licenses/>.
24 * Boston, MA 02111-1307, USA.
25 * 24 *
26 * Please send any bug reports or fixes you make to the 25 * Please send any bug reports or fixes you make to the
27 * email addresses: 26 * email addresses:
@@ -650,7 +649,6 @@ int sctp_user_addto_chunk(struct sctp_chunk *chunk, int off, int len,
650 struct iovec *data); 649 struct iovec *data);
651void sctp_chunk_free(struct sctp_chunk *); 650void sctp_chunk_free(struct sctp_chunk *);
652void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data); 651void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data);
653void *sctp_addto_chunk_fixed(struct sctp_chunk *, int len, const void *data);
654struct sctp_chunk *sctp_chunkify(struct sk_buff *, 652struct sctp_chunk *sctp_chunkify(struct sk_buff *,
655 const struct sctp_association *, 653 const struct sctp_association *,
656 struct sock *); 654 struct sock *);
@@ -1358,12 +1356,6 @@ struct sctp_association {
1358 1356
1359 /* This is all information about our peer. */ 1357 /* This is all information about our peer. */
1360 struct { 1358 struct {
1361 /* rwnd
1362 *
1363 * Peer Rwnd : Current calculated value of the peer's rwnd.
1364 */
1365 __u32 rwnd;
1366
1367 /* transport_addr_list 1359 /* transport_addr_list
1368 * 1360 *
1369 * Peer : A list of SCTP transport addresses that the 1361 * Peer : A list of SCTP transport addresses that the
@@ -1381,6 +1373,12 @@ struct sctp_association {
1381 */ 1373 */
1382 struct list_head transport_addr_list; 1374 struct list_head transport_addr_list;
1383 1375
1376 /* rwnd
1377 *
1378 * Peer Rwnd : Current calculated value of the peer's rwnd.
1379 */
1380 __u32 rwnd;
1381
1384 /* transport_count 1382 /* transport_count
1385 * 1383 *
1386 * Peer : A count of the number of peer addresses 1384 * Peer : A count of the number of peer addresses
@@ -1463,6 +1461,20 @@ struct sctp_association {
1463 */ 1461 */
1464 struct sctp_tsnmap tsn_map; 1462 struct sctp_tsnmap tsn_map;
1465 1463
1464 /* This mask is used to disable sending the ASCONF chunk
1465 * with specified parameter to peer.
1466 */
1467 __be16 addip_disabled_mask;
1468
1469 /* These are capabilities which our peer advertised. */
1470 __u8 ecn_capable:1, /* Can peer do ECN? */
1471 ipv4_address:1, /* Peer understands IPv4 addresses? */
1472 ipv6_address:1, /* Peer understands IPv6 addresses? */
1473 hostname_address:1, /* Peer understands DNS addresses? */
1474 asconf_capable:1, /* Does peer support ADDIP? */
1475 prsctp_capable:1, /* Can peer do PR-SCTP? */
1476 auth_capable:1; /* Is peer doing SCTP-AUTH? */
1477
1466 /* Ack State : This flag indicates if the next received 1478 /* Ack State : This flag indicates if the next received
1467 * : packet is to be responded to with a 1479 * : packet is to be responded to with a
1468 * : SACK. This is initializedto 0. When a packet 1480 * : SACK. This is initializedto 0. When a packet
@@ -1477,25 +1489,11 @@ struct sctp_association {
1477 __u32 sack_cnt; 1489 __u32 sack_cnt;
1478 __u32 sack_generation; 1490 __u32 sack_generation;
1479 1491
1480 /* These are capabilities which our peer advertised. */
1481 __u8 ecn_capable:1, /* Can peer do ECN? */
1482 ipv4_address:1, /* Peer understands IPv4 addresses? */
1483 ipv6_address:1, /* Peer understands IPv6 addresses? */
1484 hostname_address:1, /* Peer understands DNS addresses? */
1485 asconf_capable:1, /* Does peer support ADDIP? */
1486 prsctp_capable:1, /* Can peer do PR-SCTP? */
1487 auth_capable:1; /* Is peer doing SCTP-AUTH? */
1488
1489 __u32 adaptation_ind; /* Adaptation Code point. */ 1492 __u32 adaptation_ind; /* Adaptation Code point. */
1490 1493
1491 /* This mask is used to disable sending the ASCONF chunk
1492 * with specified parameter to peer.
1493 */
1494 __be16 addip_disabled_mask;
1495
1496 struct sctp_inithdr_host i; 1494 struct sctp_inithdr_host i;
1497 int cookie_len;
1498 void *cookie; 1495 void *cookie;
1496 int cookie_len;
1499 1497
1500 /* ADDIP Section 4.2 Upon reception of an ASCONF Chunk. 1498 /* ADDIP Section 4.2 Upon reception of an ASCONF Chunk.
1501 * C1) ... "Peer-Serial-Number'. This value MUST be initialized to the 1499 * C1) ... "Peer-Serial-Number'. This value MUST be initialized to the
@@ -1527,14 +1525,14 @@ struct sctp_association {
1527 */ 1525 */
1528 sctp_state_t state; 1526 sctp_state_t state;
1529 1527
1530 /* The cookie life I award for any cookie. */
1531 ktime_t cookie_life;
1532
1533 /* Overall : The overall association error count. 1528 /* Overall : The overall association error count.
1534 * Error Count : [Clear this any time I get something.] 1529 * Error Count : [Clear this any time I get something.]
1535 */ 1530 */
1536 int overall_error_count; 1531 int overall_error_count;
1537 1532
1533 /* The cookie life I award for any cookie. */
1534 ktime_t cookie_life;
1535
1538 /* These are the association's initial, max, and min RTO values. 1536 /* These are the association's initial, max, and min RTO values.
1539 * These values will be initialized by system defaults, but can 1537 * These values will be initialized by system defaults, but can
1540 * be modified via the SCTP_RTOINFO socket option. 1538 * be modified via the SCTP_RTOINFO socket option.
@@ -1589,10 +1587,9 @@ struct sctp_association {
1589 /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */ 1587 /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
1590 __u32 param_flags; 1588 __u32 param_flags;
1591 1589
1590 __u32 sackfreq;
1592 /* SACK delay timeout */ 1591 /* SACK delay timeout */
1593 unsigned long sackdelay; 1592 unsigned long sackdelay;
1594 __u32 sackfreq;
1595
1596 1593
1597 unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES]; 1594 unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES];
1598 struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES]; 1595 struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES];
@@ -1600,12 +1597,12 @@ struct sctp_association {
1600 /* Transport to which SHUTDOWN chunk was last sent. */ 1597 /* Transport to which SHUTDOWN chunk was last sent. */
1601 struct sctp_transport *shutdown_last_sent_to; 1598 struct sctp_transport *shutdown_last_sent_to;
1602 1599
1603 /* How many times have we resent a SHUTDOWN */
1604 int shutdown_retries;
1605
1606 /* Transport to which INIT chunk was last sent. */ 1600 /* Transport to which INIT chunk was last sent. */
1607 struct sctp_transport *init_last_sent_to; 1601 struct sctp_transport *init_last_sent_to;
1608 1602
1603 /* How many times have we resent a SHUTDOWN */
1604 int shutdown_retries;
1605
1609 /* Next TSN : The next TSN number to be assigned to a new 1606 /* Next TSN : The next TSN number to be assigned to a new
1610 * : DATA chunk. This is sent in the INIT or INIT 1607 * : DATA chunk. This is sent in the INIT or INIT
1611 * : ACK chunk to the peer and incremented each 1608 * : ACK chunk to the peer and incremented each
@@ -1656,17 +1653,6 @@ struct sctp_association {
1656 /* This is the last advertised value of rwnd over a SACK chunk. */ 1653 /* This is the last advertised value of rwnd over a SACK chunk. */
1657 __u32 a_rwnd; 1654 __u32 a_rwnd;
1658 1655
1659 /* Number of bytes by which the rwnd has slopped. The rwnd is allowed
1660 * to slop over a maximum of the association's frag_point.
1661 */
1662 __u32 rwnd_over;
1663
1664 /* Keeps treack of rwnd pressure. This happens when we have
1665 * a window, but not recevie buffer (i.e small packets). This one
1666 * is releases slowly (1 PMTU at a time ).
1667 */
1668 __u32 rwnd_press;
1669
1670 /* This is the sndbuf size in use for the association. 1656 /* This is the sndbuf size in use for the association.
1671 * This corresponds to the sndbuf size for the association, 1657 * This corresponds to the sndbuf size for the association,
1672 * as specified in the sk->sndbuf. 1658 * as specified in the sk->sndbuf.
@@ -1810,8 +1796,8 @@ struct sctp_association {
1810 * after reaching 4294967295. 1796 * after reaching 4294967295.
1811 */ 1797 */
1812 __u32 addip_serial; 1798 __u32 addip_serial;
1813 union sctp_addr *asconf_addr_del_pending;
1814 int src_out_of_asoc_ok; 1799 int src_out_of_asoc_ok;
1800 union sctp_addr *asconf_addr_del_pending;
1815 struct sctp_transport *new_transport; 1801 struct sctp_transport *new_transport;
1816 1802
1817 /* SCTP AUTH: list of the endpoint shared keys. These 1803 /* SCTP AUTH: list of the endpoint shared keys. These
@@ -1895,8 +1881,7 @@ void sctp_assoc_update(struct sctp_association *old,
1895__u32 sctp_association_get_next_tsn(struct sctp_association *); 1881__u32 sctp_association_get_next_tsn(struct sctp_association *);
1896 1882
1897void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); 1883void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *);
1898void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned int); 1884void sctp_assoc_rwnd_update(struct sctp_association *, bool);
1899void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned int);
1900void sctp_assoc_set_primary(struct sctp_association *, 1885void sctp_assoc_set_primary(struct sctp_association *,
1901 struct sctp_transport *); 1886 struct sctp_transport *);
1902void sctp_assoc_del_nonprimary_peers(struct sctp_association *, 1887void sctp_assoc_del_nonprimary_peers(struct sctp_association *,