factor out IPv4_enc_csum() for combined encode + csum
This commit is contained in:
parent
9041b45139
commit
eec898ab69
|
@ -171,10 +171,19 @@ module IPL4_example {
|
|||
return data;
|
||||
}
|
||||
|
||||
/* generate an IPv4 packet according to flowi + pkti */
|
||||
function flow_gen_ipv4_pkt(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
/* Encode IPv4 packet + compute checksum */
|
||||
function f_IPv4_enc_csum(IPv4_packet ip) return octetstring {
|
||||
var octetstring data;
|
||||
var OCT2 csum;
|
||||
data := f_IPv4_enc(ip);
|
||||
csum := f_IPv4_checksum(data);
|
||||
data[10] := csum[0];
|
||||
data[11] := csum[1];
|
||||
return data;
|
||||
}
|
||||
|
||||
/* generate an IPv4 packet according to flowi + pkti */
|
||||
function flow_gen_ipv4_pkt(flow_info flowi, pkt_info pkti) return octetstring {
|
||||
var charstring src_ip, dst_ip;
|
||||
|
||||
if (pkti.direction == DIR_ORIG) {
|
||||
|
@ -192,11 +201,7 @@ module IPL4_example {
|
|||
ext_headers := omit,
|
||||
payload := flow_gen_l4_pkt(flowi, pkti)
|
||||
}
|
||||
data := f_IPv4_enc(ip);
|
||||
csum := f_IPv4_checksum(data);
|
||||
data[10] := csum[0];
|
||||
data[11] := csum[1];
|
||||
return data;
|
||||
return f_IPv4_enc_csum(ip);
|
||||
}
|
||||
|
||||
/* generate an IPv6 packet according to flowi + pkti */
|
||||
|
|
Loading…
Reference in New Issue