[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4f57a34c-55a3-ea39-b9cc-2e1dbebc99c1@mellanox.com>
Date: Tue, 5 Feb 2019 12:02:01 +0000
From: Eli Britstein <elibr@...lanox.com>
To: David Miller <davem@...emloft.net>,
"yihung.wei@...il.com" <yihung.wei@...il.com>
CC: "pshelar@....org" <pshelar@....org>,
"dev@...nvswitch.org" <dev@...nvswitch.org>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"simon.horman@...ronome.com" <simon.horman@...ronome.com>
Subject: Re: [ovs-dev] [PATCH net-next V2 1/1] openvswitch: Declare ovs key
structures using macros
On 2/4/2019 10:07 PM, David Miller wrote:
> From: Yi-Hung Wei <yihung.wei@...il.com>
> Date: Mon, 4 Feb 2019 10:47:18 -0800
>
>> For example, to see how 'struct ovs_key_ipv6' is defined, now we need
>> to trace how OVS_KEY_IPV6_FIELDS is defined, and how OVS_KEY_FIELD_ARR
>> and OVS_KEY_FIELD defined. I think it makes the header file to be
>> more complicated.
> I completely agree.
>
> Unless this is totally unavoidable, I do not want to apply a patch
> which makes reading and auditing the networking code more difficult.
This technique is discussed for example in
https://stackoverflow.com/questions/6635851/real-world-use-of-x-macros,
and I found existing examples of using it in the kernel tree:
__BPF_FUNC_MAPPER in commit ebb676daa1a34 ("bpf: Print function name in
addition to function id")
__AAL_STAT_ITEMS and __SONET_ITEMS in commit 607ca46e97a1b ("UAPI:
(Scripted) Disintegrate include/linux"), the successor of commit
1da177e4c3f4 ("Linux-2.6.12-rc2"). I didn't dig deeper to the past.
I can agree it makes that H file a bit more complicated, but for sure
less than ## macros that are widely used.
However, I think the alternatives of generating such defines by some
scripts, or having the fields in more than one place are even worse, so
it is a kind of unavoidable.
Please reconsider regarding applying this patch.
Powered by blists - more mailing lists