[dpdk-dev] [PATCH v4 2/2] net: added macro to extract MAC address bytes

Ferruh Yigit ferruh.yigit at intel.com
Wed Aug 18 10:23:09 CEST 2021


On 8/17/2021 6:00 PM, Stephen Hemminger wrote:
> On Tue, 17 Aug 2021 17:44:51 +0100
> Ferruh Yigit <ferruh.yigit at intel.com> wrote:
> 
>> On 8/17/2021 4:25 PM, Stephen Hemminger wrote:
>>> On Tue, 17 Aug 2021 09:11:17 +0100
>>> Ferruh Yigit <ferruh.yigit at intel.com> wrote:
>>>   
>>>> On 8/17/2021 12:03 AM, Stephen Hemminger wrote:  
>>>>> On Mon, 16 Aug 2021 15:27:28 +0530
>>>>> Aman Singh <aman.deep.singh at intel.com> wrote:
>>>>>     
>>>>>> Added macros to simplify print of MAC address.
>>>>>> The six bytes of a MAC address are extracted in
>>>>>> a macro here, to improve code readablity.
>>>>>>
>>>>>> Signed-off-by: Aman Singh <aman.deep.singh at intel.com>
>>>>>> Reviewed-by: Ferruh Yigit <ferruh.yigit at intel.com>
>>>>>> ---
>>>>>> The change in the document will be done in seperate patch.
>>>>>> To ensure document has direct reference of the code as shown in
>>>>>> commit 413c75c33c40 ("doc: show how to include code in guides").    
>>>>>
>>>>> NAK
>>>>> The DPDK already has rte_ether_format_addr()
>>>>> why does so much code not use it?
>>>>>     
>>>>
>>>> 'rte_ether_format_addr()' formats string to a buffer, but most of the times the
>>>> need is just to log and having a buffer for it is unnecessary.
>>>>
>>>> Both macros look useful to me.  
>>>
>>> Yes, but it would be good if same format was used everywhere.
>>>   
>>
>> Agree, and 'RTE_ETHER_ADDR_PRT_FMT' macro helps to unify the format without
>> forcing to create the buffer.
>>
>> We can use 'RTE_ETHER_ADDR_PRT_FMT' in the 'rte_ether_format_addr()' to unify
>> all output, the downside is it may change the output of the API, which may cause
>> trouble for some customers.
>> Other option is define 'RTE_ETHER_ADDR_PRT_FMT' as whatever
>> 'rte_ether_format_addr()' has, to not cause a change in the API, what do you think?
> 
> 
> Why change the format using spaces between parts is not standard.
> The standard ways of printing ether addresses on Linux is  00:01:02:03:04:05
> (and on Windows 00-01-02-03-04-05).
> 

It is not changing the format in a way to use spaces, macro is:
#define RTE_ETHER_ADDR_PRT_FMT     "%02x:%02x:%02x:%02x:%02x:%02x"

API is 'rte_ether_format_addr()': "%02X:%02X:%02X:%02X:%02X:%02X"

So only case changes (if we update 'rte_ether_format_addr()').



More information about the dev mailing list