Artem's Weblog

20080714 Monday July 14, 2008

New in snv_93: dladm link property persistence

I once joined a pickup basketball game and one of my teammates only noticed me after three or four possessions. Another teammate tried to be supportive and used the word "stealth" to characterize my role in the game (my own choice was "zero impact"). Story of my life.

But sometimes that's a good thing. A lot of OS improvements are like that, incremental in nature, not visible to most users, but contributing to the overall movement towards better future. Not quite the shouting from the rooftops material, but noteworthy to geeks and search engines.

Such is my recent putback, a followup to the earlier Brussels framework putback. Originally, properties set via dladm set-linkprop were not guaranteed to persist when a link was unplumbed and later replumbed. One would have to reapply the properties using the undocumented init-linkprop subcommand:

ifconfig link0 plumb
dladm init-linkprop

My putback makes it automatic. No need to reapply the properties manually anymore.

What happens under the hood is a bit more complicated. dladm shows you all links the system knows about:

# dladm show-link
LINK        CLASS    MTU    STATE    OVER
bge0        phys     1500   up       --
iprb0       phys     1500   unknown  --
iprb1       phys     1500   unknown  --

This information, along with link properties, is stored in /etc/dladm/datalink.conf. The kernel, however, only needs to know about links that are currently in use. What the kernel knows can be extracted from mdb:

# mdb -k
> *i_dls_devnet_id_hash::modhash -e | ::modent -v | ::print dls_devnet_t dd_spa
dd_spa = [ "bge0/0" ]

Generally, a link becomes in use when its corresponding device file under /dev/net is first opened. That's what happens, for instance, when you plumb the link. This is the moment the kernel learns about the link. This is also the moment a new thread is launched, which communicates with the datalink management daemon, dlmgmtd(1M). It requests the daemon to perform the equivalent of dladm init-linkprop for this new link. The daemon extracts property data from datalink.conf and pushes it into the kernel.

There are still two cases when persistence is not guaranteed: wifi links and private properties. The following CRs have been filed and are being worked on:

6691666 link property persistence for wifi drivers
6688428 dladm init-linkprop ignores private properties

(2008-07-14 12:10:57.0) Permalink

20080708 Tuesday July 08, 2008

A Wee Bit O' Celebration

It all started when a friend offered me a spare ticket to the San Francisco Opera. Being a jazz dude, I couldn't pass up the opportunity to hear something new. Last time I went to opera, I was in Moscow and Yeltsin was ruling the country. And last time I wore a sports jacket, I was 40 lbs larger, so I had to buy a new one.

Driving to SF was out of the question due to the Pride Celebration that day. Took the Caltrain. I should have taken the bus from the Caltrain station and not walk, because, as it turned out, loud disco music and uncovered genitalia do not mix well with 17th century costumes and classical singing. I had to reset my brain, the way a perfume shopper resets her nose with a whiff of coffee beans between two different fragrances.

We saw Donizetti's "Lucia di Lammermoor" and Natalie Dessay took my breath away. I had tears in my eyes, like that time I heard Billy Harper play "Priestess" live. Magical.

Celebrations continued with grilled meats and fermented drinks and climaxed with July 4th fireworks in Bellevue, WA, where I was visiting my old friends from college. It was great to see that some folks are not yet affected by the economic downturn. Redmond inhabitants are still keeping up with their Joneses, not letting them have bigger TVs, longer camera lenses, etc. And hey, after a few beers, I, too, felt like there was no tomorrow.

(2008-07-08 10:24:48.0) Permalink


archives
links
referers