Ссылка bpf.h
Включенные заголовки
<sys/param.h><sys/appleapiopts.h><sys/time.h><sys/cdefs.h><stdint.h><sys/kernel_types.h><sys/_types/_timeval32.h>
-
Объявление
Objective C
errno_t bpf_attach ( ifnet_t interface, u_int32_t data_link_type, u_int32_t header_length, bpf_send_func send, bpf_tap_func tap );Параметры
interfaceИнтерфейс для регистрации в BPF.
data_link_typeТип канала передачи данных интерфейса. Посмотрите, что DLT_* определяет в bpf.h.
header_lengthДлина, в байтах, заголовка канала передачи данных.
sendПосмотрите bpf_send_func, описанный выше.
tapПосмотрите bpf_tap_func, описанный выше.
Обсуждение
Регистрирует интерфейс в BPF. Это позволяет bpf устройствам присоединять к Вашему интерфейсу, чтобы получить и передать пакеты. Когда Ваш интерфейс будет отсоединен, Ваш интерфейс будет не зарегистрирован автоматически. Можно зарегистрироваться многократно в различных типах канала передачи данных. 802,11 интерфейса использовали бы это, чтобы позволить клиентам выбирать, хотят ли они просто кадр стиля Ethernet или 802,11 беспроводных заголовка также. Первый dlt, который Вы регистрируете, будут считать значением по умолчанию. Любые bpf присоединения устройства, не указывающие тип канала передачи данных, будут использовать значение по умолчанию.
Оператор импорта
Objective C
#include <bpf.h>;Доступность
Доступный в OS X v10.5 и позже.
-
Объявление
Objective C
void bpf_tap_in ( ifnet_t interface, u_int32_t dlt, mbuf_t packet, void *header, size_t header_len );Параметры
interfaceИнтерфейс пакет был получен на.
dltТип канала передачи данных пакета.
packetПакет получен.
headerДополнительный указатель на заголовок, который будет предварительно ожидаться.
headerlenЕсли заголовок был указан, длина заголовка.
Обсуждение
Вызовите эту функцию, когда Ваш интерфейс получит пакет. Эта функция проверит, нужна ли каким-либо bpf устройствам копия пакета.
Оператор импорта
Objective C
#include <bpf.h>;Доступность
Доступный в OS X v10.5 и позже.
-
Объявление
Objective C
void bpf_tap_out ( ifnet_t interface, u_int32_t dlt, mbuf_t packet, void *header, size_t header_len );Параметры
interfaceИнтерфейс пакет был или будет передан на.
dltТип канала передачи данных пакета.
packetПакет получен.
headerДополнительный указатель на заголовок, который будет предварительно ожидаться.
headerlenЕсли заголовок был указан, длина заголовка.
Обсуждение
Вызовите эту функцию когда Ваш интерфейс trasmits пакет. Эта функция проверит, нужна ли каким-либо bpf устройствам копия пакета.
Оператор импорта
Objective C
#include <bpf.h>;Доступность
Доступный в OS X v10.5 и позже.
-
Объявление
Objective C
void bpfattach ( ifnet_t interface, u_int data_link_type, u_int header_length );Параметры
interfaceИнтерфейс для регистрации в BPF.
data_link_typeТип канала передачи данных интерфейса. Посмотрите, что DLT_* определяет в bpf.h.
header_lengthДлина, в байтах, заголовка канала передачи данных.
Обсуждение
Регистрирует интерфейс в BPF. Это позволяет bpf устройствам присоединять к Вашему интерфейсу для получения пакетов. Когда Ваш интерфейс будет отсоединен, Ваш интерфейс будет не зарегистрирован автоматически.
Оператор импорта
Objective C
#include <bpf.h>;Доступность
Доступный в OS X v10.4 и позже.
-
Объявление
Objective C
typedef errno_t ( *bpf_send_func)( ifnet_t interface, u_int32_t data_link_type, mbuf_t packet);Параметры
interfaceИнтерфейс пакет пересылается.
dltТип канала передачи данных bpf устройство присоединен.
packetПакет, который будет отправлен.
Обсуждение
когда bpf дескриптор файла используется для отправки необработанного пакета в интерфейсе, bpf_send_func вызывают. mbuf и тип канала передачи данных указаны. Обратный вызов ответственен за выпуск mbuf, возвращает ли это ошибку.
Оператор импорта
Objective C
#include <bpf.h>;Доступность
Доступный в OS X v10.5 и позже.
-
Объявление
Objective C
typedef errno_t ( *bpf_tap_func)( ifnet_t interface, u_int32_t data_link_type, bpf_tap_mode direction);Параметры
interfaceКоснувшийся интерфейс.
dltКоснувшийся тип канала передачи данных.
directionНаправление касания.
Обсуждение
когда состояние касания интерфейса изменяется, bpf_tap_func вызывают. Когда bpf устройство присоединяет к интерфейсу или отсоединениям от интерфейса, это происходит. Режим касания объединится (бит или) режимы всех bpf устройств с помощью того интерфейса для этого dlt. При возврате ошибки из этой функции bpf попытка присоединения устройства, инициировавшая касание, перестанет работать. Если эта функция была вызвана bacuse, состояние касания уменьшалось (касание в, или останавливается), ошибка будет проигнорирована.
Оператор импорта
Objective C
#include <bpf.h>;Доступность
Доступный в OS X v10.5 и позже.
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Режим для ответвления. BPF_MODE_DISABLED/BPF_MODE_INPUT_OUTPUT и т.д.
Объявление
Objective C
typedef u_int32_t bpf_tap_mode;Оператор импорта
Objective C
#include <kpi_interface.h>;Доступность
Доступный в OS X v10.4 и позже.
Посмотрите раздел Overview выше для документации уровня заголовка.
-
Определение констант соединяет интерфейсом с семьями.
Объявление
Objective C
enum { BPF_MODE_DISABLED = 0, BPF_MODE_INPUT = 1, BPF_MODE_OUTPUT = 2, BPF_MODE_INPUT_OUTPUT = 3 };Константы
-
BPF_MODE_DISABLEDBPF_MODE_DISABLEDОтключите bpf.
Доступный в OS X v10.4 и позже.
-
BPF_MODE_INPUTBPF_MODE_INPUTВключите ввод только.
Доступный в OS X v10.4 и позже.
-
BPF_MODE_OUTPUTBPF_MODE_OUTPUTВключите вывод только.
Доступный в OS X v10.4 и позже.
-
BPF_MODE_INPUT_OUTPUTBPF_MODE_INPUT_OUTPUTВключите ввод и вывод.
Доступный в OS X v10.4 и позже.
Обсуждение
коснитесь режима
-
