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.