Code Review
/
controller.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
adding isBroadcast and isMulticast functions to Ethernet
[controller.git]
/
opendaylight
/
sal
/
api
/
src
/
main
/
java
/
org
/
opendaylight
/
controller
/
sal
/
packet
/
ICMP.java
diff --git
a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ICMP.java
b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ICMP.java
index 9bdb5d084c57b7fede9fe1557a4934ae31e981e4..5075e58281132a4404ab8473be01e05ea5305115 100644
(file)
--- a/
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ICMP.java
+++ b/
opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/packet/ICMP.java
@@
-146,6
+146,7
@@
public class ICMP extends Packet {
*/
short computeChecksum(byte[] data, int start) {
int sum = 0, carry = 0, finalSum = 0;
*/
short computeChecksum(byte[] data, int start) {
int sum = 0, carry = 0, finalSum = 0;
+ int wordData;
int end = start + this.getHeaderSize() / NetUtils.NumBitsInAByte
+ rawPayload.length;
int checksumStartByte = start + getfieldOffset(CHECKSUM)
int end = start + this.getHeaderSize() / NetUtils.NumBitsInAByte
+ rawPayload.length;
int checksumStartByte = start + getfieldOffset(CHECKSUM)
@@
-156,12
+157,8
@@
public class ICMP extends Packet {
if (i == checksumStartByte) {
continue;
}
if (i == checksumStartByte) {
continue;
}
- StringBuffer sbuffer = new StringBuffer();
- sbuffer.append(String.format("%02X", data[i]));
- if (i < (data.length - 1)) {
- sbuffer.append(String.format("%02X", data[i + 1]));
- }
- sum += Integer.valueOf(sbuffer.toString(), 16);
+ wordData = ((data[i] << 8) & 0xFF00) + (data[i + 1] & 0xFF);
+ sum = sum + wordData;
}
carry = (sum >> 16) & 0xFF;
finalSum = (sum & 0xFFFF) + carry;
}
carry = (sum >> 16) & 0xFF;
finalSum = (sum & 0xFFFF) + carry;