Matthew Smith 45d60492a4 dpdk: patch broken virtio macro
Type: fix

In DPDK 20.08, the macro ASSIGN_UNLESS_EQUAL(), which is defined in the
virtio PMD code, is broken. It does not actually set the variable that is
passed in to the value that is passed in. It just assigns the value
to a local variable that it declares. This results in
virtqueue_clear_net_hdr() failing to clear the fields in the virtio
net header. This can cause packets which were sent over an IPsec tunnel
and are subsequently transmitted on a virtio interface to have garbage
in the virtio net header.

Apply a post-20.08 patch from upstream to fix it.

Change-Id: Ic53e89d859db628e26a3c1988e53b626fede94d7
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
2020-11-25 10:51:09 +00:00
..

Changes needed to DPDK are stored here as git patch files. Maintaining these
files using “git format-patch” and “git am” will make it simpler to manage
these changes. Patches made to DPDK should only be temporary until they are
accepted upstream and made available in the next DPDK release.

The following is the method used to generate these patches:

1. Git clone the package to a new directory:
 # git clone http://dpdk.org/git/dpdk dpdk

2. Create a branch based on the release you wish to patch.
Note, “git tag” will show you all the release tags. The following example is
for release tag “v2.2.0” and will create a branch named “two_dot_two”.
 # cd <root dir>
 # git checkout -b two_dot_two v2.2.0

3. Apply all the existing patches to this new branch.
 # git am </path/to/existing/patches/*>

4. Make your changes and commit your change to your repository.
 # <edit files>
 # git commit -s

5. Create the patch files with format-patch. This creates all the patch files
for your branch (two_dot_two), with your latest commits as the last ones.
 # git format-patch main..two_dot_two

6. Copy, add and commit the new patches into the patches directory.