version 1.1.1.1, 2018/04/24 16:37:52
|
version 1.1.1.2, 2018/04/24 16:54:43
|
Line 10
|
Line 10
|
* 2. Redistributions in binary form must reproduce the above copyright |
* 2. Redistributions in binary form must reproduce the above copyright |
* notice, this list of conditions and the following disclaimer in the |
* notice, this list of conditions and the following disclaimer in the |
* documentation and/or other materials provided with the distribution. |
* documentation and/or other materials provided with the distribution. |
* 3. All advertising materials mentioning features or use of this software |
* 3. Neither the name of the University nor the names of its contributors |
* must display the following acknowledgement: |
|
* This product includes software developed by the University of |
|
* California, Berkeley and its contributors. |
|
* 4. Neither the name of the University nor the names of its contributors |
|
* may be used to endorse or promote products derived from this software |
* may be used to endorse or promote products derived from this software |
* without specific prior written permission. |
* without specific prior written permission. |
* |
* |
Line 44 struct tcpiphdr {
|
Line 40 struct tcpiphdr {
|
struct ipovly ti_i; /* overlaid ip structure */ |
struct ipovly ti_i; /* overlaid ip structure */ |
struct tcphdr ti_t; /* tcp header */ |
struct tcphdr ti_t; /* tcp header */ |
}; |
}; |
#define ti_next ti_i.ih_next |
#define ti_mbuf ti_i.ih_mbuf.mptr |
#define ti_prev ti_i.ih_prev |
|
#define ti_x1 ti_i.ih_x1 |
#define ti_x1 ti_i.ih_x1 |
#define ti_pr ti_i.ih_pr |
#define ti_pr ti_i.ih_pr |
#define ti_len ti_i.ih_len |
#define ti_len ti_i.ih_len |
Line 62 struct tcpiphdr {
|
Line 57 struct tcpiphdr {
|
#define ti_sum ti_t.th_sum |
#define ti_sum ti_t.th_sum |
#define ti_urp ti_t.th_urp |
#define ti_urp ti_t.th_urp |
|
|
|
#define tcpiphdr2qlink(T) ((struct qlink*)(((char*)(T)) - sizeof(struct qlink))) |
|
#define qlink2tcpiphdr(Q) ((struct tcpiphdr*)(((char*)(Q)) + sizeof(struct qlink))) |
|
#define tcpiphdr_next(T) qlink2tcpiphdr(tcpiphdr2qlink(T)->next) |
|
#define tcpiphdr_prev(T) qlink2tcpiphdr(tcpiphdr2qlink(T)->prev) |
|
#define tcpfrag_list_first(T) qlink2tcpiphdr((T)->seg_next) |
|
#define tcpfrag_list_end(F, T) (tcpiphdr2qlink(F) == (struct qlink*)(T)) |
|
#define tcpfrag_list_empty(T) ((T)->seg_next == (struct tcpiphdr*)(T)) |
|
|
/* |
/* |
* Just a clean way to get to the first byte |
* Just a clean way to get to the first byte |
* of the packet |
* of the packet |