Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 134579
b: refs/heads/master
c: 06e8680
h: refs/heads/master
i:
  134577: a42d5d0
  134575: 48d757b
v: v3
  • Loading branch information
Lucas Nussbaum authored and David S. Miller committed Feb 16, 2009
1 parent 1fe2c37 commit 31c15e3
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 3 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 85e8d004ecbc51ead6ae926e15973b42cf07b36e
refs/heads/master: 06e868066e3b5828383eb40ff4d1c0029100b0b5
5 changes: 5 additions & 0 deletions trunk/include/net/sctp/structs.h
Original file line number Diff line number Diff line change
Expand Up @@ -218,6 +218,10 @@ extern struct sctp_globals {

/* Flag to idicate if SCTP-AUTH is enabled */
int auth_enable;

/* Flag to indicate whether computing and verifying checksum
* is disabled. */
int checksum_disable;
} sctp_globals;

#define sctp_rto_initial (sctp_globals.rto_initial)
Expand Down Expand Up @@ -252,6 +256,7 @@ extern struct sctp_globals {
#define sctp_addip_noauth (sctp_globals.addip_noauth_enable)
#define sctp_prsctp_enable (sctp_globals.prsctp_enable)
#define sctp_auth_enable (sctp_globals.auth_enable)
#define sctp_checksum_disable (sctp_globals.checksum_disable)

/* SCTP Socket type: UDP or TCP style. */
typedef enum {
Expand Down
3 changes: 2 additions & 1 deletion trunk/net/sctp/input.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,8 @@ int sctp_rcv(struct sk_buff *skb)
__skb_pull(skb, skb_transport_offset(skb));
if (skb->len < sizeof(struct sctphdr))
goto discard_it;
if (!skb_csum_unnecessary(skb) && sctp_rcv_checksum(skb) < 0)
if (!sctp_checksum_disable && !skb_csum_unnecessary(skb) &&
sctp_rcv_checksum(skb) < 0)
goto discard_it;

skb_pull(skb, sizeof(struct sctphdr));
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/sctp/output.c
Original file line number Diff line number Diff line change
Expand Up @@ -531,7 +531,7 @@ int sctp_packet_transmit(struct sctp_packet *packet)
* Note: Adler-32 is no longer applicable, as has been replaced
* by CRC32-C as described in <draft-ietf-tsvwg-sctpcsum-02.txt>.
*/
if (!(dst->dev->features & NETIF_F_NO_CSUM)) {
if (!sctp_checksum_disable && !(dst->dev->features & NETIF_F_NO_CSUM)) {
crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len);
crc32 = sctp_end_cksum(crc32);
} else
Expand Down
2 changes: 2 additions & 0 deletions trunk/net/sctp/protocol.c
Original file line number Diff line number Diff line change
Expand Up @@ -1411,4 +1411,6 @@ MODULE_ALIAS("net-pf-" __stringify(PF_INET) "-proto-132");
MODULE_ALIAS("net-pf-" __stringify(PF_INET6) "-proto-132");
MODULE_AUTHOR("Linux Kernel SCTP developers <lksctp-developers@lists.sourceforge.net>");
MODULE_DESCRIPTION("Support for the SCTP protocol (RFC2960)");
module_param_named(no_checksums, sctp_checksum_disable, bool, 0644);
MODULE_PARM_DESC(no_checksums, "Disable checksums computing and verification");
MODULE_LICENSE("GPL");

0 comments on commit 31c15e3

Please sign in to comment.