Re: git: 779fd0534466 - main - ifconfig: improve vlan options parsing

From: Alexander V. Chernikov <melifaro_at_ipfw.ru>
Date: Sat, 29 Jan 2022 11:20:41 UTC

> On 28 Jan 2022, at 17:34, John Baldwin <jhb@FreeBSD.org> wrote:
> 
> On 1/17/22 1:35 AM, Alexander V. Chernikov wrote:
>> The branch main has been updated by melifaro:
>> URL: https://cgit.FreeBSD.org/src/commit/?id=779fd05344662aeec79c29470258bf657318eab3
>> commit 779fd05344662aeec79c29470258bf657318eab3
>> Author:     Alexander V. Chernikov <melifaro@FreeBSD.org>
>> AuthorDate: 2022-01-17 09:30:26 +0000
>> Commit:     Alexander V. Chernikov <melifaro@FreeBSD.org>
>> CommitDate: 2022-01-17 09:35:15 +0000
>>     ifconfig: improve vlan options parsing
>>          PR:     261136
>>     Reported by:    Daniel O'Connor
>>     MFC after:      2 weeks
>> ---
>>  sbin/ifconfig/ifvlan.c | 21 ++++++++++++++-------
>>  1 file changed, 14 insertions(+), 7 deletions(-)
>> diff --git a/sbin/ifconfig/ifvlan.c b/sbin/ifconfig/ifvlan.c
>> index 60f97338ee27..1e74b504fc26 100644
>> --- a/sbin/ifconfig/ifvlan.c
>> +++ b/sbin/ifconfig/ifvlan.c
>> @@ -144,8 +139,20 @@ vlan_parse_ethervid(const char *name)
>>  	if ((*cp != '\0') || (vid & ~0xFFF))
>>  		errx(1, "invalid vlan tag");
>>  -	strlcpy(params.vlr_parent, ifname, IFNAMSIZ);
>> -	params.vlr_tag = (vid & 0xFFF);
>> +	/*
>> +	 * allow "devX.Y vlandev devX vlan Y" syntax
>> +	 */
>> +	if (params.vlr_tag == NOTAG || params.vlr_tag == vid)
>> +		params.vlr_tag = vid;
>> +	else
>> +		errx(1, "ambiguous vlan specification");
>> +
>> +	/* Restrict overriding interface name */
>> +	if (params.vlr_parent[0] == '\0' || !strcmp(params.vlr_parent, ifname))
>> +		strlcpy(params.vlr_parent, ifname, IFNAMSIZ);
>> +	else
>> +		errx(1, "ambiguous vlan specification");
>> +	printf("CR: %s %d\n", params.vlr_parent, params.vlr_tag);
> 
> Did you mean to leave this printf in?  I see it when adding a vlan interface now:
No, I didn’t - it slipped through the cracks. Fixed in 656f5031c391.
> 
> root@frodo:~ # ifconfig cxl0.200 create
> CR: cxl0 200
> 
> -- 
> John Baldwin