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

Jarno Rajahalme jarno at ovn.org
Thu Oct 20 22:30:49 UTC 2016


> On Oct 20, 2016, at 2:55 PM, Pravin Shelar <pshelar at ovn.org> wrote:
> 
> On Tue, Oct 18, 2016 at 5:01 PM, Jarno Rajahalme <jarno at ovn.org <mailto: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 <mailto:pshelar at ovn.org>>

Thanks for the review, pushed to master and branch-2.6.

  Jarno




More information about the dev mailing list