OpenSolaris

Discussions Communities Projects Download Source Browser

Home » OpenSolaris Forums » networking » discuss

Thread: Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)

Welcome, Guest Help
Login Login
Guest Settings Guest Settings
Reply to this Thread Reply to this Thread Search Forum Search Forum Back to Thread List Back to Thread List

Permlink Replies: 6 - Last Post: Jan 26, 2006 9:04 AM by: nordmark
yun

Posts: 766
From: US

Registered: 6/14/05
Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)
Posted: Dec 23, 2005 1:26 AM

  Click to reply to this thread Reply

This is a reminder that this design review is still ongoing. Also, I am
extending this design review to Jan. 5, 2006. As before, the document is
available here:

http://opensolaris.org/os/community/networking/uv-design.pdf

Thanks
- Cathy
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



nordmark

Posts: 619
From: US

Registered: 3/9/05
Re: Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)
Posted: Jan 20, 2006 4:36 PM   in response to: yun

  Click to reply to this thread Reply

Erik Nordmark wrote:
> Cathy Zhou wrote:
>> This is a reminder that this design review is still ongoing. Also, I
>> am extending this design review to Jan. 5, 2006. As before, the
>> document is available here:
>>
>> http://opensolaris.org/os/community/networking/uv-design.pdf

A few late comments and questions.

Overall the document is quite good and quite clear, but I think it is
hard to find a good order in which to explain things due to the
interdependencies. I had several questions that came up while I was
reading that were answered before I got to the end of the document.
(I've suggested on how to address some of that in down below.)

High-level
----------

The legacy support seems to assume that everything that is DDI_NT_NET is
a DLPI provider. At least in the past there has been random stuff
labeled as DDI_NT_NET (I forgot what it was; but ifconfig -a plumb tried
to use some strange device in the past). It might make sense to verify
(with a DL_INFO_REQ) that the device is a DLPI provider before softmac
is applied to the device.

Is the intent that the PPP devices (sppp0 etc) appear under softmac?

Vanity naming in combination with VLANs might cause some potential
confusion with snoop. Today if I snoop on bge0 I untagged packets as
well as all tagged packets. But if I snoop a VLAN (bge1000), I only see
packets with that VLAN tag. With vanity naming we'll have the ability to
name bge1000 as net1, and later change things so that bge0 is named
net1. Unless we do something, a side effect of such a change is that the
packets one can see with snoop changes. This might be confusing to
administrators, and a security issue if we decide it is safe for
somebody to snoop on net1 that shouldn't be allowed to see packets with
any VLAN tag. But I don't know 1) how critical this issue is, and 2) a
way to fix it without introducing a lot more complexity.

Has the designed considered diskless boot? I recall some dependency on
user level setup to do some operations, but that wouldn't be present in
the diskless boot case. (The case I saw was in section 6.2.5 where there
is a door upcall to devfsadmd; not clear what would happen early during
diskless boot and there is no devfsadmd running.)


The APIs in section 7.2.5 explicitly expose that M_CTL messages are used
to carry IPsec information. I think we want to retain the flexibility to
change the way the IPsec information is carried to a NIC, so I would
recommend that the APIs be changed so that the da_ipsec_t is carried as
a separate argument to the send and receive functions. This adds a bit
of extra overhead in softmac, since it needs to convert between this
extra argument and the pre-pended M_CTL, but it means that GLDv3 drivers
with IPsec acceleration don't constrain our ability to replace the M_CTL
hack down the road. (For example, adding a m_tx_ipsec() function that
takes a dl_ipsec_t as an extra argument, and similarly on the receive side.)

A thing that isn't changed in this project, but where this project might
be a good opportunity to improve things, is the mapping from names like
ce17, bge17, and net0 to the actual NIC and port on the system.
With DLPI style2 devices it is hard to find this mapping, since /dev/ce
is just a pointer to a pseudo node. With DLPI style 1 devices there is a
bit more of a hint, because /dev/bge0 is a symlink to a /devices path
which describe the bus on which the device appears.
With Vanity naming, will any of that be easier or harder?
If I know I'm using link name net1, then I can find the device name
using dladm. And then can I use 'ls -l /dev/<devicename> to see the
physical path name?

Page 38 talks pf disabling the send-side loopback mechanism when using
softmac. An other approach which has been used for similar purposes in
the past, is to define a new b_flag value (MSGLOOP) which is set by
softmac on transmit and checked by softmac on receipt. Since both
copymsg and dupmsg preserve b_flag this would be in indication of a
message looped back by software in the DLPI driver. The scheme suggested
in the document (filtering based on the source MAC address) is both a
performance issue and disables some aspects of IPv6 Duplicate Address
Detection.

Minor:
------

In section 3.1.4, does the order between the cfgadm -c configure PCI8,
and dladm rename-link ce0 net0, matter?

Is there an assumption that when the ce0 replaces bge0, that the system
automatically propagate information to the new one? By this I mean the
fact that the users of net0 might have joined some set of multicast
groups, others might have the device in promiscuous mode, and we might
have IPsec state in the driver.

Table 1 shows N/A for Generic VLAN support on top of VLAN. Is this an
implementation constraint or an architectural constraint? The reason I'm
asking is that there are proposal for Q-in-Q encapsulations (Ethernet
packets with multiple VLAN headers in them). I don't know if Solaris
would ever be directly connected to such a thing, but it might make
sense to not have an architectural limitations preventing us to add
support for this should it become needed in the future.

Section 4.1.1. Is there some option to show-link -s that, akin to
'netstat -i 10', would show delta values for the counters?

Section 4.3.4 autopush. It isn't clear from the document whether this is
"just" a way to specify autopush using a link name, but that it
otherwise has all the limitations of autopush. For instance, a user
could reasonably ask whether autopush would apply to a currently used
link name, or what it would take for the new autopush configuration to
be applied. I'm assuming one would need to do an ifconfig unplumb and
ifconfig plumb for the new information to be applied. If that's the
case, would it make sense for autopush -m to fail if the link name is in
use?

Page 20 footnote. Will CR 6292043 be fixed as part of this project?
Is it a requirement that it be fixed before this project integrates?

Page 22 interrupt coalescing. What timer granularity do you need to do
effective coalescing? Normally the devices have microsecond timers for
this, which can't (effectively) be done in software. So it isn't clear
to me that coalescing makes much sense in software. Polling mode support
might make sense, because it doesn't have a need for a fine grain timer.

Page 22 kstats for softmac. If softmac is going to prefix "net/" to the
kstat names, wouldn't it be simpler to apply this to the GLD kstat names
overall? With the specified approach any application that wants to look
at the standard kstats would need to be aware of softmac so that the
application can prefix "net/". Or is the intent that applications see
the kstats from the legacy driver?

Page 23 autopush backward compatibility.
The section ends with an assumption that autopushed modules not walk
q_next upstream to look for IP. Do we know if this is true for common
modules like vpnmod and fw-1?

Section 6.1.4: DL_CAPAB_UNBOUNDED_PKT
The frame size isn't really unbounded, so a more accurate name might
make more sense.

Section 6.2.2. In the new devfsadmd support, is there an implication
that there is a new persistent devfs repository for <link name, linkid>,
or will this use some existing repository (like path_to_inst)?

Section 6.2.4 last paragraph says that "administrators will run dladm
create-vlan -l net0". But is this the case even if a VLAN was explicitly
created before the rename? For example, if the administrator does
dladm create-vlan -l bge0 -v 23 net12
dladm rename-link -l bge0 foo3
does the administrator have to do something to (re)create net12, or does
net12's existence survive the rename?

Section 6.3.1 talks about how softmac generates devices. But it doesn't
fully specify how different legacy devices are handled. In terms of
presence in /dev, we have at least 3 different types of legacy drivers:
1. Those that only do style 2, hence have only a /dev/foo which is a
like to a pseudo entry in /devices
2. Those that support both style 1 and style 2, with a /dev/foo as well
as /dev/foo<N>.
3. Those that only support style 1. (I haven't see any such devices, but
I haven't looked for them either).
In particular, for #1, I don't see how softmac would know what instances
exist, since there is only a pseudo node. How would softmac know to
create /dev/net/ce0 and /dev/net/ce1 when two ce cards are in the system?

Section 6.3.2 talks about the need to support DL_ADDR_REQ etc. I didn't
think Sun Trunking was using that set of primitives. (They were added to
dlpi.h with the intent of folding IPMP and link aggregation together,
but that folding was never completed.) It makes sense to check the Sun
Trunking code whether it uses these primitives, or drop the paragraph
from the document.

Section 7.1.4 talks about transforming an M_MULTIDATA message into an
M_DATA message. It isn't clear to me that this provides much performance
benefits if any. Wouldn't it make more sense to add some m_multitx()
function by which multiple packets can be passed to the mac driver in
one call? That way the mac driver can use a single or a few ddi_dma
calls for the multiple packets.


Editorial:
---------

Page 3 says "all link configuration and kernel data structures will be
updated to refer to linkids". I assuming you are not updating IP, ipf,
etc, but that this change is limited to the GLD layers. Same issue in
first paragraph in section 6.2.2.

In section 3.1.7, which is the first time you talk about /dev and
/dev/net, it would be quite useful if you could explain what NICs appear
where (legacy using softmac, vanity names, VLANs). I found that
information much later in the document.

Also in section 3.1.7, it would be helpful if you stated the persistence
of the VLAN PPA hack names. Does ls show them in the directory? Do the
disappear after an ifconfig unplumb? (I think I found that information
later in the document as well.)

Section 6.1.3. When I read this it wasn't clear whether softmac would
replace the /dev/ce, or whether it was left in place. (The question was
answered as I read deeper into the document.)

Section 6.2.2 link configuration file.
I think it makes sense to state in the design document that this file
are not for editing, and the administrator must use dladm to manipulate
the content.

Section 6.2.3 starts with "In the future". When do we expect this future
to arrive? If it is part of this project it makes sense to explicitly
state so. Same wording appears in section 6.2.5, 6.2.6, 6.2.7,

Erik
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



meem

Posts: 3,045
From: US

Registered: 3/9/05
Re: Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)
Posted: Jan 21, 2006 7:41 PM   in response to: nordmark

  Click to reply to this thread Reply


> Table 1 shows N/A for Generic VLAN support on top of VLAN. Is this an
> implementation constraint or an architectural constraint? The reason I'm
> asking is that there are proposal for Q-in-Q encapsulations (Ethernet
> packets with multiple VLAN headers in them). I don't know if Solaris
> would ever be directly connected to such a thing, but it might make
> sense to not have an architectural limitations preventing us to add
> support for this should it become needed in the future.

Cathy can speak to the specifics of this with Vanity Naming, but
administratively, this consideration is one of the main reasons we chose
to model VLANs as links -- the proposed model requires no changes to
create-vlan to dladm to support VLANs over VLANs.

--
meem
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



yun

Posts: 766
From: US

Registered: 6/14/05
Re: Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)
Posted: Jan 23, 2006 1:36 AM   in response to: nordmark

  Click to reply to this thread Reply

Erik,

Thank you very much for your comments. I will respond most of your
questions below, another few quesitons later after I do more investigation.

> The legacy support seems to assume that everything that is DDI_NT_NET is
> a DLPI provider. At least in the past there has been random stuff
> labeled as DDI_NT_NET (I forgot what it was; but ifconfig -a plumb tried
> to use some strange device in the past). It might make sense to verify
> (with a DL_INFO_REQ) that the device is a DLPI provider before softmac
> is applied to the device.
>
Sure. Issuing DL_INFO_REQ is already part of the softmac reigsteration
process, by which we get the MAC address, SDU size etc.

> Vanity naming in combination with VLANs might cause some potential
> confusion with snoop. Today if I snoop on bge0 I untagged packets as
> well as all tagged packets. But if I snoop a VLAN (bge1000), I only see
> packets with that VLAN tag. With vanity naming we'll have the ability to
> name bge1000 as net1, and later change things so that bge0 is named
> net1.

But this would need renaming the net1(bge1000) to another name first
because the system won't allow two links have the conflicting link
names. And this renaming operation needs to stop the snooping. "The
rename will fail if the link is currently in use."

> Unless we do something, a side effect of such a change is that the
> packets one can see with snoop changes.

As mentioned above, it is not possible that one can see the packets on
one link and then on another link, by using the same one snoop instance.

> This might be confusing to
> administrators, and a security issue if we decide it is safe for
> somebody to snoop on net1 that shouldn't be allowed to see packets with
> any VLAN tag. But I don't know 1) how critical this issue is, and 2) a
> way to fix it without introducing a lot more complexity.
>
> The APIs in section 7.2.5 explicitly expose that M_CTL messages are used
> to carry IPsec information. I think we want to retain the flexibility to
> change the way the IPsec information is carried to a NIC, so I would
> recommend that the APIs be changed so that the da_ipsec_t is carried as
> a separate argument to the send and receive functions. This adds a bit
> of extra overhead in softmac, since it needs to convert between this
> extra argument and the pre-pended M_CTL, but it means that GLDv3 drivers
> with IPsec acceleration don't constrain our ability to replace the M_CTL
> hack down the road. (For example, adding a m_tx_ipsec() function that
> takes a dl_ipsec_t as an extra argument, and similarly on the receive
> side.)
>
You mean on both receive-side and transmit-side, right? Sure.

> A thing that isn't changed in this project, but where this project might
> be a good opportunity to improve things, is the mapping from names like
> ce17, bge17, and net0 to the actual NIC and port on the system.
> With DLPI style2 devices it is hard to find this mapping, since /dev/ce
> is just a pointer to a pseudo node. With DLPI style 1 devices there is a
> bit more of a hint, because /dev/bge0 is a symlink to a /devices path
> which describe the bus on which the device appears.
> With Vanity naming, will any of that be easier or harder?
> If I know I'm using link name net1, then I can find the device name
> using dladm.

Yes.

> And then can I use 'ls -l /dev/<devicename> to see the
> physical path name?

No. Vanity naming compoment will not change anything under the /dev
namespace, therefore, for those devices only create DLPI style 2 device
nodes, there will be no /dev/<devicename> node. "ls -l
/dev/net/linkname" will not help either, as it only displays the "dev_t"
of the device with which the application can access the specified link.
For exmaple, ls /dev/net nodes of legacy devices will only displays the
corresponding softmac node.

>
> Page 38 talks pf disabling the send-side loopback mechanism when using
> softmac. An other approach which has been used for similar purposes in
> the past, is to define a new b_flag value (MSGLOOP) which is set by
> softmac on transmit and checked by softmac on receipt. Since both
> copymsg and dupmsg preserve b_flag this would be in indication of a
> message looped back by software in the DLPI driver. The scheme suggested
> in the document (filtering based on the source MAC address) is both a
> performance issue and disables some aspects of IPv6 Duplicate Address
> Detection.
>
Great suggestion, thank you!

> Minor:
> ------
>
> In section 3.1.4, does the order between the cfgadm -c configure PCI8,
> and dladm rename-link ce0 net0, matter?
>
It doesn't matter. Both order will work.

> Is there an assumption that when the ce0 replaces bge0, that the system
> automatically propagate information to the new one? By this I mean the
> fact that the users of net0 might have joined some set of multicast
> groups, others might have the device in promiscuous mode, and we might
> have IPsec state in the driver.

But by the time when ce0 replaces bge0, the hardware of net0 ((bge0
card) is already disconnected from the system. Therefore, the problem
you mentioned is not a issue.

>
> Table 1 shows N/A for Generic VLAN support on top of VLAN. Is this an
> implementation constraint or an architectural constraint? The reason I'm
> asking is that there are proposal for Q-in-Q encapsulations (Ethernet
> packets with multiple VLAN headers in them). I don't know if Solaris
> would ever be directly connected to such a thing, but it might make
> sense to not have an architectural limitations preventing us to add
> support for this should it become needed in the future.
>
Meem already answered this. Yes, architecturally, VLAN over VLAN will
fit into this proposed model.

> Section 4.1.1. Is there some option to show-link -s that, akin to
> 'netstat -i 10', would show delta values for the counters?

Although it was not planned, I think it is a reasonable suggestion.

>
> Section 4.3.4 autopush. It isn't clear from the document whether this is
> "just" a way to specify autopush using a link name, but that it
> otherwise has all the limitations of autopush. For instance, a user
> could reasonably ask whether autopush would apply to a currently used
> link name, or what it would take for the new autopush configuration to
> be applied. I'm assuming one would need to do an ifconfig unplumb and
> ifconfig plumb for the new information to be applied.

That is correct.

> If that's the
> case, would it make sense for autopush -m to fail if the link name is in
> use?

Actually, the dladm autopush subcommand is intentionally designed to
work the same way as autopush(1M) as I think administrators might want a
similiar administrative experience. That is, the autopush -m subcommand
will succeed if the link is in use, or even the specified link doesn't
exist.

>
> Page 20 footnote. Will CR 6292043 be fixed as part of this project?
> Is it a requirement that it be fixed before this project integrates?
>
Yes.

> Page 22 kstats for softmac. If softmac is going to prefix "net/" to the
> kstat names, wouldn't it be simpler to apply this to the GLD kstat names
> overall? With the specified approach any application that wants to look
> at the standard kstats would need to be aware of softmac so that the
> application can prefix "net/". Or is the intent that applications see
> the kstats from the legacy driver?
>
Yes. The kstat names will be prefixed with "net" for all links. I will
update the document to make it clear.

> Page 23 autopush backward compatibility.
> The section ends with an assumption that autopushed modules not walk
> q_next upstream to look for IP. Do we know if this is true for common
> modules like vpnmod and fw-1?
>
Because we neither have the vpnmod code, nor know their contact, we
don't really know. But we did check the Checkpoint person and their
implementation doesn't have such behavior.

>
> Section 6.2.2. In the new devfsadmd support, is there an implication
> that there is a new persistent devfs repository for <link name, linkid>,
> or will this use some existing repository (like path_to_inst)?
>
In the current design, this <link name, linkid> mapping information will
be in the /etc/datelink.conf file.

> Section 6.2.4 last paragraph says that "administrators will run dladm
> create-vlan -l net0". But is this the case even if a VLAN was explicitly
> created before the rename? For example, if the administrator does
> dladm create-vlan -l bge0 -v 23 net12
> dladm rename-link -l bge0 foo3
> does the administrator have to do something to (re)create net12, or does
> net12's existence survive the rename?

net12 will survive the rename. It is stated in page 31:

"Note that VLANs and aggregations associated with the renamed link are
created over the link's corresponding MAC in the kernel, and their
persistent link configuration will only refer to the linkid, which will
never change. Therefore, the rename operation will not affect the
traffic over the relevant VLANs or aggregations, nor their persistent
link configuration."

>
> Section 6.3.1 talks about how softmac generates devices. But it doesn't
> fully specify how different legacy devices are handled. In terms of
> presence in /dev, we have at least 3 different types of legacy drivers:
> 1. Those that only do style 2, hence have only a /dev/foo which is a
> like to a pseudo entry in /devices
> 2. Those that support both style 1 and style 2, with a /dev/foo as well
> as /dev/foo<N>.
> 3. Those that only support style 1. (I haven't see any such devices, but
> I haven't looked for them either).
> In particular, for #1, I don't see how softmac would know what instances
> exist, since there is only a pseudo node. How would softmac know to
> create /dev/net/ce0 and /dev/net/ce1 when two ce cards are in the system?
>
One of the input parameters of the device's postattach function is
dacf_infohdl_t, which carries the device's "dip" information. So it
doesn't matter whether the device only has style-1 or style 2, or both
node.

> Section 6.3.2 talks about the need to support DL_ADDR_REQ etc. I didn't
> think Sun Trunking was using that set of primitives. (They were added to
> dlpi.h with the intent of folding IPMP and link aggregation together,
> but that folding was never completed.) It makes sense to check the Sun
> Trunking code whether it uses these primitives, or drop the paragraph
> from the document.

It is DL_AGGR_REQ. It is in the Sun Trunking code.

>
> Section 7.1.4 talks about transforming an M_MULTIDATA message into an
> M_DATA message. It isn't clear to me that this provides much
> performance benefits if any. Wouldn't it make more sense to add some
> m_multitx() function by which multiple packets can be passed to the
> mac driver in one call? That way the mac driver can use a single or a
> few ddi_dma calls for the multiple packets.
>
Good suggestion. But for legacy drivers which cannot support
M_MULTIDATA, softmac still needs to transform M_MULTIDATA messages into
M_DATA messages, and there are already several Nemo drivers who don't
understand M_MULTIDATA message format. What we can do is that the GLDv3
framework can first check whether m_multitx() function is non-NULL for
the MAC being registered, if yes, calls the m_multitx() function,
otherwise, does the transforming and calls m_tx().

>
> Editorial:
> ---------
>
> Page 3 says "all link configuration and kernel data structures will be
> updated to refer to linkids". I assuming you are not updating IP, ipf,
> etc, but that this change is limited to the GLD layers. Same issue in
> first paragraph in section 6.2.2.
>
Will fix.

> In section 3.1.7, which is the first time you talk about /dev and
> /dev/net, it would be quite useful if you could explain what NICs appear
> where (legacy using softmac, vanity names, VLANs). I found that
> information much later in the document.
>
> Also in section 3.1.7, it would be helpful if you stated the persistence
> of the VLAN PPA hack names. Does ls show them in the directory? Do the
> disappear after an ifconfig unplumb? (I think I found that information
> later in the document as well.)
>
> Section 6.1.3. When I read this it wasn't clear whether softmac would
> replace the /dev/ce, or whether it was left in place. (The question was
> answered as I read deeper into the document.)
>
Will see what I can do.

> Section 6.2.2 link configuration file.
> I think it makes sense to state in the design document that this file
> are not for editing, and the administrator must use dladm to manipulate
> the content.

Will do.

>
> Section 6.2.3 starts with "In the future". When do we expect this future
> to arrive? If it is part of this project it makes sense to explicitly
> state so. Same wording appears in section 6.2.5, 6.2.6, 6.2.7,
>
Accepted.

Thanks again for your comments. And again, I will address several
questions left out in this mail later.

Thanks
- Cathy
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



nordmark

Posts: 619
From: US

Registered: 3/9/05
Re: Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)
Posted: Jan 23, 2006 5:56 PM   in response to: yun

  Click to reply to this thread Reply

Cathy Zhou wrote:

> But this would need renaming the net1(bge1000) to another name first
> because the system won't allow two links have the conflicting link
> names. And this renaming operation needs to stop the snooping. "The
> rename will fail if the link is currently in use."

I wasn't concerned about snoop being active when the rename happens.
I was concerned about the case when you have a user with the privilege
to snoop that is told to that "his" interface to check is called "net1"
and an administrator that changes what net1 is.

Next day when the user comes in and continues to use snoop to debug/tune
their application, the snoop output is different than it was the day before.

>> The APIs in section 7.2.5 explicitly expose that M_CTL messages are used
>> to carry IPsec information. I think we want to retain the flexibility to
>> change the way the IPsec information is carried to a NIC, so I would
>> recommend that the APIs be changed so that the da_ipsec_t is carried as
>> a separate argument to the send and receive functions. This adds a bit
>> of extra overhead in softmac, since it needs to convert between this
>> extra argument and the pre-pended M_CTL, but it means that GLDv3 drivers
>> with IPsec acceleration don't constrain our ability to replace the M_CTL
>> hack down the road. (For example, adding a m_tx_ipsec() function that
>> takes a dl_ipsec_t as an extra argument, and similarly on the receive
>> side.)
>>
> You mean on both receive-side and transmit-side, right? Sure.

Yes.

>> If I know I'm using link name net1, then I can find the device name
>> using dladm.
>
> Yes.
>
>> And then can I use 'ls -l /dev/<devicename> to see the
>> physical path name?
>
> No. Vanity naming compoment will not change anything under the /dev
> namespace, therefore, for those devices only create DLPI style 2 device
> nodes, there will be no /dev/<devicename> node. "ls -l
> /dev/net/linkname" will not help either, as it only displays the "dev_t"
> of the device with which the application can access the specified link.
> For exmaple, ls /dev/net nodes of legacy devices will only displays the
> corresponding softmac node.

So once I've used dladm to discover that link name "net1" has a device
name of bge17, can I use the existing techniques to map "bge17" to a
physical path name? E.g., today I can use
ls -l /dev/bge17
to find the physical path name in /devices/


>> In section 3.1.4, does the order between the cfgadm -c configure PCI8,
>> and dladm rename-link ce0 net0, matter?
>>
> It doesn't matter. Both order will work.

Good.
It probably makes sense to state that in the document.

>> Is there an assumption that when the ce0 replaces bge0, that the system
>> automatically propagate information to the new one? By this I mean the
>> fact that the users of net0 might have joined some set of multicast
>> groups, others might have the device in promiscuous mode, and we might
>> have IPsec state in the driver.
>
> But by the time when ce0 replaces bge0, the hardware of net0 ((bge0
> card) is already disconnected from the system. Therefore, the problem
> you mentioned is not a issue.

So the underlying assumption is that before the replacement, something
has quiesced the use of bge0? That is, something has done an ifconfig
net0 unplumb?


>> Section 4.3.4 autopush. It isn't clear from the document whether this is
>> "just" a way to specify autopush using a link name, but that it
>> otherwise has all the limitations of autopush. For instance, a user
>> could reasonably ask whether autopush would apply to a currently used
>> link name, or what it would take for the new autopush configuration to
>> be applied. I'm assuming one would need to do an ifconfig unplumb and
>> ifconfig plumb for the new information to be applied.
>
> That is correct.
>
>> If that's the
>> case, would it make sense for autopush -m to fail if the link name is in
>> use?
>
> Actually, the dladm autopush subcommand is intentionally designed to
> work the same way as autopush(1M) as I think administrators might want a
> similiar administrative experience. That is, the autopush -m subcommand
> will succeed if the link is in use, or even the specified link doesn't
> exist.

It probably makes sense to be very explicit about these limitations in
the design document, so that it will be explicit in the user documentation.
Even if it is the same limitations that autopush(1m) has, dladm adds
credibility to the use of autopush, hence a new set of adminstrators
might start using dladm autopush and be surprised by the limitations.

>> Section 6.2.4 last paragraph says that "administrators will run dladm
>> create-vlan -l net0". But is this the case even if a VLAN was explicitly
>> created before the rename? For example, if the administrator does
>> dladm create-vlan -l bge0 -v 23 net12
>> dladm rename-link -l bge0 foo3
>> does the administrator have to do something to (re)create net12, or does
>> net12's existence survive the rename?
>
> net12 will survive the rename. It is stated in page 31:
>
> "Note that VLANs and aggregations associated with the renamed link are
> created over the link's corresponding MAC in the kernel, and their
> persistent link configuration will only refer to the linkid, which will
> never change. Therefore, the rename operation will not affect the
> traffic over the relevant VLANs or aggregations, nor their persistent
> link configuration."

It might make sense to say something about that in 6.2.4 as well. E.g.
adding "but a VLAN created before the rename will not be affected by the
rename operation".

>> Section 6.3.1 talks about how softmac generates devices. But it doesn't
>> fully specify how different legacy devices are handled. In terms of
>> presence in /dev, we have at least 3 different types of legacy drivers:
>> 1. Those that only do style 2, hence have only a /dev/foo which is a
>> like to a pseudo entry in /devices
>> 2. Those that support both style 1 and style 2, with a /dev/foo as well
>> as /dev/foo<N>.
>> 3. Those that only support style 1. (I haven't see any such devices, but
>> I haven't looked for them either).
>> In particular, for #1, I don't see how softmac would know what instances
>> exist, since there is only a pseudo node. How would softmac know to
>> create /dev/net/ce0 and /dev/net/ce1 when two ce cards are in the system?
>>
> One of the input parameters of the device's postattach function is
> dacf_infohdl_t, which carries the device's "dip" information. So it
> doesn't matter whether the device only has style-1 or style 2, or both
> node.

ok

> Good suggestion. But for legacy drivers which cannot support
> M_MULTIDATA, softmac still needs to transform M_MULTIDATA messages into
> M_DATA messages, and there are already several Nemo drivers who don't
> understand M_MULTIDATA message format. What we can do is that the GLDv3
> framework can first check whether m_multitx() function is non-NULL for
> the MAC being registered, if yes, calls the m_multitx() function,
> otherwise, does the transforming and calls m_tx().

Makes sense.
I assume that with DLPI drivers there is also a way (DL_CAPABILITY_REQ?)
that softmac can tell whether the driver support M_MULTIDATA.

Erik


_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



yun

Posts: 766
From: US

Registered: 6/14/05
Re: Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)
Posted: Jan 24, 2006 1:42 AM   in response to: nordmark

  Click to reply to this thread Reply

Erik Nordmark wrote:

> I wasn't concerned about snoop being active when the rename happens.
> I was concerned about the case when you have a user with the privilege
> to snoop that is told to that "his" interface to check is called "net1"
> and an administrator that changes what net1 is.
>
> Next day when the user comes in and continues to use snoop to debug/tune
> their application, the snoop output is different than it was the day
> before.
>
I see. I am not sure about how priviledges works in this case. I would
think the user will not be given certain authorities to snoop certain
interfaces based on the interface names, but based on the characteristic
of the interfaces (for example, VLAN interfaces, interfaces of certain
zones etc.).

>> No. Vanity naming compoment will not change anything under the /dev
>> namespace, therefore, for those devices only create DLPI style 2
>> device nodes, there will be no /dev/<devicename> node. "ls -l
>> /dev/net/linkname" will not help either, as it only displays the
>> "dev_t" of the device with which the application can access the
>> specified link. For exmaple, ls /dev/net nodes of legacy devices will
>> only displays the corresponding softmac node.
>
>
> So once I've used dladm to discover that link name "net1" has a device
> name of bge17, can I use the existing techniques to map "bge17" to a
> physical path name? E.g., today I can use
> ls -l /dev/bge17
> to find the physical path name in /devices/
>
Still, it depends on whether what style of nodes bge driver creates, if
it creates style-1 nodes, yes. Otherwise, it is the same as today.

>> It doesn't matter. Both order will work.
>
>
> Good.
> It probably makes sense to state that in the document.
>
Okay.

>>> Is there an assumption that when the ce0 replaces bge0, that the system
>>> automatically propagate information to the new one? By this I mean the
>>> fact that the users of net0 might have joined some set of multicast
>>> groups, others might have the device in promiscuous mode, and we might
>>> have IPsec state in the driver.
>>
>>
>> But by the time when ce0 replaces bge0, the hardware of net0 ((bge0
>> card) is already disconnected from the system. Therefore, the problem
>> you mentioned is not a issue.
>
>
> So the underlying assumption is that before the replacement, something
> has quiesced the use of bge0? That is, something has done an ifconfig
> net0 unplumb?
>
Yes, net0 should already be unplumbed as the result of the DR disconnect
operation. This works the same as today.

>>
>> Actually, the dladm autopush subcommand is intentionally designed to
>> work the same way as autopush(1M) as I think administrators might
>> want a similiar administrative experience. That is, the autopush -m
>> subcommand will succeed if the link is in use, or even the specified
>> link doesn't exist.
>
>
> It probably makes sense to be very explicit about these limitations in
> the design document, so that it will be explicit in the user
> documentation.
> Even if it is the same limitations that autopush(1m) has, dladm adds
> credibility to the use of autopush, hence a new set of adminstrators
> might start using dladm autopush and be surprised by the limitations.
>
Sure.

>> net12 will survive the rename. It is stated in page 31:
>>
>> "Note that VLANs and aggregations associated with the renamed link
>> are created over the link's corresponding MAC in the kernel, and
>> their persistent link configuration will only refer to the linkid,
>> which will never change. Therefore, the rename operation will not
>> affect the traffic over the relevant VLANs or aggregations, nor their
>> persistent link configuration."
>
>
> It might make sense to say something about that in 6.2.4 as well. E.g.
> adding "but a VLAN created before the rename will not be affected by
> the rename operation".
>
Okay.

>> Good suggestion. But for legacy drivers which cannot support
>> M_MULTIDATA, softmac still needs to transform M_MULTIDATA messages
>> into M_DATA messages, and there are already several Nemo drivers who
>> don't understand M_MULTIDATA message format. What we can do is that
>> the GLDv3 framework can first check whether m_multitx() function is
>> non-NULL for the MAC being registered, if yes, calls the m_multitx()
>> function, otherwise, does the transforming and calls m_tx().
>
>
> Makes sense.
> I assume that with DLPI drivers there is also a way
> (DL_CAPABILITY_REQ?) that softmac can tell whether the driver support
> M_MULTIDATA.
>
Yes, exactly.

Thanks
- Cathy

_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org



nordmark

Posts: 619
From: US

Registered: 3/9/05
Re: Clearview Vanity Naming and Nemo Unification design review (extended to Jan/5/2006)
Posted: Jan 26, 2006 9:04 AM   in response to: yun

  Click to reply to this thread Reply

Cathy Zhou wrote:

> I see. I am not sure about how priviledges works in this case. I would
> think the user will not be given certain authorities to snoop certain
> interfaces based on the interface names, but based on the characteristic
> of the interfaces (for example, VLAN interfaces, interfaces of certain
> zones etc.).

Yes.

But my point is that vanity naming provides the tool by which we can
replace ce1003 with bge5 transparently to those higher layers.
Thus the fact that bge5 has different behavior with respect to snoop
*might* be an issue.

But as I said before, I'm not convinced the issue is critical especially
since I don't know a low-complexity solution by which we can make a
distinction between snooping on the *mac* called bge5 (which shows
everything on the wire - all VLAN tags) and the link (at least I think
this corresponds to the link) called bge5, which is the abstraction that
only shows untagged frames.

>> So once I've used dladm to discover that link name "net1" has a device
>> name of bge17, can I use the existing techniques to map "bge17" to a
>> physical path name? E.g., today I can use
>> ls -l /dev/bge17
>> to find the physical path name in /devices/
>>
> Still, it depends on whether what style of nodes bge driver creates, if
> it creates style-1 nodes, yes. Otherwise, it is the same as today.

OK

Erik
_______________________________________________
networking-discuss mailing list
networking-discuss at opensolaris dot org






Terms of Use | Privacy | Trademarks | Copyright Policy | Site Guidelines
Your use of this web site or any of its content or software indicates your agreement to be bound by these Terms of Use.
Copyright © 1995-2005 Sun Microsystems, Inc.