[dpdk-dev] [PATCH v3 1/3] kni: support for MAC addr change
Ferruh Yigit
ferruh.yigit at intel.com
Mon Jan 22 16:48:34 CET 2018
On 1/22/2018 5:20 AM, Hemant Agrawal wrote:
> Hi Ferruh,
>
> On 1/22/2018 3:37 AM, Ferruh Yigit wrote:
>> On 1/18/2018 6:12 AM, Hemant Agrawal wrote:
>>> This patch adds following:
>>> 1. Option to configure the mac address during create. Generate random
>>> address only if the user has not provided any valid address.
>>> 2. Inform usespace, if mac address is being changed in linux.
>>> 3. Implement default handling of mac address change in the corresponding
>>> ethernet device.
>>>
>>> Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
>>
>> <...>
>>
>>> @@ -530,6 +556,14 @@ rte_kni_handle_request(struct rte_kni *kni)
>>> req->result = kni->ops.config_network_if(\
>>> kni->ops.port_id, req->if_up);
>>> break;
>>> + case RTE_KNI_REQ_CHANGE_MAC_ADDR: /* Change MAC Address */
>>> + if (kni->ops.config_mac_address)
>>> + req->result = kni->ops.config_mac_address(
>>> + kni->ops.port_id, req->mac_addr);
>>> + else if (kni->ops.port_id != UINT16_MAX)
>>
>> This won't be enough. rte_kni_alloc() can be called with NULL ops value. For
>> that case m_ctx->ops won't be updated. And by default ops will have all zeros,
>> not sure how to differentiate it from real port_id zero.
>>
>
> I think, I tried to address that in the first patch.
>
> rte_kni_alloc(struct rte_mempool *pktmbuf_pool,
> memset(ctx, 0, sizeof(struct rte_kni));
> if (ops)
> memcpy(&ctx->ops, ops, sizeof(struct rte_kni_ops));
> + else
> + ctx->ops.port_id = UINT16_MAX;
>
> Do you still see issue?
You are right, this fixes it, I missed this part. So patch lgtm:
Series,
Acked-by: Ferruh Yigit <ferruh.yigit at intel.com>
>
> Regards,
> Hemant
>
More information about the dev
mailing list