Chaining

A single thread can be both a forwarded thread and a forwarding thread, which supports the creation of an infinite chain of message forwarding threads.

Messages in a forwarding chain move through each thread’s outbound data, or reply queue, and any outbound TPS procs that exist.

  • hcicmd fwd[r]_start operates on only one thread, so it must restart for each link in the forwarding chain.
  • hcicmd fwd[r]_stop preserves the message order when it shuts down a chain.
  • hcicmd fwd[r]_ stop shuts down current thread forwarding and any later links in the forwarding chain.
Note: Configure a thread to accept only forwarded or non-forwarded messages. Configuring a single thread to accept both forwarded and non-forwarded messages could delay the hcicmd fwd[r]_stop command.

For example, A forwards to B, B forwards to C, C forwards to D.

  • A fwd_stop that is issued to A would shut down A, B, and C forwarding.
  • A fwd_stop that is issued to B would shut down B and C forwarding.
  • A fwd_stop that is issued to C would only stop C from forwarding to D.