-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Vlad Yasevich
authored and
David S. Miller
committed
Jan 28, 2008
1 parent
0713605
commit 82fb8a7
Showing
8 changed files
with
83 additions
and
231 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 1bf40954cf232a043a49623cf251f787c1871e64 | ||
refs/heads/master: 9ad0977fe10bd5d052a6db7738afe017367c2e32 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
/* SCTP kernel reference Implementation | ||
* Copyright (c) 1999-2001 Motorola, Inc. | ||
* Copyright (c) 2001-2003 International Business Machines, Corp. | ||
* | ||
* This file is part of the SCTP kernel reference Implementation | ||
* | ||
* SCTP Checksum functions | ||
* | ||
* The SCTP reference implementation is free software; | ||
* you can redistribute it and/or modify it under the terms of | ||
* the GNU General Public License as published by | ||
* the Free Software Foundation; either version 2, or (at your option) | ||
* any later version. | ||
* | ||
* The SCTP reference implementation is distributed in the hope that it | ||
* will be useful, but WITHOUT ANY WARRANTY; without even the implied | ||
* ************************ | ||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | ||
* See the GNU General Public License for more details. | ||
* | ||
* You should have received a copy of the GNU General Public License | ||
* along with GNU CC; see the file COPYING. If not, write to | ||
* the Free Software Foundation, 59 Temple Place - Suite 330, | ||
* Boston, MA 02111-1307, USA. | ||
* | ||
* Please send any bug reports or fixes you make to the | ||
* email address(es): | ||
* lksctp developers <lksctp-developers@lists.sourceforge.net> | ||
* | ||
* Or submit a bug report through the following website: | ||
* http://www.sf.net/projects/lksctp | ||
* | ||
* Written or modified by: | ||
* Dinakaran Joseph | ||
* Jon Grimm <jgrimm@us.ibm.com> | ||
* Sridhar Samudrala <sri@us.ibm.com> | ||
* | ||
* Rewritten to use libcrc32c by: | ||
* Vlad Yasevich <vladislav.yasevich@hp.com> | ||
* | ||
* Any bugs reported given to us we will try to fix... any fixes shared will | ||
* be incorporated into the next SCTP release. | ||
*/ | ||
|
||
#include <linux/types.h> | ||
#include <net/sctp/sctp.h> | ||
#include <linux/crc32c.h> | ||
|
||
static inline __u32 sctp_start_cksum(__u8 *buffer, __u16 length) | ||
{ | ||
__u32 crc = ~(__u32) 0; | ||
__u8 zero[sizeof(__u32)] = {0}; | ||
|
||
/* Optimize this routine to be SCTP specific, knowing how | ||
* to skip the checksum field of the SCTP header. | ||
*/ | ||
|
||
/* Calculate CRC up to the checksum. */ | ||
crc = crc32c(crc, buffer, sizeof(struct sctphdr) - sizeof(__u32)); | ||
|
||
/* Skip checksum field of the header. */ | ||
crc = crc32c(crc, zero, sizeof(__u32)); | ||
|
||
/* Calculate the rest of the CRC. */ | ||
crc = crc32c(crc, &buffer[sizeof(struct sctphdr)], | ||
length - sizeof(struct sctphdr)); | ||
return crc; | ||
} | ||
|
||
static inline __u32 sctp_update_cksum(__u8 *buffer, __u16 length, __u32 crc32) | ||
{ | ||
return crc32c(crc32, buffer, length); | ||
} | ||
|
||
static inline __u32 sctp_end_cksum(__u32 crc32) | ||
{ | ||
return ntohl(~crc32); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters