13 |
* Multiple packets may be queued, also using this singly linked list. |
* Multiple packets may be queued, also using this singly linked list. |
14 |
* This is called a "packet queue". So, a packet queue consists of one |
* This is called a "packet queue". So, a packet queue consists of one |
15 |
* or more pbuf chains, each of which consist of one or more pbufs. |
* or more pbuf chains, each of which consist of one or more pbufs. |
16 |
|
* The differences between a pbuf chain and a packet queue are very |
17 |
|
* subtle. Currently, queues are only supported in a limited section |
18 |
|
* of lwIP, this is the etharp queueing code. Outside of this section |
19 |
|
* no packet queues are supported as of yet. |
20 |
* |
* |
21 |
* The last pbuf of a packet has a ->tot_len field that equals the |
* The last pbuf of a packet has a ->tot_len field that equals the |
22 |
* ->len field. It can be found by traversing the list. If the last |
* ->len field. It can be found by traversing the list. If the last |
23 |
* pbuf of a packet has a ->next field other than NULL, more packets |
* pbuf of a packet has a ->next field other than NULL, more packets |
24 |
* are on the queue. |
* are on the queue. |
25 |
|
* |
26 |
|
* Therefore, looping through a pbuf of a single packet, has an |
27 |
|
* loop end condition (tot_len == p->len), NOT (next == NULL). |
28 |
*/ |
*/ |
29 |
|
|
30 |
/* |
/* |