uIP 1.0
|
Функции в модуле, который привязан к архитектуре, для ускоренного вычисления контрольной суммы IP и 32-битных сложений. Подробнее...
Файлы | |
файл | uip_arch.h |
Декларирование функций, специфичных для архитектуры. | |
Функции | |
void | uip_add32 (u8_t *op32, u16_t op16) |
Выполнение 32-разрядного сложения. | |
u16_t | uip_chksum (u16_t *buf, u16_t len) |
Вычисление контрольной суммы Internet от данных буфера. | |
u16_t | uip_ipchksum (void) |
Вычисляет контрольную сумму заголовка IP от заголовка пакета, который находится в uip_buf. | |
u16_t | uip_tcpchksum (void) |
Вычисление контрольной суммы TCP пакета, находящегося в uip_buf и uip_appdata. | |
Переменные | |
u8_t | uip_acc32 [4] |
4-байтовый массив для вычисления 32-битного номера последовательности. |
Функции в модуле, который привязан к архитектуре, для ускоренного вычисления контрольной суммы IP и 32-битных сложений.
Вычисление контрольной суммы IP - наиболее затратная по вычислениям операция в стеке TCP/IP, поэтому её имеет смысл переписать на эффективном ассемблере. Назначание модуля uip-arch - позволить реализовать функции контрольной суммы на ассемблере, привязанном к архитектуре.
Выполнение 32-разрядного сложения.
ПОскольку не все архитектуры, для которых предназначена uIP, имеют встроенную 32-битную арифметику, uIP использует внешнюю функцию на языке C для выполнения 32-битных прибавлений, требуемых в обработке протоколов TCP. Эта функция должна сложить 2 аргумента, и поместить результат в глобальную переменную uip_acc32.
op32 | Указатель на 4-байтный массив, представляющий 32-битное целое число с сетевым порядком байт (big endian). |
op16 | 16-битное целое с порядком байт хоста. |
См. определение в файле uip.c строка 246
Используется в uip_split_output().
Вычисление контрольной суммы Internet от данных буфера.
Контрольная сумма Internet является дополнением до единицы от суммы с дополнением до единицы всех 16-битных слов в буфере.
См. RFC1071.
buf | Указатель на буфер, от которого будет вычисляться контрольная сумма. |
len | Длина буфера, от данных которого вычисляется контрольная сумма. |
Вычисление контрольной суммы Internet от данных буфера.
Контрольная сумма Internet - это поразрядное дополнение до 1 суммы поразрядного дополнения всех 16-битных слов в буфере.
См. RFC1071.
buf | Указатель на буфер, от которого вычисляется контрольная сумма. |
len | Длина буфера, от которого вычисляется контрольная сумма. |
См. определение в файле uip.c строка 308
Перекрестные ссылки htons().
u16_t uip_ipchksum | ( | void | ) |
Вычисляет контрольную сумму заголовка IP от заголовка пакета, который находится в uip_buf.
Контрольная сумма заголовка является контрольной суммой Internet от 20 байт заголовка IP.
Вычисляет контрольную сумму заголовка IP от заголовка пакета, который находится в uip_buf.
Контрольная сумма заголовка IP является контрольной суммой Internet от 20 байт заголовка IP.
См. определение в файле uip.c строка 315
Перекрестные ссылки htons() и UIP_LLH_LEN.
Используется в uip_split_output().
u16_t uip_tcpchksum | ( | void | ) |
Вычисление контрольной суммы TCP пакета, находящегося в uip_buf и uip_appdata.
Контрольная сумма TCP является контрольной суммой Internet от содержимого данных сегмента TCP и псевдозаголовка, определенного в RFC793.
Вычисление контрольной суммы TCP пакета, находящегося в uip_buf и uip_appdata.
Контрольная сумма TCP является контрольной суммой Internet от содержимого данных сегмента TCP, и псевдозаголовка, определенного в RFC793.
См. определение в файле uip.c строка 361
Используется в uip_split_output().