Subversion Repositories HelenOS

Rev

Rev 4711 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4711 Rev 4722
Line 126... Line 126...
126
    while( sum >> 16 ) sum = ( sum & 0xFFFF ) + ( sum >> 16 );
126
    while( sum >> 16 ) sum = ( sum & 0xFFFF ) + ( sum >> 16 );
127
 
127
 
128
    return ( uint16_t ) sum;
128
    return ( uint16_t ) sum;
129
}
129
}
130
 
130
 
131
uint16_t ip_checksum( uint8_t * data, size_t length ){
131
uint16_t flip_checksum( uint16_t checksum ){
132
    uint16_t    checksum;
-
 
133
 
-
 
134
    checksum = compact_checksum(compute_checksum( 0, data, length ));
-
 
135
 
-
 
136
    // flip, zero is returned as 0xFFFF (not flipped)
132
    // flip, zero is returned as 0xFFFF (not flipped)
137
    return ( ~ checksum ) ? ( uint16_t ) ( ~ checksum ) : IP_CHECKSUM_ZERO;
133
    return ( ~ checksum ) ? ( uint16_t ) ( ~ checksum ) : IP_CHECKSUM_ZERO;
138
}
134
}
139
 
135
 
-
 
136
uint16_t ip_checksum( uint8_t * data, size_t length ){
-
 
137
    return flip_checksum( compact_checksum( compute_checksum( 0, data, length )));
-
 
138
}
-
 
139
 
140
/** @}
140
/** @}
141
 */
141
 */