[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20190408085337.slcnajkgxjq4twkh@wunner.de>
Date: Mon, 8 Apr 2019 10:53:37 +0200
From: Lukas Wunner <lukas@...ner.de>
To: Mika Westerberg <mika.westerberg@...ux.intel.com>
Cc: linux-kernel@...r.kernel.org,
Michael Jamet <michael.jamet@...el.com>,
Yehezkel Bernat <YehezkelShB@...il.com>,
Andreas Noever <andreas.noever@...il.com>,
Andy Shevchenko <andriy.shevchenko@...ux.intel.com>,
Christian Kellner <ckellner@...hat.com>,
Mario.Limonciello@...l.com
Subject: Re: [PATCH v3 19/36] thunderbolt: Extend tunnel creation to more
than 2 adjacent switches
On Mon, Apr 08, 2019 at 10:35:17AM +0300, Mika Westerberg wrote:
> On Sun, Apr 07, 2019 at 06:54:25PM +0200, Lukas Wunner wrote:
> > According to the code comment in struct tb_regs_hop (in tb_regs.h),
> > the out_hopid ("next_hop" in struct tb_regs_hop) denotes the
> > "hop to take after sending the packet through out_port (on the
> > incoming port of the next switch)".
> >
> > So intuitively, the hop config space is like a routing table and
> > the entry in in_port's hop config space specifies through which
> > out_port the packets shall be routed, and which entry to look up
> > on the remote port reachable through out_port.
> >
> > This means that the out_hopid must always be identical to the in_hopid
> > of out_port->remote. Otherwise the routing wouldn't work.
> >
> > And yet, you've introduced *two* struct ida for each port in
> > patch 16. This doesn't seem to make sense: The out_hopids ida
> > of a port always has to be identical to the in_hopids ida of that
> > port's remote. But if it's identical, why does it have to exist
> > twice?
>
> The reason for two HopID allocators (struct idas) is to make it possible
> to track HopIDs to each direction. The same port can be output for one
> path and input for another. I'm not sure how that can be done without
> having two struct idas per port.
>
> You are right, in case of out port HopID connecter to remote in port,
> they should use the same HopID.
Hm, what other cases are there, i.e. what is the meaning of a tb_regs_hop's
"next_hop" field if "out_port" doesn't have a remote? (And why does it
need to be tracked on the out_port? In case a remote is added later?)
Thanks,
Lukas
Powered by blists - more mailing lists