Hi Po,
> > >
> > > [Po] Ya, there are operations of switchdev. You may think that to add the
> > > TSN
> > configurations ops into switchdev operations. But we need to consider the
> > end-
> > station devices and switch all in the devices or in the TSN domain. The TSN
> > domain is the devices include TSN capabilities ports, for up layer, we need
> > to
> > provide a formal interface. So tsn configure can be standalone.
> > > In this patch, we treat two kinds of ports when registering the ports,
> > > end-
> > station or switch. This may treat them in some minor differences in TSN spec
> > and drivers.
> > >
> >
> > Why are switches different than end-stations configuration wise?
>
> Minor differences but still have mentioned in spec.
>
> > I understand that you may need to support different TSN IEEE standards per
> > device, but adding support for different capabilities shouldn't affect a
> > 'common'
> > configuration path.
> > That's the actual advantage of switchdev based drivers. switches and end
> > stations will have a very similar way of confiration via iproute2/bridge/tc
> > utils.
> > Am i missing something?
> >
> I guess I start to getting your advise. Do you mean to add operations in
> struct switchdev_ops ? Is it proper include end station? I used to add
> structure tsn_ops in net_device. But I think there are some information and
> status of devices maintain in the kernel from drivers. So I create structure
> tsn_port standalone.
> Yes, iproute2/bridge/tc is one choice for user space. I would think of the
> possible. But the too many parameters are still the problem. For example to
> create Qbv gate list.
Well iproute2 is already used to configure an 802.1Qbv software scheduler which
is already merged into net-next [1].
The netdevice operations already have a callback to configure hardware
schedulers used for CBS currently [2]. We should be able to configure the
hardware (at least the basics) for 802.1Qbv, using those callbacks.
Try to include switchdev maintainers in the next RFC and have a discussion on
what's the best approach to move forward on that and how to add missing
features.
I am not really sure i have all the bits and pieces correctly, but i did make a
presentation a few months ago on this [3].
Since switchdev is creating 1 ethernet interface per switch port and provides
you with a way of configuring the switch 'cpu' port individually we should be
able to fit everything in there by extending the current API's (but i might be
missing something).
[1] Look into net/sched/sch_taprio.c for the software scheduler.
[2] .ndo_setup_tc() is the ndo callback. Look for TC_SETUP_QDISC_CBS and you'll
get the idea. I know intel i210 and TI's cpsw driver are using it.
[3] https://connect.linaro.org/resources/yvr18/sessions/yvr18-212/
/Ilias