diff options
author | Neil Horman <nhorman@tuxdriver.com> | 2008-07-25 12:44:09 -0400 |
---|---|---|
committer | Vlad Yasevich <vladislav.yasevich@hp.com> | 2008-10-01 11:33:06 -0400 |
commit | c226ef9b83694311327f3ab0036c6de9c22e9daf (patch) | |
tree | 04c81b4186fd79a1f1b129a8627da6a41ceb4c25 /include/net/sctp | |
parent | 845b8eda4d783a7ce2670d482a716840a650389e (diff) |
sctp: reduce memory footprint of sctp_chunk structure
sctp_chunks should be put on a diet. This is some of the low hanging
fruit that we can strip out. Changes all the __s8/__u8 flags to
bitfields. Saves 12 bytes per chunk.
Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com>
Diffstat (limited to 'include/net/sctp')
-rw-r--r-- | include/net/sctp/structs.h | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h index ab1c472ea753..0dc1b7267c37 100644 --- a/include/net/sctp/structs.h +++ b/include/net/sctp/structs.h | |||
@@ -731,20 +731,23 @@ struct sctp_chunk { | |||
731 | */ | 731 | */ |
732 | struct sk_buff *auth_chunk; | 732 | struct sk_buff *auth_chunk; |
733 | 733 | ||
734 | __u8 rtt_in_progress; /* Is this chunk used for RTT calculation? */ | 734 | #define SCTP_CAN_FRTX 0x0 |
735 | __u8 resent; /* Has this chunk ever been retransmitted. */ | 735 | #define SCTP_NEED_FRTX 0x1 |
736 | __u8 has_tsn; /* Does this chunk have a TSN yet? */ | 736 | #define SCTP_DONT_FRTX 0x2 |
737 | __u8 has_ssn; /* Does this chunk have a SSN yet? */ | 737 | __u16 rtt_in_progress:1, /* This chunk used for RTT calc? */ |
738 | __u8 singleton; /* Was this the only chunk in the packet? */ | 738 | resent:1, /* Has this chunk ever been resent. */ |
739 | __u8 end_of_packet; /* Was this the last chunk in the packet? */ | 739 | has_tsn:1, /* Does this chunk have a TSN yet? */ |
740 | __u8 ecn_ce_done; /* Have we processed the ECN CE bit? */ | 740 | has_ssn:1, /* Does this chunk have a SSN yet? */ |
741 | __u8 pdiscard; /* Discard the whole packet now? */ | 741 | singleton:1, /* Only chunk in the packet? */ |
742 | __u8 tsn_gap_acked; /* Is this chunk acked by a GAP ACK? */ | 742 | end_of_packet:1, /* Last chunk in the packet? */ |
743 | __s8 fast_retransmit; /* Is this chunk fast retransmitted? */ | 743 | ecn_ce_done:1, /* Have we processed the ECN CE bit? */ |
744 | __u8 tsn_missing_report; /* Data chunk missing counter. */ | 744 | pdiscard:1, /* Discard the whole packet now? */ |
745 | __u8 data_accepted; /* At least 1 chunk in this packet accepted */ | 745 | tsn_gap_acked:1, /* Is this chunk acked by a GAP ACK? */ |
746 | __u8 auth; /* IN: was auth'ed | OUT: needs auth */ | 746 | data_accepted:1, /* At least 1 chunk accepted */ |
747 | __u8 has_asconf; /* IN: have seen an asconf before */ | 747 | auth:1, /* IN: was auth'ed | OUT: needs auth */ |
748 | has_asconf:1, /* IN: have seen an asconf before */ | ||
749 | tsn_missing_report:2, /* Data chunk missing counter. */ | ||
750 | fast_retransmit:2; /* Is this chunk fast retransmitted? */ | ||
748 | }; | 751 | }; |
749 | 752 | ||
750 | void sctp_chunk_hold(struct sctp_chunk *); | 753 | void sctp_chunk_hold(struct sctp_chunk *); |