7.0 - ifconfig create is not working as expected?
Bruce M. Simpson
bms at FreeBSD.org
Sun Mar 30 03:22:44 PDT 2008
Eugene Grosbein wrote:
> On Sat, Mar 29, 2008 at 03:43:44PM -0500, Brooks Davis wrote:
>
>
>>> I was using following command in FreeBSD 6.2:
>>> # ifconfig lo1 create inet 172.16.16.2 netmask 255.255.255.0
>>> In FreeBSD 7.0 I got an error:
>>> # ifconfig lo1 create inet 172.16.16.2 netmask 255.255.255.0
>>> ifconfig: inet: bad value
>>> But it is working splitted in to two commands:
>>> # ifconfig lo1 create
>>> # ifconfig lo1 inet 172.16.16.2 netmask 255.255.255.0
>>> Is this expected behavior or should I file a PR?
>>>
>> This expected. There's some argument it's wrong, but filing a PR is
>> unlikely to cause it to change any time soon.
>>
>
> Why? The same with creating gif-tunnel, now I need to invoke ifconfig
> twice, once for 'create' and once for other tunnel parameters,
> whereas for RELENG_6 this works: 'ifconfig gif0 create tunnel 1.1.1.1 2.2.2.2'
>
> This breaks existing setups/scripts. This is POLA issue.
> Why was it broken?
>
I don't know why or how this has happened, however, given the complexity
of the command line grammar which ifconfig is expected to parse, our
choices are limited, unless someone(tm) is willing to come along and
implement a full parser in ifconfig.
I investigated this some years ago and frankly didn't get anywhere, one
of the constraints was that Sam wanted to modularize the ifconfig code,
with a view to future dynamic loading -- as such, this places
restrictions on the kind of parser which can be used.
There is valid argument that we should not do this, as ifconfig is a
tool which sits in the base system, and should be kept simple and
therefore small.
On the other hand, there's also the argument that as ifconfig's syntax
has grown considerably over the years, that we should go ahead and add a
parser anyway.
In the absence of a full-blown parser, I'm comfortable with "ifconfig
<cloner> create" being a separate operation, which preferably throws an
error if other commands are included with it, and understand why these
limitations apply.
cheers
BMS
More information about the freebsd-net
mailing list