Multicast packets forwarded by TSN can arrive out of order

Bug #1635046 reported by amit surana
16
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R3.0
Fix Committed
Medium
Hari Prasad Killi
R3.0.2.x
Fix Committed
Medium
Hari Prasad Killi
R3.0.3.x
Fix Committed
Medium
Hari Prasad Killi
R3.1
Fix Committed
Medium
Hari Prasad Killi
R3.2
Fix Committed
Medium
Hari Prasad Killi
Trunk
Fix Committed
Medium
Hari Prasad Killi

Bug Description

TSN/vRouter is changing the source port for each UDP/VxLAN packet belonging to the same multicast (S,G) stream when forwarding it to ToRs. If there are multiple paths between TSN and ToR or LAGs along the path, then the packets can be delivered out of sequence to the BMS listener.

Revision history for this message
Umamaheshwar (urao) wrote :

Customer Shenzhen Stock exchange is hitting this issue.

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

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

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

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

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/25135
Submitter: Divakar Dharanalakota (<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/25136
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/25125
Committed: http://github.org/Juniper/contrail-vrouter/commit/13aaa37feb3cc1016dcfa6b63f016e827db65780
Submitter: Zuul
Branch: master

commit 13aaa37feb3cc1016dcfa6b63f016e827db65780
Author: Divakar D <email address hidden>
Date: Fri Oct 21 11:38:47 2016 +0530

Calcaulte udp source port for multicast pkt using right hash

While calculating the UDP source port for a multicast packet, the hash
needs to be on Ethernet header and VRF Id. For packet arriving from VM
and Tor, there are no extra header other than transport headers. So the
hash is calculated rightly for these packets. But for packets arriving
from other compute node, there are additional header other than
transport headers. The hash is wrongly calculated in this case on thsese
additional headers leading to different hash for the same Ethernet
headers, resulting in different UDP sourcd port.

The offset is correctly calculated and right ethernet header is passed
to hash function as fix.

Change-Id: I93ae0d96e536875988da6a525cdba4783c1e4d6e
closes-bug: #1635046

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

Reviewed: https://review.opencontrail.org/25136
Committed: http://github.org/Juniper/contrail-vrouter/commit/1c04f007ffa010cb396088394a8afaef76d91b4a
Submitter: Zuul
Branch: R3.0

commit 1c04f007ffa010cb396088394a8afaef76d91b4a
Author: Divakar D <email address hidden>
Date: Fri Oct 21 11:38:47 2016 +0530

Calcaulte udp source port for multicast pkt using right hash

While calculating the UDP source port for a multicast packet, the hash
needs to be on Ethernet header and VRF Id. For packet arriving from VM
and Tor, there are no extra header other than transport headers. So the
hash is calculated rightly for these packets. But for packets arriving
from other compute node, there are additional header other than
transport headers. The hash is wrongly calculated in this case on thsese
additional headers leading to different hash for the same Ethernet
headers, resulting in different UDP sourcd port.

The offset is correctly calculated and right ethernet header is passed
to hash function as fix.

Change-Id: I93ae0d96e536875988da6a525cdba4783c1e4d6e
closes-bug: #1635046

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

Reviewed: https://review.opencontrail.org/25134
Committed: http://github.org/Juniper/contrail-vrouter/commit/20d558022fff439c74ea211cd57b18710dae24d3
Submitter: Zuul
Branch: R3.1

commit 20d558022fff439c74ea211cd57b18710dae24d3
Author: Divakar D <email address hidden>
Date: Fri Oct 21 11:38:47 2016 +0530

Calcaulte udp source port for multicast pkt using right hash

While calculating the UDP source port for a multicast packet, the hash
needs to be on Ethernet header and VRF Id. For packet arriving from VM
and Tor, there are no extra header other than transport headers. So the
hash is calculated rightly for these packets. But for packets arriving
from other compute node, there are additional header other than
transport headers. The hash is wrongly calculated in this case on thsese
additional headers leading to different hash for the same Ethernet
headers, resulting in different UDP sourcd port.

The offset is correctly calculated and right ethernet header is passed
to hash function as fix.

Change-Id: I93ae0d96e536875988da6a525cdba4783c1e4d6e
closes-bug: #1635046

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

Reviewed: https://review.opencontrail.org/25135
Committed: http://github.org/Juniper/contrail-vrouter/commit/3ae57ffdc591f183763adae582de53546bbb791c
Submitter: Zuul
Branch: R3.0.3.x

commit 3ae57ffdc591f183763adae582de53546bbb791c
Author: Divakar D <email address hidden>
Date: Fri Oct 21 11:38:47 2016 +0530

Calcaulte udp source port for multicast pkt using right hash

While calculating the UDP source port for a multicast packet, the hash
needs to be on Ethernet header and VRF Id. For packet arriving from VM
and Tor, there are no extra header other than transport headers. So the
hash is calculated rightly for these packets. But for packets arriving
from other compute node, there are additional header other than
transport headers. The hash is wrongly calculated in this case on thsese
additional headers leading to different hash for the same Ethernet
headers, resulting in different UDP sourcd port.

The offset is correctly calculated and right ethernet header is passed
to hash function as fix.

Change-Id: I93ae0d96e536875988da6a525cdba4783c1e4d6e
closes-bug: #1635046

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

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

Umamaheshwar (urao)
description: updated
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.0.2.x

Review in progress for https://review.opencontrail.org/25333
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/25333
Committed: http://github.org/Juniper/contrail-vrouter/commit/1993e1625e94a9ac595ff681bcc574be5ef876e5
Submitter: Zuul
Branch: R3.0.2.x

commit 1993e1625e94a9ac595ff681bcc574be5ef876e5
Author: Divakar D <email address hidden>
Date: Fri Oct 21 11:38:47 2016 +0530

Calcaulte udp source port for multicast pkt using right hash

While calculating the UDP source port for a multicast packet, the hash
needs to be on Ethernet header and VRF Id. For packet arriving from VM
and Tor, there are no extra header other than transport headers. So the
hash is calculated rightly for these packets. But for packets arriving
from other compute node, there are additional header other than
transport headers. The hash is wrongly calculated in this case on thsese
additional headers leading to different hash for the same Ethernet
headers, resulting in different UDP sourcd port.

The offset is correctly calculated and right ethernet header is passed
to hash function as fix.

Change-Id: I93ae0d96e536875988da6a525cdba4783c1e4d6e
closes-bug: #1635046

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

Reviewed: https://review.opencontrail.org/25272
Committed: http://github.org/Juniper/contrail-vrouter/commit/387843349ccdc38632bc8b092659b1c085363ec3
Submitter: Zuul
Branch: R3.2

commit 387843349ccdc38632bc8b092659b1c085363ec3
Author: Divakar D <email address hidden>
Date: Fri Oct 21 11:38:47 2016 +0530

Calcaulte udp source port for multicast pkt using right hash

While calculating the UDP source port for a multicast packet, the hash
needs to be on Ethernet header and VRF Id. For packet arriving from VM
and Tor, there are no extra header other than transport headers. So the
hash is calculated rightly for these packets. But for packets arriving
from other compute node, there are additional header other than
transport headers. The hash is wrongly calculated in this case on thsese
additional headers leading to different hash for the same Ethernet
headers, resulting in different UDP sourcd port.

The offset is correctly calculated and right ethernet header is passed
to hash function as fix.

Change-Id: I93ae0d96e536875988da6a525cdba4783c1e4d6e
closes-bug: #1635046

Umamaheshwar (urao)
tags: added: sscc-contrail
Umamaheshwar (urao)
tags: added: customer
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

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