diff options
Diffstat (limited to 'include/net/sctp/structs.h')
-rw-r--r-- | include/net/sctp/structs.h | 79 |
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); |
651 | void sctp_chunk_free(struct sctp_chunk *); | 650 | void sctp_chunk_free(struct sctp_chunk *); |
652 | void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data); | 651 | void *sctp_addto_chunk(struct sctp_chunk *, int len, const void *data); |
653 | void *sctp_addto_chunk_fixed(struct sctp_chunk *, int len, const void *data); | ||
654 | struct sctp_chunk *sctp_chunkify(struct sk_buff *, | 652 | struct 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 | ||
1897 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); | 1883 | void sctp_assoc_sync_pmtu(struct sock *, struct sctp_association *); |
1898 | void sctp_assoc_rwnd_increase(struct sctp_association *, unsigned int); | 1884 | void sctp_assoc_rwnd_update(struct sctp_association *, bool); |
1899 | void sctp_assoc_rwnd_decrease(struct sctp_association *, unsigned int); | ||
1900 | void sctp_assoc_set_primary(struct sctp_association *, | 1885 | void sctp_assoc_set_primary(struct sctp_association *, |
1901 | struct sctp_transport *); | 1886 | struct sctp_transport *); |
1902 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, | 1887 | void sctp_assoc_del_nonprimary_peers(struct sctp_association *, |