From: Jeremy Kerr <jk@codeconstruct.com.au>
To: "Winiarska, Iwona" <iwona.winiarska@intel.com>,
"matt@codeconstruct.com.au" <matt@codeconstruct.com.au>,
"linux-i3c@lists.infradead.org" <linux-i3c@lists.infradead.org>
Cc: "alexandre.belloni@bootlin.com" <alexandre.belloni@bootlin.com>,
"joel@jms.id.au" <joel@jms.id.au>
Subject: Re: [RFC PATCH 0/2] I3C MCTP net driver
Date: Tue, 09 May 2023 07:42:38 +0800 [thread overview]
Message-ID: <4127aa2454a33bccf666597c292943ded9ccaa5d.camel@codeconstruct.com.au> (raw)
In-Reply-To: <f741f271752a6b141667625676487311a877a3db.camel@intel.com>
Hi Iwona,
> Wouldn't creating "mctpi3cX" network interface for each I3C device rather than
> I3C bus be a better fit to model MCTP over I3C?
Great question! A few reasons for this structure:
- it is a closer match to existing usage of network interfaces and
remote endpoints (say, IP, CAN, etc): you have an interface for
representing the local hardware and stack state, which may provide a
path for any devices reachable through that hardware.
- a simpler addressing structure: you only need one *local* MCTP
address (EID) for the whole bus, rather that one per remote device.
- the presence/absence of interfaces is not dependent on what's
connected to the bus. If we used a netdev per remote device, users
would not be able to set up the local stack until a remote endpoint
is bound (ie, userspace would need to configure every interface on
i3c hot join). With this model, that stack state can persist over
whatever may be happening to remote devices (unplug, reset,
re-addressing, etc).
- if there is ever a proposal for broadcast messages in the i3c
transport binding, we would have to re-write it in this structure
anyway.
> Why are we following the mctp-i2c approach rather than mctp-serial?
mctp-serial follows the same model: the local device is always present,
the difference here being that no physical addressing is required.
Routes to remote endpoints are added depending on remote endpoint state,
but the local state is preserved regardless of what is (or is not) on
the other end of the link.
> This would also simplify the series, as we would no longer need "mctp-
> controller" property, and the driver would just follow the I3C class driver
> model without the need for notifiers.
It would simplify the series, but we would be punting a lot of those
complexities over to userspace.
Cheers,
Jeremy
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
next prev parent reply other threads:[~2023-05-08 23:42 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-13 8:11 [RFC PATCH 0/2] I3C MCTP net driver Matt Johnston
2023-04-13 8:11 ` [RFC PATCH 1/2] i3c: Add support for bus enumeration & notification Matt Johnston
2023-04-13 8:11 ` [RFC PATCH 2/2] mctp i3c: MCTP I3C driver Matt Johnston
2023-05-08 18:27 ` [RFC PATCH 0/2] I3C MCTP net driver Winiarska, Iwona
2023-05-08 23:42 ` Jeremy Kerr [this message]
2023-05-09 21:14 ` Winiarska, Iwona
2023-05-10 3:28 ` Jeremy Kerr
2023-05-13 20:21 ` Winiarska, Iwona
2023-05-15 2:29 ` Jeremy Kerr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4127aa2454a33bccf666597c292943ded9ccaa5d.camel@codeconstruct.com.au \
--to=jk@codeconstruct.com.au \
--cc=alexandre.belloni@bootlin.com \
--cc=iwona.winiarska@intel.com \
--cc=joel@jms.id.au \
--cc=linux-i3c@lists.infradead.org \
--cc=matt@codeconstruct.com.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox