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