From 34e4f0deb66f823092fb4fa251e885503e96273f Mon Sep 17 00:00:00 2001 From: Vadim Kochan Date: Sat, 13 Aug 2016 02:11:19 +0300 Subject: trafgen: tcp: Update csum at runtime if it needed Update TCP checksum field if any TCP of fields was changed. Use same checksum update function on 'packet_finish' and 'header update'. Set 'is_csum_valid = false' if lower IPv4/IPv6 pseudo header was changed. Signed-off-by: Vadim Kochan Signed-off-by: Tobias Klauser --- trafgen_l3.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'trafgen_l3.c') diff --git a/trafgen_l3.c b/trafgen_l3.c index 91052a0..e6aa516 100644 --- a/trafgen_l3.c +++ b/trafgen_l3.c @@ -50,7 +50,7 @@ static void ipv4_field_changed(struct proto_field *field) if (field->id == IP4_SADDR || field->id == IP4_DADDR) { struct proto_hdr *upper = proto_upper_header(field->hdr); - if (upper && upper->ops->id == PROTO_UDP) + if (upper && (upper->ops->id == PROTO_UDP || upper->ops->id == PROTO_TCP)) upper->is_csum_valid = false; } } @@ -148,7 +148,7 @@ static void ipv6_field_changed(struct proto_field *field) if (field->id == IP6_SADDR || field->id == IP6_DADDR) { struct proto_hdr *upper = proto_upper_header(field->hdr); - if (upper && upper->ops->id == PROTO_UDP) + if (upper && (upper->ops->id == PROTO_UDP || upper->ops->id == PROTO_TCP)) upper->is_csum_valid = false; } } -- cgit v1.2.3-54-g00ecf