Skip to content

[Question] Batched Tx in MCTP USB Binding #9

@santoshpuranik

Description

@santoshpuranik

Hi Jeremy,

Starting this to discuss possible implementations that I am looking at to enable packing multiple MCTP packets into a single USB OUT transfer in the MCTP USB binding.

What are your thoughts on:

  • The packing strategy: Should the binding layer that reads from the netdev queue "wait" a certain (a few microseconds?) time to possibly pool multiple packets in a transfer? I am not sure if that is a good idea given we don't know that there are more packets in the queue.
  • The actual implementation: This kind of depends on the above question, but if we choose not to implement the "wait for more packets" strategy, does it make sense for the route.c implementation (do_fragment_route) that pushes packets to the netdev queue to set a hint via netdev_xmit_more() flag to indicate to the binding that more packets are on the way? The binding may then use this hint to defer the URB submission until netdev_xmit_more() is set OR we would exceed the max USB bulk xfer limit.
  • The binding may just look at the EOM field in the header to know that there must be more packets on the way and wait like above until EOM is received OR max packet size would exceed the USB transfer limit.

Any quick thoughts on which of these (or something else entirely!) might be the right approach?

Thanks,
Santosh

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions