Rev 4243 | Rev 4505 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4243 | Rev 4350 | ||
|---|---|---|---|
| Line 108... | Line 108... | ||
| 108 | */ |
108 | */ |
| 109 | uint8_t ttl; |
109 | uint8_t ttl; |
| 110 | /** This field indicates the next level protocol used in the data portion of the internet datagram. |
110 | /** This field indicates the next level protocol used in the data portion of the internet datagram. |
| 111 | */ |
111 | */ |
| 112 | uint8_t protocol; |
112 | uint8_t protocol; |
| 113 | /** A checksum on the header only. |
113 | /** A checksum of the header only. |
| 114 | * Since some header fields change (e.g., time to live), this is recomputed and verified at each point that the internet header is processed. |
114 | * Since some header fields change (e.g., time to live), this is recomputed and verified at each point that the internet header is processed. |
| 115 | * The checksum algorithm is: The checksum field is the 16~bit one's complement of the one's complement sum of all 16~bit words in the header. |
115 | * The checksum algorithm is: The checksum field is the 16~bit one's complement of the one's complement sum of all 16~bit words in the header. |
| 116 | * For purposes of computing the checksum, the value of the checksum field is zero. |
116 | * For purposes of computing the checksum, the value of the checksum field is zero. |
| 117 | */ |
117 | */ |
| 118 | uint16_t header_checksum; |
118 | uint16_t header_checksum; |
| Line 122... | Line 122... | ||
| 122 | /** The destination address. |
122 | /** The destination address. |
| 123 | */ |
123 | */ |
| 124 | uint32_t destination_address; |
124 | uint32_t destination_address; |
| 125 | } __attribute__ ((packed)); |
125 | } __attribute__ ((packed)); |
| 126 | 126 | ||
| - | 127 | /** Type definition of the internet option header. |
|
| - | 128 | * @see ip_header |
|
| - | 129 | */ |
|
| 127 | typedef struct ip_option ip_option_t; |
130 | typedef struct ip_option ip_option_t; |
| - | 131 | ||
| - | 132 | /** Type definition of the internet option header pointer. |
|
| - | 133 | * @see ip_header |
|
| - | 134 | */ |
|
| 128 | typedef ip_option * ip_option_ref; |
135 | typedef ip_option * ip_option_ref; |
| 129 | 136 | ||
| 130 | /** Internet option header. |
137 | /** Internet option header. |
| 131 | * Only type field is always valid. |
138 | * Only type field is always valid. |
| 132 | * Other fields' validity depends on the option type. |
139 | * Other fields' validity depends on the option type. |