uIP 1.0
Файлы | Функции | Переменные
Функции uIP, специфичные для архитектуры
The uIP TCP/IP stack

Функции в модуле, который привязан к архитектуре, для ускоренного вычисления контрольной суммы 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 - позволить реализовать функции контрольной суммы на ассемблере, привязанном к архитектуре.


Функции

void uip_add32 ( u8_t op32,
u16_t  op16 
)

Выполнение 32-разрядного сложения.

ПОскольку не все архитектуры, для которых предназначена uIP, имеют встроенную 32-битную арифметику, uIP использует внешнюю функцию на языке C для выполнения 32-битных прибавлений, требуемых в обработке протоколов TCP. Эта функция должна сложить 2 аргумента, и поместить результат в глобальную переменную uip_acc32.

Заметки:
32-битное целое указывается параметром op32, и результат в переменной uip_acc32 с сетевым порядком байт (big endian, старший байт идет первым, младший последним).
Аргументы:
op32Указатель на 4-байтный массив, представляющий 32-битное целое число с сетевым порядком байт (big endian).
op1616-битное целое с порядком байт хоста.

См. определение в файле uip.c строка 246

Используется в uip_split_output().

u16_t uip_chksum ( u16_t buf,
u16_t  len 
)

Вычисление контрольной суммы Internet от данных буфера.

Контрольная сумма Internet является дополнением до единицы от суммы с дополнением до единицы всех 16-битных слов в буфере.

См. RFC1071.

Заметки:
Эта функция не вызывается в текущей версии uIP, но будущие версии могут её использовать.
Аргументы:
bufУказатель на буфер, от которого будет вычисляться контрольная сумма.
lenДлина буфера, от данных которого вычисляется контрольная сумма.
Возвращает:
Контрольная сумма Internet буфера.

Вычисление контрольной суммы Internet от данных буфера.

Контрольная сумма Internet - это поразрядное дополнение до 1 суммы поразрядного дополнения всех 16-битных слов в буфере.

См. RFC1071.

Аргументы:
bufУказатель на буфер, от которого вычисляется контрольная сумма.
lenДлина буфера, от которого вычисляется контрольная сумма.
Возвращает:
The Контрольная сумма Internet для буфера.

См. определение в файле uip.c строка 308

Перекрестные ссылки htons().

u16_t uip_ipchksum ( void  )

Вычисляет контрольную сумму заголовка IP от заголовка пакета, который находится в uip_buf.

Контрольная сумма заголовка является контрольной суммой Internet от 20 байт заголовка IP.

Возвращает:
Контрольная сумма заголовка IP от заголовка IP, который находится в буфере uip_buf.

Вычисляет контрольную сумму заголовка IP от заголовка пакета, который находится в uip_buf.

Контрольная сумма заголовка IP является контрольной суммой Internet от 20 байт заголовка IP.

Возвращает:
Контрольная сумма заголовка IP для заголовка IP в в буфере uip_buf.

См. определение в файле uip.c строка 315

Перекрестные ссылки htons() и UIP_LLH_LEN.

Используется в uip_split_output().

u16_t uip_tcpchksum ( void  )

Вычисление контрольной суммы TCP пакета, находящегося в uip_buf и uip_appdata.

Контрольная сумма TCP является контрольной суммой Internet от содержимого данных сегмента TCP и псевдозаголовка, определенного в RFC793.

Заметки:
uip_appdata является указателем, указывающим на данные пакета, и он может указывать на любое место в памяти, так что нельзя просто вычислить контрольную сумму Internet от содержимого буфера uip_buf.
Возвращает:
Контрольная сумма TCP сегмента TCP, находящегося в uip_buf, в том месте, на которое указывает uip_appdata.

Вычисление контрольной суммы TCP пакета, находящегося в uip_buf и uip_appdata.

Контрольная сумма TCP является контрольной суммой Internet от содержимого данных сегмента TCP, и псевдозаголовка, определенного в RFC793.

Возвращает:
Контрольная сумма TCP сегмента TCP в uip_buf, на который указывает uip_appdata.

См. определение в файле uip.c строка 361

Используется в uip_split_output().