IP fragmentation doesn't work on windows

Bug #1773203 reported by Michał Krasnoborski
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R5.0
Fix Committed
Undecided
Michał Krasnoborski
Trunk
Fix Committed
Undecided
Michał Krasnoborski
OpenContrail
Fix Committed
Undecided
Unassigned

Bug Description

IP fragmentation doesn't work in vrouter extension on Windows compute nodes.

What needs to be fixed:
* Fragmentation of outgoing packets when tunneling
* Receiving fragmented packets from container's NIC
* Receiving fragmented packets from a tunnel
* Sending fragmented packets to containers' NICs. Might be related to Docker EE fragmentation bug on Windows https://github.com/docker/for-win/issues/1144

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

Review in progress for https://review.opencontrail.org/43276
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43309
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43276
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43309
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43276
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43309
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43844
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43276
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43309
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43962
Submitter: Jacek I?ykowski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43276
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/43309
Submitter: Michal Krasnoborski (<email address hidden>)

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

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

commit 423bb2f134bae4d8d9a6a5b53b85eba4b03898cd
Author: Jacek Iżykowski <email address hidden>
Date: Tue Jun 19 15:57:01 2018 +0200

Set initial IP csum value to 0 when it's offloaded

Change-Id: Ieecdc0146c53ec9990a1768fb571f32ec009c54b
Partial-bug: #1773203

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

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

commit 7968392eeaaea036a0c5edc1b27112d25019c006
Author: Michał Krasnoborski <email address hidden>
Date: Thu Jun 14 14:10:33 2018 +0200

Refactor NBL and vr_packet memory management in windows vrouter

This refactor is required in order to fix IP Fragmentation support
in Windows vrouter extension.

Refactor memory management of Net Buffer Lists and vr_packets:
* Net Buffer Lists no longer store vr_packet in Context,
* vr_packets may only point to leaf Net Buffer Lists,
* vr_packets are deallocated before NdisFSendNetBufferLists.
* Parent Net Buffer Lists are deallocated based on atomic ChildRefCount.

Change-Id: I84d01e68f038f3f9ffc47ce7da47c2824ff4ff87
Partial-Bug: #1773203

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

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

commit 9b235e9d7da9979d74452c7fea970a7737ead98c
Author: Michał Krasnoborski <email address hidden>
Date: Fri May 25 12:13:40 2018 +0200

Implement NBL splitting in windows vrouter

This is required to support IP fragmentation.

When a large packet is sent from container,
multiple fragments are sent in multiple Net Buffers
attached to a single Net Buffer List.
Because the rest of vrouter assumes 1 to 1 association
between vr_packet and Net Buffer List, we need to
split such NBL into multiple NBLs containing a single
Net Buffer each.

1. Implement SplitMultiNetBufferNetBufferList.
2. Use this splitting in FilterSendNetBufferLists.

Change-Id: I1447a657c69d06621343aa1b5118cc87b458c9dc
Partial-Bug: #1773203

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

Review in progress for https://review.opencontrail.org/44654
Submitter: Dariusz Sosnowski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44655
Submitter: Dariusz Sosnowski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44656
Submitter: Dariusz Sosnowski (<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/44662
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44661
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44745
Submitter: Jacek Izykowski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44662
Submitter: Michal Krasnoborski (<email address hidden>)

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

Reviewed: https://review.opencontrail.org/44656
Committed: http://github.com/Juniper/contrail-vrouter/commit/4da0d4753e93fd2cd4e48bfdbe9a9967f43a9849
Submitter: Zuul v3 CI (<email address hidden>)
Branch: R5.0

commit 4da0d4753e93fd2cd4e48bfdbe9a9967f43a9849
Author: Jacek Iżykowski <email address hidden>
Date: Tue Jun 19 15:57:01 2018 +0200

Set initial IP csum value to 0 when it's offloaded

Change-Id: Ieecdc0146c53ec9990a1768fb571f32ec009c54b
Partial-bug: #1773203
(cherry picked from commit 423bb2f134bae4d8d9a6a5b53b85eba4b03898cd)

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

Review in progress for https://review.opencontrail.org/44745
Submitter: Jacek Izykowski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44662
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44661
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/44745
Submitter: Jacek Izykowski (<email address hidden>)

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

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

commit d3fe3fb77458829f2fb6df01f187ea5a22bf83fa
Author: Michał Krasnoborski <email address hidden>
Date: Mon Jul 16 16:28:35 2018 +0200

Ensure that all headers are in single allocation on Windows

When receiving a fragmented packets from a container,
the protocol header may be in separate allocation than
ethernet + IP headers. dp-core assumes that all these
headers are in single chunk of memory so sometimes
we need to reallocate the buffer.

Change-Id: I9372cf79dbe2cf66d47e9e42daec134933d96c94
Partial-Bug: #1773203

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

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

commit 7e523175e2ca2ce37abd0337da20ed67c42b2483
Author: Michał Krasnoborski <email address hidden>
Date: Tue May 22 11:47:13 2018 +0200

Implement basic version of hos_enqueue_to_assembler callback on Windows

This implementation doesn't create a per-cpu queue, but rather
dispatches the fragment eagerly. A proper version should be implemented
and tested after fragmentation of tunnelled packets is implemented.

Change-Id: Ide63080215a5be17f0613503a6bcd455020df7f9
Partial-Bug: #1773203

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

Review in progress for https://review.opencontrail.org/45045
Submitter: Dariusz Sosnowski (<email address hidden>)

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

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

commit ffee5510c54dcb7abf45177e123c13efbdaa1ba1
Author: Dariusz Sosnowski <email address hidden>
Date: Mon Jul 30 09:10:22 2018 +0200

vrouter: fix ReallocateHeaders compilation issues

Change-Id: Ib07e538baec5f0250c0b58ae4e05bd7aff88e3f5
Partial-Bug: #1773203

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

Review in progress for https://review.opencontrail.org/44745
Submitter: Jacek Izykowski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/45204
Submitter: Michal Krasnoborski (<email address hidden>)

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

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

commit af4d4eade687f4ec0310d4347eee96c8d8405b9a
Author: Jacek Iżykowski <email address hidden>
Date: Mon Jul 30 12:38:45 2018 +0200

Fragmentation of tunneled packets.

Change-Id: I14d8b1a562a803d474febf4dab07664636bc23e6
Partial-Bug: #1773203

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

Reviewed: https://review.opencontrail.org/44654
Committed: http://github.com/Juniper/contrail-vrouter/commit/185f1b25e2d7fef108f692d428f01cc493b94b1b
Submitter: Zuul v3 CI (<email address hidden>)
Branch: R5.0

commit 185f1b25e2d7fef108f692d428f01cc493b94b1b
Author: Michał Krasnoborski <email address hidden>
Date: Thu Jun 14 14:10:33 2018 +0200

Refactor NBL and vr_packet memory management in windows vrouter

This refactor is required in order to fix IP Fragmentation support
in Windows vrouter extension.

Refactor memory management of Net Buffer Lists and vr_packets:
* Net Buffer Lists no longer store vr_packet in Context,
* vr_packets may only point to leaf Net Buffer Lists,
* vr_packets are deallocated before NdisFSendNetBufferLists.
* Parent Net Buffer Lists are deallocated based on atomic ChildRefCount.

Change-Id: I84d01e68f038f3f9ffc47ce7da47c2824ff4ff87
Partial-Bug: #1773203
(cherry picked from commit 7968392eeaaea036a0c5edc1b27112d25019c006)

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

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

commit f20533b59a7b9da10a860547cb4109b7a0842352
Author: Michał Krasnoborski <email address hidden>
Date: Fri May 25 12:13:40 2018 +0200

Implement NBL splitting in windows vrouter

This is required to support IP fragmentation.

When a large packet is sent from container,
multiple fragments are sent in multiple Net Buffers
attached to a single Net Buffer List.
Because the rest of vrouter assumes 1 to 1 association
between vr_packet and Net Buffer List, we need to
split such NBL into multiple NBLs containing a single
Net Buffer each.

1. Implement SplitMultiNetBufferNetBufferList.
2. Use this splitting in FilterSendNetBufferLists.

Change-Id: I1447a657c69d06621343aa1b5118cc87b458c9dc
Partial-Bug: #1773203

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

Review in progress for https://review.opencontrail.org/45308
Submitter: Dariusz Sosnowski (<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/45204
Submitter: Michal Krasnoborski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/45326
Submitter: Jacek Izykowski (<email address hidden>)

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

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

commit 103d021b5cae7742cfed4ede8ed6d77313d7bfd2
Author: Michał Krasnoborski <email address hidden>
Date: Wed Aug 1 22:43:23 2018 +0200

Fix checksum offload handling in windows vrouter

1. Copy offloading settings when reallocating headers.
2. Fix header offset calculation when fixing checksums
(was wrong in the case when packet came from a tunnel).
3. Disable checksum offloading when doing fragmentation
(to avoid offloading overwriting previously calculated csums).

Note: Some edge cases may still be incorrect.

Change-Id: If62a3ad55625921fb8cbe868df4255465c957b03
Partial-Bug: #1773203

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

Review in progress for https://review.opencontrail.org/45440
Submitter: Michal Krasnoborski (<email address hidden>)

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

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

commit cc69afa38168d70074b83e60f925095204b12b0b
Author: Jacek Iżykowski <email address hidden>
Date: Mon Aug 6 17:07:33 2018 +0200

WinPacketFreeMultiFragmentRecursive

Change-Id: Ib08073320b960c0430dbbb7410bb7cf4d8f5a5ef
Partial-Bug: #1773203

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

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

commit 2c9a4fe15d7d4b45ff012ef26d33432191c7ffe6
Author: Michał Krasnoborski <email address hidden>
Date: Fri Aug 3 16:15:29 2018 +0200

windows vrouter: Set vif_mtu to obtained value

Change-Id: I9795c32dc13c7fd788acaf4ec79241901726388e
Partial-Bug: #1773203

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

Review in progress for https://review.opencontrail.org/45703
Submitter: Mateusz Jablonski (<email address hidden>)

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

Review in progress for https://review.opencontrail.org/45704
Submitter: Mateusz Jablonski (<email address hidden>)

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

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

commit 5642bf64ea77a5b96dda87054af5814dc5afe490
Author: Mateusz Jablonski <email address hidden>
Date: Wed Aug 22 10:38:28 2018 +0200

Fix inner ethernet header length in fragmented packet on Windows

When tunneled packets are sent from one virtual network to
another wirtual network there is no ethernet header in inner packet.

Change-Id: I357afb68ce41dee337280f0eea34254b0e3dcdd1
Partial-Bug: #1773203

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

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

commit 10302e3d440c1899aac33073d12f66ce942d1027
Author: Mateusz Jablonski <email address hidden>
Date: Wed Aug 22 12:37:52 2018 +0200

Fix outer UDP packet length in fragmented packet on Windows

UDP packet length has to be recalculated in fragmented
packets when MPLSoUDP tunneling is used.

Change-Id: I82b4989ad3c440ad12b716eb30e83f631b8931fe
Partial-Bug: #1773203

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.