Ссылка 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_DISABLED
BPF_MODE_DISABLED
Отключите bpf.
Доступный в OS X v10.4 и позже.
-
BPF_MODE_INPUT
BPF_MODE_INPUT
Включите ввод только.
Доступный в OS X v10.4 и позже.
-
BPF_MODE_OUTPUT
BPF_MODE_OUTPUT
Включите вывод только.
Доступный в OS X v10.4 и позже.
-
BPF_MODE_INPUT_OUTPUT
BPF_MODE_INPUT_OUTPUT
Включите ввод и вывод.
Доступный в OS X v10.4 и позже.
Обсуждение
коснитесь режима
-