Uploaded image for project: 'vpp'
  1. vpp
  2. VPP-2077

IP fragmentation: running_fragment_id is not thread safe

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Medium Medium
    • None
    • None
    • None
    • None

      I am working on a test suite that will do IP fragmentation and reasembly, using a tunneling protocol (currently gtpu) over an interface with reduced MTU. I have seen "duplicate/overlapping fragments" (causing very poor NDR) when multiple workers are fragmenting for a single tunnel.

      As I was able to restore good performance using [0], I believe the issue is at line 45, running_fragment_id shared among all workers. A better solution would be to divide u32 into intervals, so each worker keeps a thread-local variable to iterate over its own interval.

      From CSIT point of view, we are not blocked, as we have few testbeds with hyperthreading off, so we can see good results in 1c tests there.

      [0] https://gerrit.fd.io/r/c/vpp/+/38797/1/src/vnet/ip/ip_frag.c

            Unassigned Unassigned
            vrpolak Vratko Polak
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: