aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/sctp/structs.h
diff options
context:
space:
mode:
authorwangweidong <wangweidong1@huawei.com>2013-12-13 00:51:04 -0500
committerDavid S. Miller <davem@davemloft.net>2013-12-17 14:32:43 -0500
commitbe78cfcb25fd163ad7c415cdc0ff343fbc8d22ec (patch)
tree61496de60e3fe70a89c70d5392e129256f9bf316 /include/net/sctp/structs.h
parente4379310108a9bd9f181427b37113273d97b8ad3 (diff)
sctp: Reorder 'struc association' members to reduce its size
Members of 'struct association' are not in appropriate order to reuse compiler added padding on 64bit architectures. In this patch we reorder those struct members and help reduce the size of the structure from 2776 bytes to 2720 bytes on 64 bit architectures. Signed-off-by: Wang Weidong <wangweidong1@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/sctp/structs.h')
-rw-r--r--include/net/sctp/structs.h59
1 files changed, 29 insertions, 30 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
index e416d6ac9c70..e8b2ff5c2804 100644
--- a/include/net/sctp/structs.h
+++ b/include/net/sctp/structs.h
@@ -1360,12 +1360,6 @@ struct sctp_association {
1360 1360
1361 /* This is all information about our peer. */ 1361 /* This is all information about our peer. */
1362 struct { 1362 struct {
1363 /* rwnd
1364 *
1365 * Peer Rwnd : Current calculated value of the peer's rwnd.
1366 */
1367 __u32 rwnd;
1368
1369 /* transport_addr_list 1363 /* transport_addr_list
1370 * 1364 *
1371 * Peer : A list of SCTP transport addresses that the 1365 * Peer : A list of SCTP transport addresses that the
@@ -1383,6 +1377,12 @@ struct sctp_association {
1383 */ 1377 */
1384 struct list_head transport_addr_list; 1378 struct list_head transport_addr_list;
1385 1379
1380 /* rwnd
1381 *
1382 * Peer Rwnd : Current calculated value of the peer's rwnd.
1383 */
1384 __u32 rwnd;
1385
1386 /* transport_count 1386 /* transport_count
1387 * 1387 *
1388 * Peer : A count of the number of peer addresses 1388 * Peer : A count of the number of peer addresses
@@ -1465,6 +1465,20 @@ struct sctp_association {
1465 */ 1465 */
1466 struct sctp_tsnmap tsn_map; 1466 struct sctp_tsnmap tsn_map;
1467 1467
1468 /* This mask is used to disable sending the ASCONF chunk
1469 * with specified parameter to peer.
1470 */
1471 __be16 addip_disabled_mask;
1472
1473 /* These are capabilities which our peer advertised. */
1474 __u8 ecn_capable:1, /* Can peer do ECN? */
1475 ipv4_address:1, /* Peer understands IPv4 addresses? */
1476 ipv6_address:1, /* Peer understands IPv6 addresses? */
1477 hostname_address:1, /* Peer understands DNS addresses? */
1478 asconf_capable:1, /* Does peer support ADDIP? */
1479 prsctp_capable:1, /* Can peer do PR-SCTP? */
1480 auth_capable:1; /* Is peer doing SCTP-AUTH? */
1481
1468 /* Ack State : This flag indicates if the next received 1482 /* Ack State : This flag indicates if the next received
1469 * : packet is to be responded to with a 1483 * : packet is to be responded to with a
1470 * : SACK. This is initializedto 0. When a packet 1484 * : SACK. This is initializedto 0. When a packet
@@ -1479,25 +1493,11 @@ struct sctp_association {
1479 __u32 sack_cnt; 1493 __u32 sack_cnt;
1480 __u32 sack_generation; 1494 __u32 sack_generation;
1481 1495
1482 /* These are capabilities which our peer advertised. */
1483 __u8 ecn_capable:1, /* Can peer do ECN? */
1484 ipv4_address:1, /* Peer understands IPv4 addresses? */
1485 ipv6_address:1, /* Peer understands IPv6 addresses? */
1486 hostname_address:1, /* Peer understands DNS addresses? */
1487 asconf_capable:1, /* Does peer support ADDIP? */
1488 prsctp_capable:1, /* Can peer do PR-SCTP? */
1489 auth_capable:1; /* Is peer doing SCTP-AUTH? */
1490
1491 __u32 adaptation_ind; /* Adaptation Code point. */ 1496 __u32 adaptation_ind; /* Adaptation Code point. */
1492 1497
1493 /* This mask is used to disable sending the ASCONF chunk
1494 * with specified parameter to peer.
1495 */
1496 __be16 addip_disabled_mask;
1497
1498 struct sctp_inithdr_host i; 1498 struct sctp_inithdr_host i;
1499 int cookie_len;
1500 void *cookie; 1499 void *cookie;
1500 int cookie_len;
1501 1501
1502 /* ADDIP Section 4.2 Upon reception of an ASCONF Chunk. 1502 /* ADDIP Section 4.2 Upon reception of an ASCONF Chunk.
1503 * C1) ... "Peer-Serial-Number'. This value MUST be initialized to the 1503 * C1) ... "Peer-Serial-Number'. This value MUST be initialized to the
@@ -1529,14 +1529,14 @@ struct sctp_association {
1529 */ 1529 */
1530 sctp_state_t state; 1530 sctp_state_t state;
1531 1531
1532 /* The cookie life I award for any cookie. */
1533 ktime_t cookie_life;
1534
1535 /* Overall : The overall association error count. 1532 /* Overall : The overall association error count.
1536 * Error Count : [Clear this any time I get something.] 1533 * Error Count : [Clear this any time I get something.]
1537 */ 1534 */
1538 int overall_error_count; 1535 int overall_error_count;
1539 1536
1537 /* The cookie life I award for any cookie. */
1538 ktime_t cookie_life;
1539
1540 /* These are the association's initial, max, and min RTO values. 1540 /* These are the association's initial, max, and min RTO values.
1541 * These values will be initialized by system defaults, but can 1541 * These values will be initialized by system defaults, but can
1542 * be modified via the SCTP_RTOINFO socket option. 1542 * be modified via the SCTP_RTOINFO socket option.
@@ -1591,10 +1591,9 @@ struct sctp_association {
1591 /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */ 1591 /* Flags controlling Heartbeat, SACK delay, and Path MTU Discovery. */
1592 __u32 param_flags; 1592 __u32 param_flags;
1593 1593
1594 __u32 sackfreq;
1594 /* SACK delay timeout */ 1595 /* SACK delay timeout */
1595 unsigned long sackdelay; 1596 unsigned long sackdelay;
1596 __u32 sackfreq;
1597
1598 1597
1599 unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES]; 1598 unsigned long timeouts[SCTP_NUM_TIMEOUT_TYPES];
1600 struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES]; 1599 struct timer_list timers[SCTP_NUM_TIMEOUT_TYPES];
@@ -1602,12 +1601,12 @@ struct sctp_association {
1602 /* Transport to which SHUTDOWN chunk was last sent. */ 1601 /* Transport to which SHUTDOWN chunk was last sent. */
1603 struct sctp_transport *shutdown_last_sent_to; 1602 struct sctp_transport *shutdown_last_sent_to;
1604 1603
1605 /* How many times have we resent a SHUTDOWN */
1606 int shutdown_retries;
1607
1608 /* Transport to which INIT chunk was last sent. */ 1604 /* Transport to which INIT chunk was last sent. */
1609 struct sctp_transport *init_last_sent_to; 1605 struct sctp_transport *init_last_sent_to;
1610 1606
1607 /* How many times have we resent a SHUTDOWN */
1608 int shutdown_retries;
1609
1611 /* Next TSN : The next TSN number to be assigned to a new 1610 /* Next TSN : The next TSN number to be assigned to a new
1612 * : DATA chunk. This is sent in the INIT or INIT 1611 * : DATA chunk. This is sent in the INIT or INIT
1613 * : ACK chunk to the peer and incremented each 1612 * : ACK chunk to the peer and incremented each
@@ -1818,8 +1817,8 @@ struct sctp_association {
1818 * after reaching 4294967295. 1817 * after reaching 4294967295.
1819 */ 1818 */
1820 __u32 addip_serial; 1819 __u32 addip_serial;
1821 union sctp_addr *asconf_addr_del_pending;
1822 int src_out_of_asoc_ok; 1820 int src_out_of_asoc_ok;
1821 union sctp_addr *asconf_addr_del_pending;
1823 struct sctp_transport *new_transport; 1822 struct sctp_transport *new_transport;
1824 1823
1825 /* SCTP AUTH: list of the endpoint shared keys. These 1824 /* SCTP AUTH: list of the endpoint shared keys. These