Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 16 Oct 2013 12:54:31 -0600
From:      Alan Somers <asomers@freebsd.org>
To:        Raimundo Santos <raitech@gmail.com>
Cc:        freebsd-net@freebsd.org
Subject:   Re: ifconfig: ioctl (SIOCAIFADDR): File exists - but not only with alias command
Message-ID:  <CAOtMX2iVnT2vmXTyqgOAEm51XhzhL6M14Nf719KotN9Oamk0fg@mail.gmail.com>
In-Reply-To: <CAGQ6iC-fKZARrqQrhbswS3YGZqOfOctR9C7B6xSO43LnXh_yTw@mail.gmail.com>
References:  <CAGQ6iC-fKZARrqQrhbswS3YGZqOfOctR9C7B6xSO43LnXh_yTw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Oct 16, 2013 at 12:17 PM, Raimundo Santos <raitech@gmail.com> wrote:
> Hello list,
>
> I have a quad port Intel NIC and I am stucked on this problem: whenever I
> try to modify the address of one port of this NIC, I see from ifconfig
>
> ifconfig: ioctl (SIOCAIFADDR): File exists
>
> Here is the status of one port:
>
> # ifconfig igb1
> igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
>
> options=401bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,VLAN_HWTSO>
>         ether 00:1b:21:5a:93:31
>         inet6 fe80::21b:21ff:fe5a:9331%igb1 prefixlen 64 scopeid 0x2
>         nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
>         media: Ethernet autoselect (1000baseT <full-duplex>)
>         status: active
>
> As you can see, no inet address. Try to put an address that was used before
> in the same port of this NIC, and..
>
>
> # ifconfig igb1 XX.XX.XX.20/28
> ifconfig: ioctl (SIOCAIFADDR): File exists
>
> I have routed running with this /etc/gateways:
>
> ripv2
> if=tun0 no_rip
> if=tun1 no_rip
> if=et0 no_rip
> if=et1 no_rip
> if=igb2 no_rip
> if=igb3 no_rip
> rdisc_interval=45
> no_ag
> no_super_ag
> subnet=X.Y.Z.56/30,1
> subnet=X.Y.Z.0/29,1
> subnet=X.Y.Z.8/29,1
> subnet=X.Y.Z.16/29,1
> subnet=X.Y.Z.24/29,1
> subnet=X.Y.Z.32/29,1
> subnet=X.Y.Z.40/29,1
> subnet=X.Y.Z.48/29,1
> subnet=X.Y.Z.64/29,1
> subnet=X.Y.Z.72/29,1
> subnet=X.Y.Z.80/29,1
> subnet=X.Y.Z.88/29,1
> subnet=X.Y.Z.96/29,1
> subnet=X.Y.Z.104/29,1
> subnet=X.Y.Z.112/29,1
> subnet=X.Y.Z.120/29,1
>
> The problem occurs when configuring the primary address or an alias in any
> port, after unconfigure some other address.
>
> Using
>
> # uname -a
> FreeBSD XXX 9.1-RELEASE-p4 FreeBSD 9.1-RELEASE-p4 #10: Thu Aug  1 19:04:09
> BRT 2013     XXX:/usr/obj/usr/src/sys/XXX_KERNEL  amd64
>
> A custom system with 0 thru 15 FIBs, FWD in ipfw, and VNET/VIMAGE all
> enabled.
>
> Thank you!
> Raimundo Santos
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"

I ran into the same problem, on a system with LAGGs, multiple FIBs and
multiple aliases per interface.  I believe that the problem was due to
a race condition in the kernel.  Two process tried to SIOCAIFADDR with
the same address simultaneously.  The second one of them failed and
printed the error message that you see.  But due to the race, the
first process reported success, yet the interface did not get the
address.  Unfortunately, I was unable to locate the race.  My solution
was to prevent two processes from trying to initialize the interface
at the same time.  The first process was our custom management
software, which calls "service netif cloneup lagg0" and "service netif
start lagg0" in rapid succession.  The second process was devd, which
was trying to initialize the newly attached lagg0 interface.  I
commented out the following lines in /etc/devd.conf and the problem
went away.  I don't know if this will solve your problem, but I
recommend that you use dtrace or some other method to determine
whether two processes are trying to SIOCAIFADDR at the same time.

notify 0 {
        match "system"          "IFNET";
        match "type"            "ATTACH";
        action "/etc/pccard_ether $subsystem start";
};

-Alan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2iVnT2vmXTyqgOAEm51XhzhL6M14Nf719KotN9Oamk0fg>