obmc-console design for multi host support

Andrew Jeffery andrew at aj.id.au
Wed Mar 4 09:45:38 AEDT 2020



On Wed, 4 Mar 2020, at 03:53, Joseph Reynolds wrote:
> 
> 
> On 3/2/20 10:03 PM, Andrew Jeffery wrote:
> > On Fri, 28 Feb 2020, at 18:00, Vijay Khemka wrote:
> >> On 2/27/20, 2:05 AM, "openbmc on behalf of Andrew Jeffery"
> >>      
> >>      ```
> >>      $ ls -1 /etc/obmc-console
> >>      client.2200.conf
> >>      server.ttyVUART0.conf
> >>      ```
> >> What are other contents of client and server conf file other than socket-id?
> > Whatever else you were previously specifying for the server.
> >
> >>      
> >>      So to map the client associated with port 2200 to the server associated
> >>      with ttyVUART0 we set the same socket-id value in both files:
> >>
> >> Can this socket-id be any random word and can this be same across multiple
> >> Host (client/server) configuration. I mean, do we need different socket-id for
> >> client.2200 and client.2201 or it can be same.
> > The socket-id is a unique portion for the unix domain socket created by the
> > obmc-console-server instance. The server needs to know this because it needs
> > to know what to name the pipe; the client needs to know it as it needs to form
> > the abstract socket name to which to connect.
> >
> > In general unless you're looking to expose the same console on _different_
> > network ports, you want to pair each client with a unique server.
> >
> > Here's an ASCII diagram:
> >
> >                 +--------------------------------------------------------------------------------------------+
> >                 |                                                                                            |
> >                 |       obmc-console-client      unix domain socket         obmc-console-server              |
> >                 |                                                                                            |
> >                 |     +---------------------+                           +------------------------+           |
> >                 |     | client.2201.conf    |  +---------------------+  | server.ttyVUART1.conf  |           |
> >             +---+--+  +---------------------+  |                     |  +------------------------+  +--------+-------+
> > Network    | 2201 +-->                     +->+ @obmc-console.host1 +<-+                        <--+ /dev/ttyVUART1 |   UARTs
> >             +---+--+  | socket-id = "host1" |  |                     |  | socket-id = "host1"    |  +--------+-------+
> >                 |     |                     |  +---------------------+  |                        |           |
> >                 |     +---------------------+                           +------------------------+           |
> >                 |                                                                                            |
> >                 |                                                                                            |
> >                 |                                                                                            |
> >                 +--------------------------------------------------------------------------------------------+
> >
> > Does that help?
> 
> Nice diagram!  Can this be added to
> https://github.com/openbmc/obmc-console/blob/master/README.md
> 
> I tried to capture this network interface in an architecture review 
> here:
> https://gerrit.openbmc-project.xyz/c/openbmc/docs/+/27969/3/architecture/interface-overview.md#130
> which also includes 'ipmi sol activate' and hostlogger.
> 
> Please let me know the best way to document this in the project?  I 
> would be happy to remove details from the doc-under-review and point to 
> the obmc-console README.  Does that sound right?

Sure, if the diagram was useful for you then it's probably useful for
others too.

For what it's worth, I drew it using http://asciiflow.com/

Andrew


More information about the openbmc mailing list