diff --git a/core/modules/l4_checksum.cc b/core/modules/l4_checksum.cc index 3ad1f23d6..381eca821 100644 --- a/core/modules/l4_checksum.cc +++ b/core/modules/l4_checksum.cc @@ -76,8 +76,12 @@ void L4Checksum::ProcessBatch(Context *ctx, bess::PacketBatch *batch) { if (verify_) EmitPacket(ctx, batch->pkts()[i], (VerifyIpv4TcpChecksum(*ip, *tcp)) ? FORWARD_GATE : FAIL_GATE); - else + else { tcp->checksum = CalculateIpv4TcpChecksum(*ip, *tcp); + EmitPacket(ctx, batch->pkts()[i], FORWARD_GATE); + } + } else { /* fail-safe condition. */ + EmitPacket(ctx, batch->pkts()[i], FORWARD_GATE); } } }