Subject: Re: iproute2 caching and batch mode

From: Stephen Hemminger <[email-masked]>
Date: Sun, 9 Jan 2011 09:53:16 -0800

On Sat, 08 Jan 2011 22:09:39 +0200
<[email-masked]> wrote:

> Hi,
> 
> noticed some issue a while ago, and because of recent patches decided to
> post my thoughts:
> 
> This issue can happen if ip or tc running in some kind of "daemon" batch
> mode, or processing large batch file on computer where interfaces can
> reappear with same name but different index (pppoe NAS for example).
> 
> It is easy to reproduce the problem:
> 
> centaur iproute2-2.6.37 # ip/ip -force -batch -
> tunnel add test0 mode ipip remote 1.1.1.2 local 1.1.1.1
> link show dev test0
> 201: test0: <POINTOPOINT,NOARP> mtu 1480 qdisc noop state DOWN 
>     link/ipip 1.1.1.1 peer 1.1.1.2
> tunnel del test0
> Unsupported family:17
> 
> Or:
> 
> centaur iproute2-2.6.37 # ip/ip -force -batch -
> tunnel del test0
> tunnel add test0 mode ipip remote 1.1.1.2 local 1.1.1.1
> link show dev test0
> 202: test0: <POINTOPOINT,NOARP> mtu 1480 qdisc noop state DOWN 
>     link/ipip 1.1.1.1 peer 1.1.1.2
> (another console, delete and create again test0)
> link show dev test0
> (nothing will appear)
> 

This is one of the reasons caching names seems to be a bad idea.
Caching ifindex is okay because it normally does not change.

The point of batch mode was to allow complex setup scripts to
avoid the overhead of repeated invocations. Using it as a long
running daemon was not something I thought about, and frankly
seems like a bad idea for general usage.