Non DIAG packets with checksum FFFF are wrongly treat as DIAG packets

Bug #1576506 reported by Divakar Dharanalakota
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R3.0
Fix Committed
Medium
Divakar Dharanalakota
R3.1
Fix Committed
Medium
Divakar Dharanalakota
Trunk
Fix Committed
Medium
Divakar Dharanalakota

Bug Description

Currently the transport checksum value of FFFF is used to identify that packet is Diag packet. If a genuine packet of checksum FFFF is received that is also wrongly treated as Diag packet.

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

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

Jeba Paulaiyan (jebap)
information type: Proprietary → Public
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/19716
Committed: http://github.org/Juniper/contrail-vrouter/commit/9e3bdfc3ec60b31f12d89a4267ed0445908b991e
Submitter: Zuul
Branch: R3.0

commit 9e3bdfc3ec60b31f12d89a4267ed0445908b991e
Author: Divakar <email address hidden>
Date: Fri Apr 29 10:29:56 2016 +0530

Dont treat all FFFF checksum packets as DIAG packets

Currently, in the receiving Vrouter, if the checksum of the UDP packets
is FFFF, it is treated as DIAG packets. But there can be some UDP
packets whose checksum can be FFFF. These should not be treated as DIAG
packets. To achieve this, DIAG packets are treated like below.

Agent ensures that checksum of DIAG packets is not FFFF, but stores FFFF
as checksum in UDP header. In the receiving Vrouter if UDP's checksum is
seen as FFFF, checksum is validated again to verify whether that is
correct checksum or not. If that is a wrong checksum, it would be marked
as DIAG packet. If right checksum, it would be processed as any other
regular packet.

Also incase of MplsoUDP encapsulation, even if the
configuration is to calculate the outer UDP checksum, if DIAG packet,
the outer UDP checksum is not computed. This ensures that,on the
receiving side, if checksum is validated by NIC, we will not have to
compute the checksum for the inner packet once again. To ensure that
there are not transmit errors, Agent calcualtes the checksum in the
payload and validates it after receiving.

Change-Id: Ie5f88deeea70e15aefda4b9dce49ccc48df3f117
closes-bug: #1576506

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

Review in progress for https://review.opencontrail.org/22196
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/22197
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/22197
Committed: http://github.org/Juniper/contrail-vrouter/commit/b5f8c1cd0d5d73fd35f536549e7b0bc3f41a30cf
Submitter: Zuul
Branch: R3.1

commit b5f8c1cd0d5d73fd35f536549e7b0bc3f41a30cf
Author: Divakar <email address hidden>
Date: Fri Apr 29 10:29:56 2016 +0530

Dont treat all FFFF checksum packets as DIAG packets

Currently, in the receiving Vrouter, if the checksum of the UDP packets
is FFFF, it is treated as DIAG packets. But there can be some UDP
packets whose checksum can be FFFF. These should not be treated as DIAG
packets. To achieve this, DIAG packets are treated like below.

Agent ensures that checksum of DIAG packets is not FFFF, but stores FFFF
as checksum in UDP header. In the receiving Vrouter if UDP's checksum is
seen as FFFF, checksum is validated again to verify whether that is
correct checksum or not. If that is a wrong checksum, it would be marked
as DIAG packet. If right checksum, it would be processed as any other
regular packet.

Also incase of MplsoUDP encapsulation, even if the
configuration is to calculate the outer UDP checksum, if DIAG packet,
the outer UDP checksum is not computed. This ensures that,on the
receiving side, if checksum is validated by NIC, we will not have to
compute the checksum for the inner packet once again. To ensure that
there are not transmit errors, Agent calcualtes the checksum in the
payload and validates it after receiving.

Change-Id: Ie5f88deeea70e15aefda4b9dce49ccc48df3f117
closes-bug: #1576506

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

Reviewed: https://review.opencontrail.org/22196
Committed: http://github.org/Juniper/contrail-vrouter/commit/5880ae9a12d26b3f221447a404334416cb60c3d2
Submitter: Zuul
Branch: master

commit 5880ae9a12d26b3f221447a404334416cb60c3d2
Author: Divakar <email address hidden>
Date: Fri Apr 29 10:29:56 2016 +0530

Dont treat all FFFF checksum packets as DIAG packets

Currently, in the receiving Vrouter, if the checksum of the UDP packets
is FFFF, it is treated as DIAG packets. But there can be some UDP
packets whose checksum can be FFFF. These should not be treated as DIAG
packets. To achieve this, DIAG packets are treated like below.

Agent ensures that checksum of DIAG packets is not FFFF, but stores FFFF
as checksum in UDP header. In the receiving Vrouter if UDP's checksum is
seen as FFFF, checksum is validated again to verify whether that is
correct checksum or not. If that is a wrong checksum, it would be marked
as DIAG packet. If right checksum, it would be processed as any other
regular packet.

Also incase of MplsoUDP encapsulation, even if the
configuration is to calculate the outer UDP checksum, if DIAG packet,
the outer UDP checksum is not computed. This ensures that,on the
receiving side, if checksum is validated by NIC, we will not have to
compute the checksum for the inner packet once again. To ensure that
there are not transmit errors, Agent calcualtes the checksum in the
payload and validates it after receiving.

Change-Id: Ie5f88deeea70e15aefda4b9dce49ccc48df3f117
closes-bug: #1576506

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.