2.21.2-36:Padded ACK packet is dropped by vRouter

Bug #1658576 reported by Sandeep Sridhar
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R2.1
In Progress
Undecided
Unassigned
R2.21.x
Fix Committed
Undecided
Unassigned
R2.22.x
Fix Committed
Undecided
Unassigned
R3.0
Fix Committed
Undecided
Unassigned
R3.0.3.x
Fix Committed
Undecided
Unassigned
R3.1
Fix Committed
Undecided
Unassigned
R3.2
Fix Committed
Undecided
Unassigned
Trunk
Fix Committed
Undecided
Unassigned

Bug Description

vRouter drops the padded ACK packet when a VM tries to reach the web server.

In this use-case, VM transmits 60 bytes or less and the packet passes through the QFX. To meet the mimFrameSize constraint, QFX will need to pad the frame with an array of arbitrary bits.
This padding may have any value, zero or non-zero. We have noticed that vRouter drops the padded ACK packet when the value is non-zero.

Tags: vrouter
information type: Proprietary → Public
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.1

Review in progress for https://review.opencontrail.org/28102
Submitter: Anand H. Krishnan (<email address hidden>)

tags: added: vrouter
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R2.21.x

Review in progress for https://review.opencontrail.org/28109
Submitter: Anand H. Krishnan (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.0

Review in progress for https://review.opencontrail.org/28110
Submitter: Anand H. Krishnan (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.2

Review in progress for https://review.opencontrail.org/28111
Submitter: Anand H. Krishnan (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/28112
Submitter: Anand H. Krishnan (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R2.1

Review in progress for https://review.opencontrail.org/28113
Submitter: Anand H. Krishnan (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R2.22.x

Review in progress for https://review.opencontrail.org/28114
Submitter: Anand H. Krishnan (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/28102
Committed: http://github.org/Juniper/contrail-vrouter/commit/623c00c24bf68dde9a8148fa5ae8e7f56cefc49f
Submitter: Zuul (<email address hidden>)
Branch: R3.1

commit 623c00c24bf68dde9a8148fa5ae8e7f56cefc49f
Author: Anand H. Krishnan <email address hidden>
Date: Mon Jan 23 10:15:39 2017 +0530

Calculate checksum only for valid IP length

__skb_checksum_complete calculates checksum for the whole packet,
including the ethernet padding if any. This will result in wrong
checksum verification at the receiving end and thus a wrong packet
drop.

Use __skb_checksum_complete_head instead and pass the length
calculated from IP header as the size over which checksum has to
be calculated.

Change-Id: I48efbb66bc171c590784d6f1931be9abd81198ae
Closes-Bug: #1658576

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/28110
Committed: http://github.org/Juniper/contrail-vrouter/commit/93cc9bd51fdefa096895bb110ffde5c83ddf7966
Submitter: Zuul (<email address hidden>)
Branch: R3.0

commit 93cc9bd51fdefa096895bb110ffde5c83ddf7966
Author: Anand H. Krishnan <email address hidden>
Date: Mon Jan 23 10:15:39 2017 +0530

Calculate checksum only for valid IP length

__skb_checksum_complete calculates checksum for the whole packet,
including the ethernet padding if any. This will result in wrong
checksum verification at the receiving end and thus a wrong packet
drop.

Use __skb_checksum_complete_head instead and pass the length
calculated from IP header as the size over which checksum has to
be calculated.

Change-Id: I48efbb66bc171c590784d6f1931be9abd81198ae
Closes-Bug: #1658576

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/28112
Committed: http://github.org/Juniper/contrail-vrouter/commit/0d5fb64d27b63f8e563865e4508b17a3c07236ed
Submitter: Zuul (<email address hidden>)
Branch: master

commit 0d5fb64d27b63f8e563865e4508b17a3c07236ed
Author: Anand H. Krishnan <email address hidden>
Date: Mon Jan 23 10:15:39 2017 +0530

Calculate checksum only for valid IP length

__skb_checksum_complete calculates checksum for the whole packet,
including the ethernet padding if any. This will result in wrong
checksum verification at the receiving end and thus a wrong packet
drop.

Use __skb_checksum_complete_head instead and pass the length
calculated from IP header as the size over which checksum has to
be calculated.

Change-Id: I48efbb66bc171c590784d6f1931be9abd81198ae
Closes-Bug: #1658576

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/28109
Committed: http://github.org/Juniper/contrail-vrouter/commit/9ea10592817a9a81b33ee719c7e10728078c22e5
Submitter: Zuul (<email address hidden>)
Branch: R2.21.x

commit 9ea10592817a9a81b33ee719c7e10728078c22e5
Author: Anand H. Krishnan <email address hidden>
Date: Mon Jan 23 13:53:53 2017 +0530

Calculate checksum only for valid IP length

__skb_checksum_complete calculates checksum for the whole packet,
including the ethernet padding if any. This will result in wrong
checksum verification at the receiving end and thus a wrong packet
drop.

Use __skb_checksum_complete_head instead and pass the length
calculated from IP header as the size over which checksum has to
be calculated.

Change-Id: Ic9b44a336f314bae369900e383ff5f3003f6c114
Closes-Bug: #1658576

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/28111
Committed: http://github.org/Juniper/contrail-vrouter/commit/4e60e239186aff64bb6285ead622275d7fc37160
Submitter: Zuul (<email address hidden>)
Branch: R3.2

commit 4e60e239186aff64bb6285ead622275d7fc37160
Author: Anand H. Krishnan <email address hidden>
Date: Mon Jan 23 10:15:39 2017 +0530

Calculate checksum only for valid IP length

__skb_checksum_complete calculates checksum for the whole packet,
including the ethernet padding if any. This will result in wrong
checksum verification at the receiving end and thus a wrong packet
drop.

Use __skb_checksum_complete_head instead and pass the length
calculated from IP header as the size over which checksum has to
be calculated.

Change-Id: I48efbb66bc171c590784d6f1931be9abd81198ae
Closes-Bug: #1658576

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/28114
Committed: http://github.org/Juniper/contrail-vrouter/commit/4504ddf7cfdedc8eb3777ab3a585caf40f08ca19
Submitter: Zuul (<email address hidden>)
Branch: R2.22.x

commit 4504ddf7cfdedc8eb3777ab3a585caf40f08ca19
Author: Anand H. Krishnan <email address hidden>
Date: Mon Jan 23 13:53:53 2017 +0530

Calculate checksum only for valid IP length

__skb_checksum_complete calculates checksum for the whole packet,
including the ethernet padding if any. This will result in wrong
checksum verification at the receiving end and thus a wrong packet
drop.

Use __skb_checksum_complete_head instead and pass the length
calculated from IP header as the size over which checksum has to
be calculated.

Change-Id: Ic9b44a336f314bae369900e383ff5f3003f6c114
Closes-Bug: #1658576

Revision history for this message
Umamaheshwar (urao) wrote :

Shenzhen stock exchange, customer is facing this issue, needs fix in R3.0.3 branch. hence opening milestone for it.

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.0.3.x

Review in progress for https://review.opencontrail.org/35082
Submitter: Divakar Dharanalakota (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/35082
Committed: http://github.com/Juniper/contrail-vrouter/commit/08b7d3acba3c81d295cee0676b23273a61ab41c6
Submitter: Zuul (<email address hidden>)
Branch: R3.0.3.x

commit 08b7d3acba3c81d295cee0676b23273a61ab41c6
Author: Anand H. Krishnan <email address hidden>
Date: Mon Jan 23 10:15:39 2017 +0530

Calculate checksum only for valid IP length

__skb_checksum_complete calculates checksum for the whole packet,
including the ethernet padding if any. This will result in wrong
checksum verification at the receiving end and thus a wrong packet
drop.

Use __skb_checksum_complete_head instead and pass the length
calculated from IP header as the size over which checksum has to
be calculated.

Closes-Bug: #1658576

Conflicts:
 linux/vrouter_mod.c

Change-Id: Ibf00f53ae56453c1065206f092c397f4e6c906e6

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.