Thread (6 messages) flat view 6 messages, 3 authors, 2013-09-25

Re: SMSC 9303 support

From: Florian Fainelli <f.fainelli@gmail.com>
Date: 2013-09-24 18:30:33

Hello,

2013/9/24 Gary Thomas [off-list ref]:
On 2013-09-24 10:51, Ben Hutchings wrote:
quoted
On Tue, 2013-09-24 at 06:21 -0600, Gary Thomas wrote:
quoted
I need to support the SMSC9303 in an embedded system.  I'm not
finding any [explicit] support for this device in the latest
mainline kernel.  Did I miss something?

To be clear, the SMSC9303 is a 3-port managed ethernet switch
capable of supporting 802.1D/802.1Q directly. This switch is
driven by a single MAC via MII/RMII and exposes the other two
ports via physical PHYs.  What I need it to do is behave like
two external, separate devices.  I was thinking that what I need
to do is treat these as VLAN devices since the switch can manage
the routing.

Does this seem like a reasonable approach?

Linux has 'DSA' (Distributed Switch Architecture) which supports tagging
of packets to indicate which switch port they are sent or received
through.  This was originally added to support some Marvell switch chips
and I don't know whether it would be suitable or extensible for this
one.

I've used the DSA stuff for years (worked directly with the Marvell folks
when it was being developed).  It might work for this device, I'll think
some more about using it although I was hoping for a lighter weight
solution.
I do not think DSA is suitable for pure 802.1q switches such as this
one. OpenWrt has an out of tree patch which adds some switch-specific
operations that can be controlled over netlink (currently trying to
get them in a shape where they can be submitted for mainline
inclusion) [1], which I think is much more suitable than DSA or any
other proprietary switch tagging mechanism.

[1]: https://dev.openwrt.org/browser/trunk/target/linux/generic/files/drivers/net/phy/swconfig.c
-- 
Florian
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help