[dpdk-dev] [PATCH v3 1/3] kni: support for MAC addr change

Hemant Agrawal hemant.agrawal at nxp.com
Mon Jan 22 06:20:02 CET 2018


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?

Regards,
Hemant


More information about the dev mailing list