what is the story on if_index allocation ?

Luigi Rizzo rizzo at icir.org
Mon Apr 19 11:09:14 PDT 2004


I am a bit unclear -- how do we allocate if_index values for
network interfaces ?
I thought the strategy was allocate them sequentially, and
only reuse numbers at the top of the allocated range.
But then i see if_findindex() is quite complicated, and
seems to look for hints using resource_string_value() and
resource_find_dev() to possibly recycle old indexes below
if_index.

Can someone explain what is the goal ? Reuse a number if an
interface has the same name of a previously existing one and
the index is free ? And does it make sense, anyways, or
we could just simplify that code and just reuse the first
available entry in ifindex_table[] ?
Even the current allocation strategy does not guarantee that
indexes reflect the order of creation of interfaces, if that
is what we care about.

	cheers
	luigi


More information about the freebsd-net mailing list