[ovs-dev] [PATCH 1/2] datapath: Support a fixed size of 128 distinct labels.

Pravin Shelar pshelar at ovn.org
Thu Oct 20 21:55:37 UTC 2016


On Tue, Oct 18, 2016 at 5:01 PM, Jarno Rajahalme <jarno at ovn.org> wrote:
> Port upstream change in conntrack labels extension.  Add a new
> configure macro HAVE_NF_CONN_LABELS_WITH_WORDS to detect the old
> definition.  Unfortunately there is no conntrack API to hide the
> difference, so the this makes conntrack.c deviate from upstream source
> a bit.
>
> Upstream commit:
>     commit 23014011ba4209a086931ff402eac1c41abbe456
>     Author: Florian Westphal <fw at strlen.de>
>     Date:   Thu Jul 21 12:51:16 2016 +0200
>
>     netfilter: conntrack: support a fixed size of 128 distinct labels
>
>     The conntrack label extension is currently variable-sized, e.g. if
>     only 2 labels are used by iptables rules then the labels->bits[] array
>     will only contain one element.
>
>     We track size of each label storage area in the 'words' member.
>
>     But in nftables and openvswitch we always have to ask for worst-case
>     since we don't know what bit will be used at configuration time.
>
>     As most arches are 64bit we need to allocate 24 bytes in this case:
>
>     struct nf_conn_labels {
>         u8            words;   /*     0     1 */
>         /* XXX 7 bytes hole, try to pack */
>         long unsigned bits[2]; /*     8     24 */
>
>     Make bits a fixed size and drop the words member, it simplifies
>     the code and only increases memory requirements on x86 when
>     less than 64bit labels are required.
>
>     We still only allocate the extension if its needed.
>
>     Signed-off-by: Florian Westphal <fw at strlen.de>
>     Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
>
> Signed-off-by: Jarno Rajahalme <jarno at ovn.org>

Acked-by: Pravin B Shelar <pshelar at ovn.org>



More information about the dev mailing list