ICMP - sending big buffer fails

Bug #1803541 reported by Arkadiusz Kudan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
Trunk
Fix Committed
Undecided
Arkadiusz Kudan
OpenContrail
Fix Committed
Undecided
Arkadiusz Kudan

Bug Description

Sometimes, the tunneling test "ICMP - sending big buffer succeeds" fails apart of tunneling protocol.

It happens when we send a ping with payload size equal or higher than 1473. In this scenario, container slices the packet into two fragments (container has default 1500 mtu) and sends it to the network interface. vRouter extension captures the fragments and adds tunneling headers. However, the first fragment is too big (physical interface's mtu is also 1500) so it also needs to be fragmented. At the egress of physical interface we should see 3 fragments.

This could indicate a bug in implementation of fragmentation in vRouter extension.

Last seen: 2018-11-07 http://logs.opencontrail.org/winci/a57a20c9ee5142aeb0e6d6b23b500836

Example of log output:

2018-11-07 10:08:32.251000 | Context Tunneling VXLAN
2018-11-07 10:09:28.415000 | [?] Uses specified tunneling method 57.48s
2018-11-07 10:09:28.415000 | Test not performed, because VXLAN doesn't report correctly in vrfstats
2018-11-07 10:09:28.415000 | at <ScriptBlock>, J:\Jenkins\workspace\WinContrail\****-server2016-devel\Test\Tests\Network\TunnellingWithAgent.Tests.ps1: line 115
2018-11-07 10:09:28.415000 | 115: Set-TestInconclusive "Test not performed, because VXLAN doesn't report correctly in vrfstats"
2018-11-07 10:10:36.042000 | [+] ICMP - Ping between containers on separate compute nodes succeeds 68.24s
2018-11-07 10:11:32.213000 | [+] TCP - HTTP connection between containers on separate compute nodes succeeds 60.07s
2018-11-07 10:12:53.577000 | [+] UDP - sending message between containers on separate compute nodes succeeds 75.01s
2018-11-07 10:14:01.197000 | [-] IP fragmentation - ICMP - Ping with big buffer succeeds 75.09s
2018-11-07 10:14:01.198000 | Expected {0}, but got {1}.
2018-11-07 10:14:01.198000 | 182: -BufferSize $BufferSize | Should Be 0
2018-11-07 10:14:01.198000 | at Invoke-LegacyAssertion, C:\Program Files\WindowsPowerShell\Modules\Pester\4.2.0\Functions\Assertions\Should.ps1: line 188
2018-11-07 10:14:01.198000 | at <ScriptBlock>, J:\Jenkins\workspace\WinContrail\****-server2016-devel\Test\Tests\Network\TunnellingWithAgent.Tests.ps1: line 177
2018-11-07 10:15:52.583000 | [+] IP fragmentation - UDP - sending big buffer succeeds 102.36s

Changed in opencontrail:
assignee: nobody → Arkadiusz Kudan (arkadiusz.kudan)
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/47696
Submitter: Arkadiusz Kudan (<email address hidden>)

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

Reviewed: https://review.opencontrail.org/47696
Committed: http://github.com/Juniper/contrail-vrouter/commit/f4d282b1c8618e84f5bf3b0d465a01571b90c47f
Submitter: Zuul v3 CI (<email address hidden>)
Branch: master

commit f4d282b1c8618e84f5bf3b0d465a01571b90c47f
Author: Arkadiusz Kudan <email address hidden>
Date: Wed Nov 14 13:51:58 2018 +0100

Update MTU of vif when it connects to the vswitch

This commit is related in data race between vRouter extension and connection
of virtual interface to vswitch.

After container is created, hyper-V exposes assigned virtual interface
for the container, but the vif connection to the vswitch is done asynchronously.

MTU for the virtual interface is updated only when it's connected to the vswitch.

There were cases when vRouter extension read MTU from vif before it was
connected, so extension had incorrect value.

The fragmentation didn't happen and the read MTU was higher then
physical interface's so the fragment was dropped.

Change-Id: I4aff05543507318fe77d21f4a76a3f02b955dad4
Closes-Bug: #1803541

Changed in opencontrail:
status: New → Fix Committed
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.