Sebastien Roy wrote:
> Cathy Zhou wrote:
>> Seb/Team,
>>
>> After I think about this more. I'd like to propose another option - to 
>> defer the creating and plumbing of aggregations later.
>>
>> Today we already defer the plumbing of the iptun to the 
>> network/initial service.
>>
>> The proposal would solve the problem caused by late running of 
>> /var/svc/profile/upgrade.
> 
> That seems fine to me.  You'll need to figure out which IP interfaces 
> are over aggregations so that you don't attempt to plumb them in 
> network/physical.  This could be done with "dladm show-aggr -P".
> 
>> It also solves another problem:
>>
>> Today device/local is the service that that iterates and attaches all 
>> the network devices (therefore we know of the existence of a new 
>> network data-link). It is especially important during a 
>> reconfiguration boot. The device/local service also runs very late, 
>> and because network/physical runs before device/local, the "dladm 
>> create-aggr -d bge0 1" command might fail because it fails to find the 
>> device bge0.
>>
>> One might ask how "ifconfig bge0 plumb" works - it works because 
>> libdlpi tries to open the /devices pseudo clone device node.
>>
>> What do you think? What's your plan for those iptun interfaces.
> 
> My plan for the iptun interfaces was to move them into network/physical, 
> but they're currently plumbed in network/initial.
> 
I thought we defer plumbing iptuns to a later time for a reason. Is that no 
longer true?

I see a problem with my proposal though. See more below.

My proposal is, the datalink configuration upgrade would still convert the 
old /etc/dladm/*.conf configuration to a series of "dladm" commands, and 
write them to /var/svc/profile/upgrade.

We'd also need to add a dependency between manifest-import service and 
network/initial service

During system boot:

1. the network-physical service runs, and it does:

        up-aggr, up-vlan, init-linkprop
        plumb physical data-links if /etc/hostname.* exists

2. the manifest-import service runs, and creates all the aggregations and 
init linkprops for system upgrade.

3. network/initial service runs, and plumb all the aggregation, VLAN, IPtun 
interfaces etc.

The problem is that how to tell the class (aggr, iptun or phys) of the link 
by its link name. In another word, we have a /etc/hostname.* file, how to 
determine when to plumb which interface? The information is not known when 
the network/physical service runs the first boot after system upgrade, 
because no <link name, linkid> mapping exist yet at that time.

We could try to plumb every one listed in /etc/hostname.*, and it does not 
matter if it fails (as it will then be plumbed later). But that would cause 
a lot of "plumb failure" warnings.

So, none of the proposals would solve all problems. Do you have better 
suggestion?

Thanks
- Cathy

Reply via email to