All of lore.kernel.org
 help / color / mirror / Atom feed
From: matt mooney <mfm@muteddisk.com>
To: N??meth M??rton <nm127@freemail.hu>
Cc: Greg KH <greg@kroah.com>, Matthew Wilcox <matthew@wil.cx>,
	linux-usb@vger.kernel.org, LKML <linux-kernel@vger.kernel.org>,
	usbip-devel@lists.sourceforge.net
Subject: Re: USBIP protocol documentation?
Date: Tue, 24 May 2011 20:12:22 -0700	[thread overview]
Message-ID: <20110525031222.GB14290@haskell.muteddisk.com> (raw)
In-Reply-To: <4DDC142E.6070003@freemail.hu>

On 22:25 Tue 24 May     , N??meth M??rton wrote:
> Greg KH wrote:
> > On Tue, May 24, 2011 at 08:28:13PM +0200, N??meth M??rton wrote:
> >> Hi,
> >>
> >> I'm looking for the USBIP protocol documentation. I found that
> >> there was already a discussion about the USBIP protocol and
> >> there is some draft about it:
> >>
> >>   * http://marc.info/?l=linux-kernel&m=122001863119269&w=2
> >>   * http://www.kernel.org/pub/linux/kernel/people/willy/usbip/usbip-protocol-draft-1
> >>
> >> Unfortunately I couldn't found any detailed protocol documentation
> >> on the project homepage:
> >>
> >>   * http://usbip.sourceforge.net/#documentation
> >>
> >> Do you know any follow-up on the USBIP protocol documentation?
> > 
> > I think the code is the "real" documentation.

I concur!
 
> If it is, then I need to read it in the right way, through it is not an easy task.
> I tried to find the points in the USBIP kernel code where opening, sending,
> receiving and closing of the TCP connection takes place. I took all function names
> from linux/net.h and I found the following places so far:
> 
> $ grep -n -E
> 'sock_wake_async|sock_register|sock_unregister|sock_create|sock_create_kern|sock_create_lite|sock_release|sock_sendmsg|sock_recvmsg|sock_map_fd|sockfd_lookup|sockfd_put|net_ratelimit|kernel_sendmsg|kernel_recvmsg|kernel_bind|kernel_listen|kernel_accept|kernel_connect|kernel_getsockname|kernel_getpeername|kernel_getsockopt|kernel_setsockopt|kernel_sendpage|kernel_sock_ioctl|kernel_sock_shutdown|SHUT_'
> linux-2.6/drivers/staging/usbip/*
> 
> linux-2.6/drivers/staging/usbip/stub_dev.c:201:         kernel_sock_shutdown(ud->tcp_socket, SHUT_RDWR);
> linux-2.6/drivers/staging/usbip/stub_dev.c:216:         sock_release(ud->tcp_socket);
> linux-2.6/drivers/staging/usbip/stub_tx.c:263:          ret = kernel_sendmsg(sdev->ud.tcp_socket, &msg,
> linux-2.6/drivers/staging/usbip/stub_tx.c:338:          ret = kernel_sendmsg(sdev->ud.tcp_socket, &msg, iov,
> linux-2.6/drivers/staging/usbip/usbip_common.c:382:                     result = kernel_sendmsg(sock, &msg, &iov, 1, size);
> linux-2.6/drivers/staging/usbip/usbip_common.c:384:                     result = kernel_recvmsg(sock, &msg, &iov, 1, size,
> linux-2.6/drivers/staging/usbip/vhci_hcd.c:845:         kernel_sock_shutdown(ud->tcp_socket, SHUT_RDWR);
> linux-2.6/drivers/staging/usbip/vhci_hcd.c:858:         sock_release(vdev->ud.tcp_socket);
> linux-2.6/drivers/staging/usbip/vhci_tx.c:119:          ret = kernel_sendmsg(vdev->ud.tcp_socket, &msg, iov, 3, txsize);
> linux-2.6/drivers/staging/usbip/vhci_tx.c:189:          ret = kernel_sendmsg(vdev->ud.tcp_socket, &msg, iov, 1, txsize);
> 
> I guess this is not all, there is also a protocol defined to the user-space world.

Very true, and part of what is taking place is a unification of the userspace
and kernel protocols. Then there will be some degree of documentation. Mainly in
the form of packet diagrams to show on-wire communication.
 
> > Note a number of developers are actively working on changing the protocol
> > and fixing it up based on Matthew's previous comments.  Look at the
> > thread on the usbip project's mailing list for a few details.  More will
> > be in the patches produced by the developers.
> 
> I had a look at the usbip-devel mailing list archive at
> http://sourceforge.net/mailarchive/forum.php?forum_name=usbip-devel and found
> a thread where I could find some protocol description also:
> 
>  * http://sourceforge.net/mailarchive/message.php?msg_id=27240940
> 
> The current protocol implementation is based on top of TCP. In the message
> at http://marc.info/?l=linux-kernel&m=122001883519653&w=2 the SCTP is mentioned.
> Have anybody worked on finding out what benefits the SCTP could give to USBIP
> and what would be the drawbacks?

I think sctp would be interesting, but as greg said, and I tend to agree, this
is the least of usbip's problems.

(Maybe eliminating the need to interact w/ windows would be a good project ;)
jk!

-matt

  parent reply	other threads:[~2011-05-25  3:13 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-24 18:28 USBIP protocol documentation? Németh Márton
2011-05-24 18:34 ` Greg KH
2011-05-24 20:25   ` Németh Márton
2011-05-24 21:25     ` Greg KH
2011-05-25  3:12     ` matt mooney [this message]
2011-05-25  5:29       ` Németh Márton
2011-05-26  7:13         ` Németh Márton
2011-06-28  6:52           ` [PATCH, RFC] USBIP protocol documentation Németh Márton
2011-06-29  8:04             ` David Chang
2011-07-04  3:11               ` David Chang
2011-07-04  5:38                 ` Németh Márton
2011-07-04  8:24                   ` Matt Chen
2011-07-07  4:14                     ` matt mooney
2011-07-07  6:20                       ` Matt Chen
2011-07-25  4:30                         ` Matt Chen
2011-06-29 23:34             ` matt mooney
     [not found]               ` <BANLkTi=qXgnapyrsSANJ0XZuE=kz7QgsvA@mail.gmail.com>
2011-06-30  5:56                 ` Németh Márton
2011-06-30  6:54                   ` Matt Chen
2011-06-30 19:38                     ` Németh Márton
2011-08-09  9:23             ` David Chang
2011-08-09 14:22               ` Greg KH
2011-08-10  6:41                 ` David Chang

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=20110525031222.GB14290@haskell.muteddisk.com \
    --to=mfm@muteddisk.com \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=matthew@wil.cx \
    --cc=nm127@freemail.hu \
    --cc=usbip-devel@lists.sourceforge.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.