Ссылка kpi_protocol.h
Этот заголовок определяет API для взаимодействия с протоколами в ядре. KPIs в этом заголовочном файле может использоваться для взаимодействия с протоколами, уже существующими в штабеле. Эти KPIs могут использоваться для поддержки существующих протоколов по типам среды, исходно не поддерживающимся в ядре, таком как ATM.
Включенные заголовки
<sys/kernel_types.h>
<net/kpi_interface.h>
-
Объявление
Objective C
errno_t proto_inject ( protocol_family_t protocol, mbuf_t packet );
Параметры
protocol
Протокол пакета.
packet
Первый пакет в цепочке пакетов, которые будут введены.
Возвращаемое значение
errno ошибка при отказе. Если нуль возвратов proto_inject, вызывающая сторона не ответственна за освобождение mbuf.
Обсуждение
Вводит пакет на указанном протоколе отовсюду. Для предотвращения рекурсии протокол, возможно, должен поставить в очередь пакет, который будет обработан позже.
Оператор импорта
Objective C
#include <kpi_protocol.h>;
Доступность
Доступный в OS X v10.4 и позже.
-
Объявление
Objective C
errno_t proto_input ( protocol_family_t protocol, mbuf_t packet );
Параметры
protocol
Протокол пакета.
packet
Первый пакет в цепочке пакетов, которые будут введены.
Возвращаемое значение
errno ошибка при отказе. Если нуль возвратов proto_input, вызывающая сторона не ответственна за освобождение mbuf.
Обсуждение
Вводит пакет на указанном протоколе от входного пути.
Оператор импорта
Objective C
#include <kpi_protocol.h>;
Доступность
Доступный в OS X v10.4 и позже.
-
Объявление
Objective C
errno_t proto_register_plumber ( protocol_family_t proto_fam, ifnet_family_t if_fam, proto_plumb_handler plumb, proto_unplumb_handler unplumb );
Параметры
proto_fam
Семейство протокола эти функции инфраструктуры обработает.
if_fam
Интерфейсная семья эти функции инфраструктуры обработает.
plumb
Функция для вызова для присоединения протокола к интерфейсу.
unplumb
Функция для вызова для отсоединения протокола к интерфейсу, может быть NULL, когда ifnet_detach_protocol будет использоваться для отсоединения протокола.
Возвращаемое значение
Ненулевое значение присоединения перестало работать.
Обсуждение
Позволяет вызывающей стороне указывать функции, вызванные, когда протокол присоединен к интерфейсу, принадлежащему указанной семье и когда отсоединяется тот протокол.
Оператор импорта
Objective C
#include <kpi_protocol.h>;
Доступность
Доступный в OS X v10.4 и позже.
-
Объявление
Objective C
void proto_unregister_plumber ( protocol_family_t proto_fam, ifnet_family_t if_fam );
Параметры
proto_fam
Семейство протокола эти инфраструктура функционирует дескриптор.
if_fam
Интерфейсная семья эти инфраструктура функционирует дескриптор.
Обсуждение
Не регистрирует ранее зарегистрированную функцию инфраструктуры.
Оператор импорта
Objective C
#include <kpi_protocol.h>;
Доступность
Доступный в OS X v10.4 и позже.
-
Объявление
Objective C
typedef errno_t ( *proto_plumb_handler)( ifnet_t ifp, protocol_family_t protocol);
Параметры
ifp
Интерфейс протокол должен быть присоединен.
protocol_family
Протокол, который должен быть присоединен к интерфейсу.
Возвращаемое значение
Ненулевое значение присоединения перестало работать.
Обсуждение
proto_plumb_handler вызывают для присоединения протокола к интерфейсу. Типичный протокол вертикальная функция заполнил бы ifnet_attach_proto_param и вызвал бы ifnet_attach_protocol.
Оператор импорта
Objective C
#include <kpi_protocol.h>;
Доступность
Доступный в OS X v10.4 и позже.
-
Объявление
Objective C
typedef void ( *proto_unplumb_handler)( ifnet_t ifp, protocol_family_t protocol);
Параметры
ifp
Интерфейс протокол должен быть отсоединен от.
protocol_family
Протокол, который должен быть отсоединен от интерфейса.
Обсуждение
proto_unplumb_handler вызывают для отсоединения протокола от интерфейса. Типичная невертикальная функция вызвала бы ifnet_detach_protocol и выполнила бы любую необходимую очистку.
Оператор импорта
Objective C
#include <kpi_protocol.h>;
Доступность
Доступный в OS X v10.4 и позже.