Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка kpi_interface.h

Опции
Развертывание Target:

На этой странице

Ссылка kpi_interface.h

Этот заголовок определяет API для взаимодействия с сетевыми интерфейсами в ядре. Сетевой интерфейс KPI может использоваться, чтобы реализовать сетевые интерфейсы или присоединить протоколы к существующим интерфейсам.

Включенные заголовки

  • <TargetConditionals.h>

  • <sys/kernel_types.h>

  • <sys/_types/_sa_family_t.h>

Функции

  • Объявление

    Objective C

    errno_t ifaddr_address ( ifaddr_t ifaddr, struct sockaddr *out_addr, u_int32_t addr_size );

    Параметры

    ifaddr

    Интерфейсный адрес.

    out_addr

    sockaddr хранение для адреса.

    addr_size

    Размер хранения для адреса.

    Возвращаемое значение

    0 на успех

    Обсуждение

    Копирует адрес из ifaddr.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    sa_family_t ifaddr_address_family ( ifaddr_t ifaddr );

    Параметры

    ifaddr

    Интерфейсный адрес.

    Возвращаемое значение

    0 при отказе, семействе адресов на успехе.

    Обсуждение

    Возвращает семейство адресов адреса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifaddr_dstaddress ( ifaddr_t ifaddr, struct sockaddr *out_dstaddr, u_int32_t dstaddr_size );

    Параметры

    ifaddr

    Интерфейсный адрес.

    out_dstaddr

    sockaddr хранение для адреса назначения.

    dstaddr_size

    Размер хранения для адреса назначения.

    Возвращаемое значение

    0 на успех

    Обсуждение

    Копирует адрес назначения из ifaddr.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifaddr_t ifaddr_findbestforaddr ( const struct sockaddr *addr, ifnet_t interface );

    Параметры

    addr

    Удаленный адрес.

    interface

    Локальный интерфейс.

    Возвращаемое значение

    Ссылка на интерфейсный адрес.

    Обсуждение

    Считает лучший локальный адрес присвоенным определенному интерфейсу использовать при передаче с другим адресом. Постепенно увеличивает подсчет ссылок на ifaddr прежде, чем возвратиться к вызывающей стороне. Вызывающая сторона ответственна за вызов ifaddr_release.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifnet_t ifaddr_ifnet ( ifaddr_t ifaddr );

    Параметры

    ifaddr

    Интерфейсный адрес.

    Возвращаемое значение

    Ссылка на интерфейс адрес присоединена.

    Обсуждение

    Возвращает интерфейс, к которому присоединен адрес. Ссылка только допустима, пока не выпущен ifaddr. Если необходимо содержать ссылку на ifnet для дольше, чем Вы содержите ссылку на ifaddr, постепенно увеличиваете ссылку с помощью ifnet_reference.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifaddr_netmask ( ifaddr_t ifaddr, struct sockaddr *out_netmask, u_int32_t netmask_size );

    Параметры

    ifaddr

    Интерфейсный адрес.

    out_netmask

    sockaddr хранение для сетевой маски.

    netmask_size

    Размер хранения для сетевой маски.

    Возвращаемое значение

    0 на успех

    Обсуждение

    Копирует сетевую маску из ifaddr.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifaddr_reference ( ifaddr_t ifaddr );

    Параметры

    ifaddr

    Интерфейсный адрес.

    Возвращаемое значение

    0 на успех

    Обсуждение

    Постепенно увеличьте подсчет ссылок адреса, связанного к интерфейсу.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifaddr_release ( ifaddr_t ifaddr );

    Параметры

    ifaddr

    Интерфейсный адрес.

    Возвращаемое значение

    0 на успех

    Обсуждение

    Постепенно уменьшает подсчет ссылок и возможно освобождает адрес, связанный к интерфейсу.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifaddr_t ifaddr_withaddr ( const struct sockaddr *address );

    Параметры

    address

    Адрес для поиска.

    Возвращаемое значение

    Ссылка на интерфейсный адрес.

    Обсуждение

    Возвращает интерфейсный адрес с указанным адресом. Постепенно увеличивает подсчет ссылок на ifaddr прежде, чем возвратиться к вызывающей стороне. Вызывающая сторона ответственна за вызов ifaddr_release.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifaddr_t ifaddr_withdstaddr ( const struct sockaddr *destination );

    Параметры

    destination

    Место назначения для поиска.

    Возвращаемое значение

    Ссылка на интерфейсный адрес.

    Обсуждение

    Возвращает интерфейсный адрес для интерфейсного адреса, соответствующего месту назначения, когда применяется сетевая маска. Постепенно увеличивает подсчет ссылок на ifaddr прежде, чем возвратиться к вызывающей стороне. Вызывающая сторона ответственна за вызов ifaddr_release.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifaddr_t ifaddr_withnet ( const struct sockaddr *net );

    Параметры

    net

    Сеть для поиска.

    Возвращаемое значение

    Ссылка на интерфейсный адрес.

    Обсуждение

    Возвращает интерфейсный адрес для интерфейса с сетью, описанной сетью. Постепенно увеличивает подсчет ссылок на ifaddr прежде, чем возвратиться к вызывающей стороне. Вызывающая сторона ответственна за вызов ifaddr_release.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifaddr_t ifaddr_withroute ( int flags, const struct sockaddr *destination, const struct sockaddr *gateway );

    Параметры

    flags

    Маршрутизация флагов. См. net/route.h, RTF_GATEWAY и т.д.

    destination

    Место назначения для поиска.

    gateway

    Шлюз для поиска.

    Возвращаемое значение

    Ссылка на интерфейсный адрес.

    Обсуждение

    Возвращает интерфейсный адрес, данный место назначения и шлюз. Постепенно увеличивает подсчет ссылок на ifaddr прежде, чем возвратиться к вызывающей стороне. Вызывающая сторона ответственна за вызов ifaddr_release.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifmaddr_address ( ifmultiaddr_t ifmaddr, struct sockaddr *out_multicast, u_int32_t addr_size );

    Параметры

    out_multicast

    Хранение для sockaddr.

    addr_size

    Размер хранения.

    Возвращаемое значение

    0 на успехе.

    Обсуждение

    Копирует групповой адрес в out_multicast.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifnet_t ifmaddr_ifnet ( ifmultiaddr_t ifmaddr );

    Параметры

    ifmaddr

    Интерфейсный групповой адрес.

    Возвращаемое значение

    Ссылка на интерфейс.

    Обсуждение

    Возвращает интерфейс, к которому присоединен этот групповой адрес. Интерфейсный подсчет ссылок не ударен этой функцией. Интерфейс только допустим, пока Вы не выпускаете refernece к адресу multiast. Если необходимо поддержать указатель на ifnet, вызовите ifnet_reference, сопровождаемый ifnet_release, когда Вы закончены.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifmaddr_lladdress ( ifmultiaddr_t ifmaddr, struct sockaddr *out_link_layer_multicast, u_int32_t addr_size );

    Параметры

    out_link_layer_multicast

    Хранение для sockaddr.

    addr_size

    Размер хранения.

    Возвращаемое значение

    0 на успехе.

    Обсуждение

    Копирует групповой адрес канального уровня в out_link_layer_multicast.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifmaddr_reference ( ifmultiaddr_t ifmaddr );

    Параметры

    ifmaddr

    Интерфейсный групповой адрес.

    Возвращаемое значение

    0 на успехе. Если ifmaddr не будет допустим, только ошибка будет EINVAL.

    Обсуждение

    Постепенно увеличьте подсчет ссылок интерфейсного группового адреса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifmaddr_release ( ifmultiaddr_t ifmaddr );

    Параметры

    ifmaddr

    Интерфейсный групповой адрес.

    Возвращаемое значение

    0 на успехе. Если ifmaddr не будет допустим, только ошибка будет EINVAL.

    Обсуждение

    Постепенно уменьшите подсчет ссылок интерфейсного группового адреса. Если подсчет ссылок достигнет нуля, то ifmultiaddr будет удален из интерфейса, и ifmultiaddr будет освобожден.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_add_multicast ( ifnet_t interface, const struct sockaddr *maddr, ifmultiaddr_t *multicast );

    Параметры

    interface

    Интерфейс.

    maddr

    Групповой адрес (AF_UNSPEC/AF_LINK) для присоединения. Или физический адрес или логический адрес, который будет переведен в физический адрес.

    multicast

    Получающийся ifmultiaddr_t групповой адрес.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Присоединяется к многоадресной передаче и возвращает ifmultiaddr_t с подсчетом ссылок, постепенно увеличенным для Вас. Вы ответственны за постепенное уменьшение подсчета ссылок после вызова ifnet_remove_multicast и проверка, что у Вас больше нет ссылок на многоадресную передачу.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int8_t ifnet_addrlen ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    Длина адреса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_allocate ( const struct ifnet_init_params *init, ifnet_t *interface );

    Параметры

    init

    Начальные значения для интерфейса. Эти значения не могут быть изменены после того, как интерфейс был выделен.

    interface

    Интерфейс выделяется на успех.

    Возвращаемое значение

    Может возвратить ENOMEM, если существует недостаточно память или EEXIST, если интерфейс с тем же uniqueid и семьей был уже выделен и используется.

    Обсуждение

    Выделите ifnet_t с начальной буквой refcount 1. Много частей штабеля не делают должным образом refcount ifnet_t. Во избежание освобождения ifnet_t, в то время как некоторые части штабеля могут содержать ссылку на него, ifnet_ts только переработаны, никогда не освобождаются. Уникальный идентификатор используется, чтобы попытаться переработать тот же ifnet_t при выделении интерфейса. Например, для интерфейса Ethernet, аппаратный адрес платы Ethernet обычно используется для uniqueid. Если плата ПК будет демонтирована и вставлена снова, если Ethernet-адрес PC-карты будет использоваться, то тот же ifnet_t будет использоваться для карты во второй раз, когда это вставляется. В будущем, когда ifnet_t правильно refcounted всем штабелем, могут быть освобождены интерфейсы, и уникальные идентификаторы проигнорированы.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_attach ( ifnet_t interface, const struct sockaddr_dl *ll_addr );

    Параметры

    interface

    Интерфейс для присоединения.

    ll_addr

    Адрес канального уровня интерфейса. Это используется для заполнения первого ifaddr в списке адресов для интерфейса. Этот параметр не требуется для интерфейсов, таких как PPP, не имеющий никакого адреса канального уровня.

    Возвращаемое значение

    Возвратит ошибку, если будет что-то не так с интерфейсом.

    Обсуждение

    Присоединяет интерфейс к глобальному интерфейсному списку. Интерфейс должен быть установкой должным образом прежде, чем вызвать присоединение. Штабель будет брать ссылку в интерфейсе и содержать его, пока не вызовут ifnet_detach.

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_attach_protocol ( ifnet_t interface, protocol_family_t protocol_family, const struct ifnet_attach_proto_param *proto_details );

    Параметры

    interface

    Интерфейс.

    protocol_family

    Присоединяемое семейство протокола (PF_INET/PF_INET6/etc...).

    proto_details

    Подробные данные присоединяемого протокола.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Присоединяет протокол к интерфейсу.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_attach_protocol_v2 ( ifnet_t interface, protocol_family_t protocol_family, const struct ifnet_attach_proto_param_v2 *proto_details );

    Параметры

    interface

    Интерфейс.

    protocol_family

    Присоединяемое семейство протокола (PF_INET/PF_INET6/etc...).

    proto_details

    Подробные данные присоединяемого протокола.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Присоединяет протокол к интерфейсу с помощью более нового интерфейса стиля версии 2. До сих пор единственной разницей является поддержка пакетных цепочек, улучшающих производительность.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.5 и позже.

  • Объявление

    Objective C

    u_int64_t ifnet_baudrate ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    baudrate.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_capabilities_enabled ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения возможностей от.

    Возвращаемое значение

    Флаги. Флаги возможностей определяются в net/if.h

    Обсуждение

    Получите интерфейсные возможности, включенные в интерфейсе.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.7 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_capabilities_supported ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения возможностей от.

    Возвращаемое значение

    Флаги. Флаги возможностей определяются в net/if.h

    Обсуждение

    Получите интерфейсные возможности, поддерживаемые интерфейсом.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.7 и позже.

  • Объявление

    Objective C

    errno_t ifnet_detach ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для отсоединения.

    Возвращаемое значение

    0 на успехе, иначе errno ошибка.

    Обсуждение

    Отсоединяет интерфейс.

    Вызовите это, чтобы указать, что этот интерфейс больше не действителен (т.е. плата ПК была демонтирована). Эта функция начнет процесс удаления знания этого интерфейса от штабеля.

    Функция возвратится, прежде чем интерфейс отсоединяется. Функции, в которых Вы предоставили к интерфейсу, могут продолжать быть вызванными. Когда отсоединение будет завершено, Ваша отдельная функция будет вызвана. Ваш kext не должен разгружаться, пока отдельная функция не была вызвана. Когда подсчет ссылок достигнет нуля, интерфейс будет должным образом освобожден.

    Интерфейс не может быть присоединен снова. Необходимо вызвать ifnet_allocate для создания нового интерфейса для присоединения.

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_detach_protocol ( ifnet_t interface, protocol_family_t protocol_family );

    Параметры

    interface

    Интерфейс.

    protocol_family

    Семейство протокола протокола для отсоединения.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Отсоединяет протокол от интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_event ( ifnet_t interface, struct kern_event_msg *event_ptr );

    Параметры

    interface

    Интерфейс.

    event_ptr

    Указатель на kern_event структуру, описывающую событие.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Вызывает функцию события интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifnet_family_t ifnet_family ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения семьи от.

    Возвращаемое значение

    Интерфейсный тип семьи.

    Обсуждение

    Возвращает семью интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_find_by_name ( const char *ifname, ifnet_t *interface );

    Параметры

    name

    Имя интерфейса, включая любое число модуля (т.е. «en0»).

    interface

    Указатель на интерфейсную ссылку. Это будет заполнено в том, если будет найден соответствующий интерфейс.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Найдите интерфейс именем включая число модуля. Вызывающая сторона должна вызвать ifnet_release на любом ненулевом интерфейсном возвращаемом значении.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int16_t ifnet_flags ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения флагов от.

    Возвращаемое значение

    Флаги. Эти флаги определяются в net/if.h

    Обсуждение

    Возвращает установленные интерфейсные флаги.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    void ifnet_free_address_list ( ifaddr_t *addresses );

    Параметры

    addresses

    Массив ifaddr_ts.

    Обсуждение

    Освободите список адресов, возвращенных из ifnet_get_address_list. Постепенно уменьшает refcounts и освобождает память, используемую для массива ссылок.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    void ifnet_free_multicast_list ( ifmultiaddr_t *multicasts );

    Параметры

    multicasts

    Массив ссылок на групповые адреса.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Освобождает список многоадресных сообщений, возвращенных ifnet_get_multicast_list. Постепенно уменьшает refcount на каждом групповом адресе и освобождает массив.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_get_address_list ( ifnet_t interface, ifaddr_t **addresses );

    Параметры

    interface

    Интерфейс.

    addresses

    Указатель на NULL завершил массив ifaddr_ts.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получите список адресов в интерфейсе. Передача NULL для интерфейса возвратит список всех адресов. Адресам ударят их подсчет ссылок, таким образом, они не уйдут. Вызов ifnet_free_address_list постепенно уменьшит refcount и освободит массив. Если Вы хотите держаться за ссылку на ifaddr_t, несомненно, ударят подсчет ссылок прежде, чем вызвать ifnet_free_address_list.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_get_address_list_family ( ifnet_t interface, ifaddr_t **addresses, sa_family_t family );

    Параметры

    interface

    Интерфейс.

    addresses

    Указатель на NULL завершил массив ifaddr_ts.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получите список адресов в интерфейсе. Передача NULL для интерфейса возвратит список всех адресов. Адресам ударят их подсчет ссылок, таким образом, они не уйдут. Вызов ifnet_free_address_list постепенно уменьшит refcount и освободит массив. Если Вы хотите держаться за ссылку на ifaddr_t, несомненно, ударят подсчет ссылок прежде, чем вызвать ifnet_free_address_list. В отличие от ifnet_get_address_list, эта функция позволяет вызывающей стороне указать семейство адресов для получения списка только определенного типа адреса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_get_link_mib_data ( ifnet_t interface, void *mibData, u_int32_t *mibLen );

    Параметры

    interface

    Интерфейс.

    mibData

    Указатель для интервала для mibData, который будет скопирован в в.

    mibLen

    При вызове это должно быть размером буфера, переданного в mibData. По возврату это будет размером данных, скопированных в к mibData.

    Возвращаемое значение

    Возвращает ошибку, если размер буфера является слишком маленьким или нет никаких данных.

    Обсуждение

    Копирует данные ссылки MIB в в mibData, до mibLen байтов. Ошибка возвратов, если буфер является слишком маленьким для содержания всех данных MIB.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_get_link_mib_data_length ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    Возвращает число байтов данных МиБ, связанных с интерфейсом.

    Обсуждение

    Получите размер данных МиБ.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_get_multicast_list ( ifnet_t interface, ifmultiaddr_t **addresses );

    Параметры

    interface

    Интерфейс.

    multicasts

    Указатель на NULL завершил массив ссылок на групповые адреса.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получает список группового адреса, который интерфейс установлен получить. Эта функция выделяет и возвращает массив ссылок на различные групповые адреса. Многоадресным сообщениям ударили их подсчеты ссылок от Вашего имени. Вызов ifnet_free_multicast_list постепенно уменьшит подсчеты ссылок и освободит массив.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_get_tso_mtu ( ifnet_t interface, sa_family_t family, u_int32_t *mtuLen );

    Параметры

    interface

    Интерфейс.

    family

    Семья, которую разгружать MTU предусмотрен (AF_INET или AF_INET6)

    mtuLen

    Значение максимального MTU, поддерживаемого для интерфейса и семьи, обеспечило.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Размер сегмента TCP Segmentation Offload максимума возвратов для интерфейса

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_get_wake_flags ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    Свойства следа

    Обсуждение

    Возвращает набор свойств следа в интерфейсе.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    u_int8_t ifnet_hdrlen ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    Длина заголовка.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_index ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения индекса.

    Возвращаемое значение

    Индекс.

    Обсуждение

    Возвращает индекс интерфейса. Это индексное значение будет соответствовать индекс, который Вы нашли бы в sockaddr_dl или использующий if_nametoindex или if_indextoname в пространстве пользователя. Значение интерфейсного индекса не определено для в настоящее время не присоединяющегося интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_input ( ifnet_t interface, mbuf_t first_packet, const struct ifnet_stat_increment_param *stats );

    Параметры

    interface

    Интерфейс.

    first_packet

    Первый пакет в цепочке пакетов.

    stats

    Количества, в которых интегрируют к статистике. Интерфейсная статистика будет постепенно увеличена суммами, указанными в статистике. Этим параметром может быть NULL.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Входные пакеты от интерфейса. Демультиплексор интерфейса вызовут для определения протокола. Как только протокол определяется, интерфейсные фильтры и фильтры протокола вызовут. Оттуда, пакет будет передан зарегистрированному протоколу. Если будет ошибка, то mbuf цепочка будет освобождена.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_interface_family_find ( const char *module_string, ifnet_family_t *family_id );

    Параметры

    module_string

    Уникальная строка, идентифицирующая Вашу интерфейсную семью

    family_id

    По возврату, уникальному интерфейсному идентификатору семьи для использования с функциями ifnet_*. Этот идентификатор допустим, пока не перезагружается система.

    Возвращаемое значение

    0 на успехе, иначе errno ошибка.

    Обсуждение

    Ищите интерфейсный идентификатор семьи для строки. Если нет никакого интерфейсного идентификатора семьи, присвоенного для этой строки, новый интерфейсный идентификатор семьи создается и присваивается. Рекомендуется использовать ID пакета KEXT как строка для предотвращения коллизий с другим KEXTs. Работа поиска не оптимизирована так, модуль должен вызвать эту функцию один раз во время запуска и кэшировать интерфейсный идентификатор семьи. Интерфейсный идентификатор семьи для строки не будет повторно присвоен до системных перезагрузок.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    errno_t ifnet_ioctl ( ifnet_t interface, protocol_family_t protocol, unsigned long ioctl_code, void *ioctl_arg );

    Параметры

    interface

    Интерфейс.

    protocol

    Семейство протокола протокола для отправки ioctl в (может быть нуль). В то время как другие ioctls применяются только к интерфейсу, некоторые ioctls применяются к протоколу.

    ioctl_code

    ioctl для выполнения.

    ioctl_arg

    Любые параметры к ioctl.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Вызывает ioctl функцию интерфейса с переданными параметрами.

    Все неопределенные ioctls резервируются для будущего использования Apple. Если необходимо передать с kext использование ioctl, используйте SIOCSIFKPI и SIOCGIFKPI.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_lastchange ( ifnet_t interface, struct timeval *last_change );

    Параметры

    interface

    Интерфейс.

    last_change

    timeval структура для копирования в прошлый раз изменилась в на.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    void ifnet_list_free ( ifnet_t *interfaces );

    Параметры

    interfaces

    Массив интерфейсных ссылок от ifnet_list_get.

    Обсуждение

    Освободите список интерфейсов, возвращенных ifnet_list_get. Постепенно уменьшает подсчет ссылок в каждом интерфейсе и освобождает массив ссылок. Если Вы сохраняете ссылку на интерфейс, несомненно, постепенно увеличат подсчет ссылок прежде, чем вызвать ifnet_list_free.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_list_get ( ifnet_family_t family, ifnet_t **interfaces, u_int32_t *count );

    Параметры

    family

    Интерфейсная семья (т.е. IFNET_FAMILY_ETHERNET). Для нахождения интерфейсов всех семей используйте IFNET_FAMILY_ANY.

    interfaces

    Указатель на массив интерфейсных ссылок.

    count

    Указатель, который будет заполнен в числом соответствия интерфейсов в массиве.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Получите список присоединенных интерфейсов. Список будет установлен указать на массив, выделенный ifnet_list_get. Интерфейсы являются refcounted, и количества будут постепенно увеличены перед функциональными возвратами. Список интерфейсов должен быть освобожден с помощью ifnet_list_free.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_lladdr_copy_bytes ( ifnet_t interface, void *lladdr, size_t length );

    Параметры

    interface

    Интерфейс для копирования адреса канального уровня с.

    lladdr

    Буфер для копирования адреса канального уровня в в.

    length

    Длина буфера. Это значение должно соответствовать длину адреса канального уровня.

    Обсуждение

    Копирует байты адреса канального уровня в указанный буфер.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_llbroadcast_copy_bytes ( ifnet_t interface, void *addr, size_t bufferlen, size_t *addr_len );

    Параметры

    interface

    Интерфейс.

    addr

    Буфер для копирования широковещательного адреса в в.

    bufferlen

    Длина буфера в addr.

    addr_len

    По возврату, длине широковещательного адреса.

    lladdr_len

    Длина, в байтах, адреса канального уровня.

    Обсуждение

    Получает широковещательный адрес канального уровня для этого интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_metric ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    Метрика.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_mtu ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    MTU.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    const char * ifnet_name ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения имени от.

    Возвращаемое значение

    Указатель на имя.

    Обсуждение

    Возвращает указатель на имя интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    ifnet_offload_t ifnet_offload ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения разгружения от.

    Возвращаемое значение

    Флаги возможностей, см. ifnet_offload_t.

    Обсуждение

    Возвраты отмечают указание, какие операции могут быть разгружены к интерфейсу.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_output ( ifnet_t interface, protocol_family_t protocol_family, mbuf_t packet, void *route, const struct sockaddr *dest );

    Параметры

    interface

    Интерфейс.

    protocol_family

    Семейство протокола, генерирующего этот пакет (т.е. AF_INET).

    packet

    Пакет, который будет передан.

    route

    Указатель на структуру маршрутизации для этого пакета. Предвыходная функция определяет, может ли этим значением быть NULL или нет.

    dest

    Адрес назначения типа protocol_family. Это будет передано предвыходной функции. Если предвыходная функция не требует этого значения, можно передать NULL.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Обрабатывает исходящий пакет в интерфейсе путем вызова любых фильтров, предвыходной функции протокола, интерфейсной функции станка для заделки крепи, и наконец функции вывода интерфейса. protocol_family будет использоваться, чтобы применить фильтры протокола и определить, которые предварительно выводят функцию для вызова. Маршрут и dest параметры будут переданы предвыходной функции, определяемой для присоединения указанного протокола к указанному интерфейсу. ifnet_output будет всегда освобождать mbuf цепочку.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_output_raw ( ifnet_t interface, protocol_family_t protocol_family, mbuf_t packet );

    Параметры

    interface

    Интерфейс.

    protocol_family

    Семейство протокола, генерирующего этот пакет (т.е. AF_INET).

    packet

    Полностью сформированный пакет, который будет передан.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Дескрипторы и outbond необработанный пакет в интерфейсе путем вызова любых фильтров, сопровождаемых функцией вывода интерфейса. protocol_family может быть нулем. Если пакет будет из определенного протокола, то protocol_family будет использоваться для применения фильтров протокола. Все интерфейсные фильтры будут применены к исходящему пакету. Обработка, такие как вызов предварительного вывода протокола и интерфейсных функций станка для заделки крепи будет обойдена. Пакет пройдет через фильтры и будет отправлен в интерфейсе, как. ifnet_output_raw будет всегда освобождать пакетную цепочку.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_reference ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для постепенного увеличения подсчета ссылок.

    Возвращаемое значение

    Если интерфейс не допустим, может возвратить EINVAL.

    Обсуждение

    Постепенно увеличьте подсчет ссылок ifnet, чтобы гарантировать, что это не уйдет. Интерфейс должен уже иметь по крайней мере одну ссылку.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_release ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для постепенного уменьшения подсчета ссылок и возможно свободный.

    Возвращаемое значение

    Если интерфейс не допустим, может возвратить EINVAL.

    Обсуждение

    Выпустите ссылку ifnet, это может инициировать свободное, если подсчет ссылок достигает 0.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_remove_multicast ( ifmultiaddr_t multicast );

    Параметры

    multicast

    Многоадресная передача, которая будет удалена.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Заставляет интерфейс оставлять группу многоадресной передачи. Штабель отслеживает то, сколько раз ifnet_add_multicast вызвали для данного группового адреса. Многоадресная передача будет только удалена, когда число раз ifnet_remove_multicast вызвали, соответствует, число раз ifnet_add_multicast вызвали.

    Память для группового адреса фактически не освобождена, пока отдельный подсчет ссылок не достиг нуля. Некоторые части штабеля могут сохранить указатель на многоадресную передачу даже после того, как та многоадресная передача была удалена из интерфейса.

    Когда интерфейс отсоединяется, все многоадресные сообщения удалены. Если интерфейс многоадресной передачи передал в, больше не присоединяется, эта функция корректно возвратится, не выполняя работы.

    Это - ответственность за вызывающие стороны выпустить групповой адрес после вызывания этой функции.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_resolve_multicast ( ifnet_t ifp, const struct sockaddr *proto_addr, struct sockaddr *ll_addr, size_t ll_len );

    Параметры

    interface

    Интерфейс.

    proto_addr

    Адрес протокола, который будет преобразован в адрес канального уровня.

    ll_addr

    Хранение для получающегося адреса канального уровня.

    ll_len

    Продолжительность хранения для адреса канального уровня.

    Возвращаемое значение

    0 на успехе. EOPNOTSUPP указывает, что групповой адрес не поддерживался или не мог быть переведен. Другие ошибки могут указать другие отказы.

    Обсуждение

    Разрешает групповой адрес для присоединенного протокола к адресу канального уровня. Если адрес канального уровня будет передан в, то интерфейс проверит, что это - допустимый групповой адрес.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.5 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_addrlen ( ifnet_t interface, u_int8_t addrlen );

    Параметры

    interface

    Интерфейс.

    addrlen

    Новая длина адреса.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_baudrate ( ifnet_t interface, u_int64_t baudrate );

    Параметры

    interface

    Интерфейс.

    baudrate

    Новый baudrate.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_capabilities_enabled ( ifnet_t interface, u_int32_t new_caps, u_int32_t mask );

    Параметры

    interface

    Интерфейс для установки возможностей на.

    new_caps

    Значение возможностей, которые должны быть установлены или сброшены. Эти флаги определяются в net/if.h

    mask

    Какие возможности, которые должны быть затронуты. Эти флаги определяются в net/if.h

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Устанавливает интерфейсные возможности в new_caps. Эта функция позволяет Вам указать, какие возможности Вы хотите изменить использование маски. Ядро эффективно возьмет блокировку, затем установит флаги интерфейса в (if_capenable и ~mask) | (new_caps и маска).

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Обычно эта функция вызвана драйвером, когда интерфейс создается для указания, какая из поддерживаемых возможностей включена по умолчанию. Когда драйвер обрабатывает интерфейс ioctl SIOCSIFCAP, эта функция также предназначена, чтобы быть вызванной.

    Драйвер должен вызвать ifnet_set_offlad (), чтобы указать, что соответствующие аппаратные средства разгружают биты, которые будут использоваться сетевым стеком.

    Это - ошибка включить возможность, не отмеченную, как поддерживается интерфейсом.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.7 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_capabilities_supported ( ifnet_t interface, u_int32_t new_caps, u_int32_t mask );

    Параметры

    interface

    Интерфейс для установки возможностей на.

    new_caps

    Значение возможностей, которые должны быть установлены или сброшены. Эти флаги определяются в net/if.h

    mask

    Какие возможности, которые должны быть затронуты. Эти флаги определяются в net/if.h

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция позволяет Вам указать, какие возможности поддерживаются интерфейсом. Когда интерфейс присоединяется к системе, обычно эта функция вызвана драйвером. Маска позволяет управлять который возможность установить или сбросить. Ядро эффективно возьмет блокировку, затем установит флаги интерфейса в (if_capabilities и ~mask) | (new_caps и маска).

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.7 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_flags ( ifnet_t interface, u_int16_t new_flags, u_int16_t mask );

    Параметры

    interface

    Интерфейс для установки флагов на.

    new_flags

    Новый набор флагов, которые должны быть установлены. Эти флаги определяются в net/if.h

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Устанавливает интерфейсные флаги в new_flags. Эта функция позволяет Вам указать, какие флаги Вы хотите изменить использование маски. Ядро эффективно возьмет блокировку, затем установит флаги интерфейса в (if_flags и ~mask) | (new_flags и маска).

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_hdrlen ( ifnet_t interface, u_int8_t hdrlen );

    Параметры

    interface

    Интерфейс.

    hdrlen

    Новая длина заголовка.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_link_mib_data ( ifnet_t interface, void *mibData, u_int32_t mibLen );

    Параметры

    interface

    Интерфейс для определения номера модуля.

    mibData

    Указатель на данные.

    mibLen

    На длину данных указывают.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Устанавливает данные ссылки МиБ. ifnet_t сохранит указатель, Вы предоставляете и копируете mibLen байты с указателя каждый раз, когда используется sysctl для получения интерфейсных определенных данных MIB. Так как ifnet_t хранит указатель на Ваши данные вместо копии, можно обновить данные в адресе в любое время.

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_lladdr ( ifnet_t interface, const void *lladdr, size_t lladdr_len );

    Параметры

    interface

    Интерфейс адрес канального уровня изменяется на.

    lladdr

    Указатель на необработанный адрес канального уровня (указатель на 6-байтовый Ethernet-адрес для Ethernet).

    lladdr_len

    Длина, в байтах, адреса канального уровня.

    Обсуждение

    Устанавливает адрес канального уровня для этого интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_metric ( ifnet_t interface, u_int32_t metric );

    Параметры

    interface

    Интерфейс.

    metric

    Новая метрика.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_mtu ( ifnet_t interface, u_int32_t mtu );

    Параметры

    interface

    Интерфейс.

    mtu

    Новый MTU.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Устанавливает значение MTU в интерфейсной структуре. Вызывание этой функции не уведомит драйвер, что должен быть изменен MTU. Используйте надлежащий ioctl.

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_offload ( ifnet_t interface, ifnet_offload_t offload );

    Параметры

    interface

    Интерфейс.

    offload

    Новый набор флагов, указывающих, которые разгружают опции поддержки устройства.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Устанавливает битовое поле, чтобы указать, что специальное оборудование разгружает поддержку, предоставленную интерфейсом, таким как аппаратные контрольные суммы и VLAN. Это заменяет поле флагов if_hwassist. Любые флаги, нераспознанные штабелем, не будут установлены.

    Обратите внимание на то, что система автоматически установит интерфейсные возможности, соответствующие разгружать измененным флагам - т.е. драйвер не должен вызывать ifnet_set_capabilities_enabled () и ifnet_set_capabilities_supported ().

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_promiscuous ( ifnet_t interface, int on );

    Параметры

    interface

    Интерфейс для переключения неразборчивого режима на.

    on

    Если установлено, число promicuous по запросам будет постепенно увеличено. Если это будет первым requrest, то неразборчивый режим будет включен. Если это не будет установлено, то число разнородных клиентов будет постепенно уменьшено. Если это заставит число достигать нуля, то неразборчивый режим будет отключен.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Включите или отключите неразборчивый режим в интерфейсе. Интерфейс проводит внутренний подсчет неразборчивого режима числа раз, был включен. Когда это количество достигает нуля, неразборчивый режим только отключен. Обязательно отключите неразборчивый режим только один раз в течение каждого раза, когда Вы включаете его.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_stat ( ifnet_t interface, const struct ifnet_stats_param *stats );

    Параметры

    interface

    Интерфейс.

    counts

    Новые значения статистики.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Одно исключение имело бы место, где kext хочет обнулить все счетчики.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_tso_mtu ( ifnet_t interface, sa_family_t family, u_int32_t mtuLen );

    Параметры

    interface

    Интерфейс.

    family

    Семья, которую разгружать MTU предусмотрен (AF_INET или AF_INET6)

    mtuLen

    Максимальный размер сегмента поддерживается интерфейсом

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Размер сегмента TCP Segmentation Offload максимума наборов для интерфейса

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    errno_t ifnet_set_wake_flags ( ifnet_t interface, u_int32_t properties, u_int32_t mask );

    Параметры

    interface

    Интерфейс.

    properties

    Свойства, чтобы установить или сбросить.

    mask

    Маска свойств к набору сброса.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Устанавливает свойства следа используемого оборудования. Они обычно устанавливаются драйвером.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    void * ifnet_softc ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения хранения от.

    Возвращаемое значение

    Водительское частное хранение.

    Обсуждение

    Возвращает водительское частное хранение в интерфейсе.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_stat ( ifnet_t interface, struct ifnet_stats_param *out_stats );

    Параметры

    interface

    Интерфейс.

    out_stats

    Хранение для значений.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_stat_increment ( ifnet_t interface, const struct ifnet_stat_increment_param *counts );

    Параметры

    interface

    Интерфейс.

    counts

    Указатель на структуру, содержащую сумму для постепенного увеличения каждый счетчик. Любые количества, не появляющиеся в ifnet_counter_increment структуре, обрабатываются в штабеле.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. kext не должен вызывать эту функцию в интерфейсе, которым не владеет kext.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_stat_increment_in ( ifnet_t interface, u_int32_t packets_in, u_int32_t bytes_in, u_int32_t errors_in );

    Параметры

    interface

    Интерфейс.

    packets_in

    Число дополнительных пакетов получено.

    bytes_in

    Число дополнительных байтов получено.

    errors_in

    Число дополнительных получает ошибки.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. Эта функция позволяет драйверу обновлять входящие интерфейсные количества. Самое эффективное время для обновления этих количеств при вызове ifnet_input.

    Блокировка защищает количества, это делает инкрементные функции дорогими. Инкрементная функция обновит значение lastchanged.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_stat_increment_out ( ifnet_t interface, u_int32_t packets_out, u_int32_t bytes_out, u_int32_t errors_out );

    Параметры

    interface

    Интерфейс.

    packets_out

    Число дополнительных пакетов отправило.

    bytes_out

    Число дополнительных байтов отправило.

    errors_out

    Число дополнительных отправляет ошибки.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Эта функция предназначается, чтобы быть вызванной драйвером. Эта функция позволяет драйверу обновлять исходящие интерфейсные количества.

    Блокировка защищает количества, это делает инкрементные функции дорогими. Инкрементная функция обновит значение lastchanged.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    errno_t ifnet_touch_lastchange ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    0 на успехе иначе errno ошибка.

    Обсуждение

    Обновляет значение lastchange к теперь.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int8_t ifnet_type ( ifnet_t interface );

    Параметры

    interface

    Интерфейс.

    Возвращаемое значение

    Тип. См. net/if_types.h.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    u_int32_t ifnet_unit ( ifnet_t interface );

    Параметры

    interface

    Интерфейс для получения числа модуля от.

    Возвращаемое значение

    Число модуля.

    Обсуждение

    Возвращает число модуля интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

Обратные вызовы

  • Объявление

    Objective C

    /* Fast path - do not block or spend excessive amounts of time */ typedef errno_t ( *bpf_packet_func)( ifnet_t interface, mbuf_t data);

    Параметры

    interface

    Интерфейс, отправляемый или полученный на.

    data

    Пакет, который будет передан или получен.

    Возвращаемое значение

    Значение errno или нуль на успех.

    Обсуждение

    bpf_packet_func bpf_packet_func используется для прерывания входящих и исходящих пакетов. Функция касания никогда не будет освобождать mbuf. Функция касания только скопирует mbuf в в различные bpf дескрипторы файлов, касающиеся этого интерфейса.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *ifnet_add_proto_func)( ifnet_t interface, protocol_family_t protocol_family, const struct ifnet_demux_desc *demux_array, u_int32_t demux_count);

    Параметры

    interface

    Интерфейс протокол будет присоединен.

    protocol_family

    Семейство присоединяемого протокола.

    demux_array

    Массив дескрипторов демультиплексора, описывающих интерфейсные особенные методы идентификации пакетов, принадлежащих этому семейству протокола.

    demux_count

    Число дескрипторов демультиплексора в массиве.

    Возвращаемое значение

    Если результатом будет нуль, то обработка будет обычно продолжаться. Если результат будет чем-либо еще, то добавить протокол будет прерван.

    Обсуждение

    когда протокол присоединен к интерфейсу, if_add_proto_func вызывает штабель. Это дает интерфейсу возможность получить список структур описания протокола для демультиплексирования пакетов к этому протоколу (дескрипторы демультиплексора).

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *ifnet_check_multi)( ifnet_t interface, const struct sockaddr *mcast);

    Параметры

    The

    интерфейс.

    mcast

    Групповой адрес.

    Возвращаемое значение

    Нуль на успех, EADDRNOTAVAIL на недопустимой многоадресной передаче, EOPNOTSUPP для адресов интерфейс не понимает.

    Обсуждение

    ifnet_check_multi вызывают для каждого группового адреса, добавленного к интерфейсу. Это дает интерфейсу возможность отклонить недопустимые групповые адреса, прежде чем они будут присоединены к интерфейсу.

    Чтобы препятствовать тому, чтобы адрес был добавлен к Вашему многоадресному списку, возвратите EADDRNOTAVAIL. Если Вы не знаете, как анализировать/переводить адрес, возвратите EOPNOTSUPP.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *ifnet_del_proto_func)( ifnet_t interface, protocol_family_t protocol_family);

    Параметры

    interface

    Интерфейс протокол будет отсоединен от.

    protocol_family

    Семейство отсоединяемого протокола.

    Возвращаемое значение

    Если результатом будет нуль, то обработка будет обычно продолжаться. Если результат будет чем-либо еще, то отсоединение будет продолжаться, и ошибка будет возвращена к вызывающей стороне.

    Обсуждение

    когда протокол отсоединяется от интерфейса, if_del_proto_func вызывает штабель. Это дает интерфейсу возможность освободить любое хранение, связанное с этим определенным протоколом, бывшим присоединенным к этому интерфейсу.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *ifnet_demux_func)( ifnet_t interface, mbuf_t packet, char *frame_header, protocol_family_t *protocol_family);

    Параметры

    interface

    Интерфейс пакет был получен на.

    packet

    mbuf, содержащий пакет.

    frame_header

    Указатель на заголовок кадра.

    protocol_family

    По возврату семейство протокола, соответствующее пакет, должно быть сохранено здесь.

    Возвращаемое значение

    Если результатом будет нуль, то обработка будет обычно продолжаться. Если результатом будет EJUSTRETURN, то обработка остановится, но не будет освобожден пакет. Если результат будет чем-либо еще, то обработка остановится, и пакет будет освобожден.

    Обсуждение

    ifnet_demux_func вызывают для каждого входящего пакета для определения, какому семейству протокола пакет принадлежит. Эта информация тогда используется штабелем для определения который протокол передать пакет. Эта функция может возвратить семейства протокола для не присоединяющихся протоколов. Если семейство протокола не было привязано к интерфейсу, пакет будет отброшен.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef void ( *ifnet_detached_func)( ifnet_t interface);

    Параметры

    interface

    Отсоединенный интерфейс. событие.

    Обсуждение

    ifnet_detached_func вызывают, интерфейс отсоединяется из списка интерфейсов. Когда ifnet_detach вызывают, он может сразу не отсоединить интерфейс, если присоединяются протоколы. ifnet_detached_func используется, чтобы уведомить интерфейс, что это было отсоединено от сетевого стека. Это - последняя функция, которая будет вызвана в интерфейсе. Даже если ifnet_detacah вызвали, до этой функции возвраты Вы не должны разгружать kext, предоставляющий указатели функции к этому интерфейсу. Ваша функция отсоединения может быть вызвана во время Вашего вызова к ifnet_detach.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef void ( *ifnet_event_func)( ifnet_t interface, const struct kev_msg *msg);

    Параметры

    interface

    Интерфейс событие произошел на.

    event_ptr

    Указатель на kern_event структуру, описывающую событие.

    Обсуждение

    когда событие имеет место в определенном интерфейсе, ifnet_event_func вызывают.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *ifnet_framer_func)( ifnet_t interface, mbuf_t *packet, const struct sockaddr *dest, const char *dest_linkaddr, const char *frame_type # if KPI_INTERFACE_EMBEDDED , u_int32_t *prepend_len, u_int32_t *postpend_len # endif /* KPI_INTERFACE_EMBEDDED */ );

    Параметры

    interface

    Интерфейс пакет пересылается.

    packet

    Указатель на mbuf, содержащий пакет, вызывающая сторона может установить это в различный mbuf по возврату. Если функция frameout должна предварительно ожидать другой mbuf к цепочке для имения достаточного количества пространства для заголовка, это может произойти.

    dest

    Место назначения протокола верхнего уровня (т.е. IP-адрес).

    dest_linkaddr

    Адрес канального уровня, как определено предварительной функцией вывода протокола.

    frame_type

    Тип кадра, как определено предварительной функцией вывода протокола.

    prepend_len

    Длина предварительно ожидаемых байтов к mbuf. (ONLY, используемый, если KPI_INTERFACE_EMBEDDED определяется к 1),

    postpend_len

    Длина постожидаемых байтов к mbuf. (ONLY, используемый, если KPI_INTERFACE_EMBEDDED определяется к 1),

    Возвращаемое значение

    Если результатом будет нуль, то обработка будет обычно продолжаться. Если результатом будет EJUSTRETURN, то обработка остановится, но не будет освобожден пакет. Если результат будет чем-либо еще, то обработка остановится, и пакет будет освобожден.

    Обсуждение

    ifnet_framer_func вызывают для каждого исходящего пакета, чтобы дать интерфейсу возможность предварительно ожидать интерфейсные определенные заголовки.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *ifnet_ioctl_func)( ifnet_t interface, unsigned long cmd, void *data);

    Параметры

    interface

    Интерфейс ioctl отправляется в.

    proto_family

    Семейство протокола для обработки ioctl, может быть нуль ни для какого protocol_family.

    cmd

    ioctl команда.

    data

    Указатель на любые данные имел отношение к ioctl.

    Обсуждение

    ifnet_ioctl_func используется для передачи ioctls со штабеля на драйвер.

    Все неопределенные ioctls резервируются для будущего использования Apple. Если необходимо передать с kext использование ioctl, используйте SIOCSIFKPI и SIOCGIFKPI.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    /* Fast path - do not block or spend excessive amounts of time */ typedef errno_t ( *ifnet_output_func)( ifnet_t interface, mbuf_t data);

    Параметры

    interface

    Пересылаемый интерфейс.

    data

    Пакет, который будет отправлен.

    Обсуждение

    ifnet_output_func используется для передачи пакетов. Штабель передаст полностью сформированные пакеты, включая заголовок кадра, к функции ifnet_output для интерфейса. Драйвер ответственен за освобождение mbuf.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *ifnet_set_bpf_tap)( ifnet_t interface, bpf_tap_mode mode, bpf_packet_func callback);

    Обсуждение

    Осуждаемый. Укажите NULL. Вызовите bpf_tap_in/bpf_tap_out для всех пакетов.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *proto_media_detached)( ifnet_t ifp, protocol_family_t protocol);

    Параметры

    ifp

    Интерфейс.

    protocol_family

    Семейство протокола.

    Возвращаемое значение

    Посмотрите обсуждение.

    Обсуждение

    proto_media_detached уведомляет Вас, что был отсоединен Ваш протокол.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef void ( *proto_media_event)( ifnet_t ifp, protocol_family_t protocol, const struct kev_msg *event);

    Параметры

    ifp

    Интерфейс.

    protocol_family

    Семейство протокола.

    kev_msg

    Событие.

    Обсуждение

    proto_media_event вызывают для уведомления этого уровня интерфейсных определенных событий.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *proto_media_input)( ifnet_t ifp, protocol_family_t protocol, mbuf_t packet, char *header);

    Параметры

    ifp

    Интерфейс пакет был получен на.

    protocol_family

    Протокол пакета получен.

    packet

    Вводимый пакет.

    header

    Заголовок кадра.

    Возвращаемое значение

    Если результатом будет нуль, то вызывающая сторона предположит, что пакет был передан протоколу. Если результат будет ненулевым и не EJUSTRETURN, то вызывающая сторона освободит пакет.

    Обсуждение

    proto_media_input вызывают для всех входящих пакетов для определенного протокола в определенном интерфейсе. Эта функция регистрируется в интерфейсе с помощью ifnet_attach_protocol.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *proto_media_input_v2)( ifnet_t ifp, protocol_family_t protocol, mbuf_t packet);

    Параметры

    ifp

    Интерфейс пакет был получен на.

    protocol_family

    Протокол пакета получен.

    packet

    Вводимый пакет.

    Возвращаемое значение

    Если результатом будет нуль, то вызывающая сторона предположит, что пакеты были переданы протоколу. Если результат будет ненулевым и не EJUSTRETURN, то вызывающая сторона освободит пакеты.

    Обсуждение

    proto_media_input_v2 вызывают для всех входящих пакетов для определенного протокола в определенном интерфейсе. Эта функция регистрируется в интерфейсе с помощью ifnet_attach_protocolv2. proto_media_input_v2 отличается от proto_media_input, в котором его вызовут для списка пакетов вместо один раз для каждого отдельного пакета. Заголовок кадра может быть получен с помощью mbuf_pkthdr_header.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.5 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *proto_media_ioctl)( ifnet_t ifp, protocol_family_t protocol, unsigned long command, void *argument);

    Параметры

    ifp

    Интерфейс.

    protocol_family

    Семейство протокола.

    command

    ioctl команда.

    argument

    Параметр ioctl.

    Возвращаемое значение

    Посмотрите обсуждение.

    Обсуждение

    proto_media_event позволяет этому уровню обрабатывать ioctls. Когда ioctl обрабатывается, он передается интерфейсным фильтрам, фильтрам протокола, протоколу и интерфейсу. Если Вы не поддерживаете этот ioctl, возвратите EOPNOTSUPP. При успешной обработке ioctl возвратите нуль. При возврате ошибки кроме EOPNOTSUPP другие части штабеля могут не получить возможность обработать ioctl. При возврате EJUSTRETURN обработка остановится, и результат нуля будет возвращен к вызывающей стороне.

    Все неопределенные ioctls резервируются для будущего использования Apple. Если необходимо передать с kext использование ioctl, используйте SIOCSIFKPI и SIOCGIFKPI.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *proto_media_preout)( ifnet_t ifp, protocol_family_t protocol, mbuf_t *packet, const struct sockaddr *dest, void *route, char *frame_type, char *link_layer_dest);

    Параметры

    ifp

    Интерфейс пакет будет переслан.

    protocol_family

    Протокол отправляемого пакета (PF_INET/etc...).

    packet

    Отправляемый пакет.

    dest

    Адрес назначения протокольного уровня.

    route

    Указатель на структуру маршрутизации для пакета.

    frame_type

    Носители определенный тип кадра.

    link_layer_dest

    Носители определенное место назначения.

    Возвращаемое значение

    Если результатом будет нуль, то обработка будет обычно продолжаться. Если результат будет ненулевым, то обработка остановится. Если результат будет ненулевым и не EJUSTRETURN, то пакет будет освобожден вызывающей стороной.

    Обсуждение

    proto_media_preout вызывают непосредственно перед тем, как пакет передается. Это дает функции proto_media_preout возможность указать носители определенный тип кадра и место назначения.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *proto_media_resolve_multi)( ifnet_t ifp, const struct sockaddr *proto_addr, struct sockaddr_dl *out_ll, size_t ll_len);

    Параметры

    ifp

    Интерфейс.

    proto_addr

    Адрес протокола.

    out_ll

    sockaddr_dl для копирования многоадресной передачи канального уровня в в.

    ll_len

    Длина данных выделяется для out_ll.

    Возвращаемое значение

    Возвратите нуль на успехе или errno ошибочное значение при отказе.

    Обсуждение

    proto_media_resolve_multi вызывают, чтобы разрешить, что протокольный уровень mulitcast адресуется к групповому адресу канального уровня.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    typedef errno_t ( *proto_media_send_arp)( ifnet_t ifp, u_short arpop, const struct sockaddr_dl *sender_hw, const struct sockaddr *sender_proto, const struct sockaddr_dl *target_hw, const struct sockaddr *target_proto);

    Параметры

    ifp

    Интерфейс arp пакет должен быть переслан.

    protocol_family

    Семейство протокола адресов (PF_INET).

    arpop

    arp работа (обычно ARPOP_REQUEST или ARPOP_REPLY).

    sender_hw

    Значение для использования для поля аппаратного адреса отправителя. Если это - NULL, используйте аппаратный адрес интерфейса.

    sender_proto

    Значение для использования для поля адреса протокола отправителя. Это не будет NULL.

    target_hw

    Значение для использования для целевого аппаратного адреса. Если это - NULL, целевым аппаратным адресом в пакете ARP должен быть NULL, и место назначения канального уровня для спины должно быть широковещательной передачей. Если это не NULL, это значение должно использоваться и для места назначения канального уровня и для целевого аппаратного адреса.

    target_proto

    Целевой адрес протокола. Это не будет NULL.

    Возвращаемое значение

    Возвратите нуль на успехе или errno ошибочное значение при отказе.

    Обсуждение

    proto_media_send_arp вызывает штабель для генерации пакета ARP. Это поле в настоящее время только используется с IP. Эта функция должна проверить параметры и передать arp пакет с помощью информации, переданной в.

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

Типы данных

Посмотрите раздел 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 и позже.

  • Тип хранения для интерфейсной семьи.

    Объявление

    Objective C

    typedef u_int32_t ifnet_family_t;

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Флаги, указывающие разгружать поддержку интерфейса.

    Объявление

    Objective C

    typedef u_int32_t ifnet_offload_t;

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Тип хранения для семейства протокола.

    Объявление

    Objective C

    typedef u_int32_t protocol_family_t;

    Оператор импорта

    Objective C

    #include <kpi_interface.h>;

    Доступность

    Доступный в OS X v10.4 и позже.

  • Объявление

    Objective C

    struct ifnet_attach_proto_param { struct ifnet_demux_desc *demux_array; /* interface may/may not require */ u_int32_t demux_count; /* interface may/may not require */ proto_media_input input; /* required */ proto_media_preout pre_output; /* required */ proto_media_event event; /* optional */ proto_media_ioctl ioctl; /* optional */ proto_media_detached detached; /* optional */ proto_media_resolve_multi resolve; /* optional */ proto_media_send_arp send_arp; /* optional */ };

    Поля

    demux_array

    Массив ifnet_demux_desc структур, описывающих протокол.

    demux_count

    Число записей в массиве demux_array.

    input

    Функция, которую вызовут для входящих пакетов.

    pre_output

    Функция, которую вызовут для исходящих пакетов.

    event

    Функция, которую вызовут для интерфейсных событий.

    ioctl

    Функция, которая будет требоваться ioctls.

    detached

    Функция, которую вызовут для обработки отсоединения.

    Обсуждение

    Эта структура используется для присоединения протокола к интерфейсу. Эта структура обеспечивает различные функции для погрузочно-разгрузочных работ, связанных с протоколом в интерфейсе, а также информации для того, как демультиплексировать пакеты для этого протокола.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    struct ifnet_demux_desc { u_int32_t type; void *data; u_int32_t datalen; };

    Поля

    type

    Тип данных идентификатора (т.е. ETHER_DESC_ETYPE2)

    data

    Указатель на запись типа (т.е. указатель на 0x0800).

    datalen

    Число байтов данных раньше описывало пакет.

    Обсуждение

    Эта структура должна идентифицировать пакеты, принадлежащие определенному протоколу. Поддерживаемые типы являются определенным интерфейсом. Поддержка Ethernet ETHER_DESC_ETYPE2, ETHER_DESC_SAP и ETHER_DESC_SNAP. Тип определяет смещение в пакете, где данные будут соответствующими, а также контекст. Например, если ETHER_DESC_SNAP указан, единственный допустимый datalen равняется 5, и только в 5 байтах только будет соответствующим, когда заголовок пакета указывает, что пакет является пакетом SNAP.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    struct ifnet_init_params { /* used to match recycled interface */ const void *uniqueid; /* optional */ u_int32_t uniqueid_len; /* optional */ /* used to fill out initial values for interface */ const char *name; /* required */ u_int32_t unit; /* required */ ifnet_family_t family; /* required */ u_int32_t type; /* required */ ifnet_output_func output; /* required */ ifnet_demux_func demux; /* required */ ifnet_add_proto_func add_proto; /* required */ ifnet_del_proto_func del_proto; /* required */ ifnet_check_multi check_multi; /* required for non point-to-point interfaces */ ifnet_framer_func framer; /* optional */ void *softc; /* optional */ ifnet_ioctl_func ioctl; /* optional */ ifnet_set_bpf_tap set_bpf_tap; /* deprecated */ ifnet_detached_func detach; /* optional */ ifnet_event_func event; /* optional */ const void *broadcast_addr; /* required for non point-to-point interfaces */ u_int32_t broadcast_len; /* required for non point-to- point interfaces */ };

    Поля

    uniqueid

    Идентификатор, уникальный для этого экземпляра интерфейса.

    uniqueid_len

    Длина, в байтах, uniqueid.

    name

    Имя интерфейса (т.е. en).

    unit

    Число интерфейсного модуля (число модуля en0 0).

    family

    Интерфейсная семья.

    type

    Интерфейсный тип (см. sys/if_types.h). Должны быть меньше чем 256. Для новых типов используйте IFT_OTHER.

    output

    Функция вывода для интерфейса. Каждый пакет, который штабель пытается отправить через этот интерфейс, выйдет через эту функцию.

    demux

    Функция раньше определяла семейство протокола входящего пакета.

    add_proto

    Функция раньше присоединяла протокол к этому интерфейсу.

    del_proto

    Функция раньше удаляла протокол из этого интерфейса.

    framer

    Функцией, используемой для структурирования исходящих пакетов, может быть NULL.

    softc

    Драйвер определенное хранение. Это значение может быть получено от ifnet использование функции ifnet_softc.

    ioctl

    Функция раньше обрабатывала ioctls.

    set_bpf_tap

    Функция раньше устанавливала функцию bpf_tap.

    detach

    Функция, вызванная, чтобы позволить драйверу знать интерфейс, была отсоединена.

    event

    Функция для уведомления интерфейса различных интерфейсных определенных событий ядра.

    broadcast_addr

    Широковещательный адрес канального уровня для этого интерфейса.

    broadcast_len

    Длина широковещательного адреса канального уровня.

    Обсуждение

    Эта структура используется для определения различных свойств интерфейса при вызове ifnet_allocate. В то время как интерфейс присоединяется, копия этих значений будет сохранена в ifnet и не может быть изменена.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    struct ifnet_stat_increment_param { u_int32_t packets_in; u_int32_t bytes_in; u_int32_t errors_in; u_int32_t packets_out; u_int32_t bytes_out; u_int32_t errors_out; u_int32_t collisions; u_int32_t dropped; };

    Поля

    packets_in

    Число пакетов получено.

    bytes_in

    Число байтов получено.

    errors_in

    Число получает ошибки.

    packets_out

    Число пакетов передается.

    bytes_out

    Число байтов передается.

    errors_out

    Число ошибок передачи.

    collisions

    Число коллизий, замеченных этим интерфейсом.

    dropped

    Число пакетов отбрасывается.

    Обсуждение

    Эта структура используется инкремент счетчики на сетевом интерфейсе.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    struct ifnet_stats_param { u_int64_t packets_in; u_int64_t bytes_in; u_int64_t multicasts_in; u_int64_t errors_in; u_int64_t packets_out; u_int64_t bytes_out; u_int64_t multicasts_out; u_int64_t errors_out; u_int64_t collisions; u_int64_t dropped; u_int64_t no_protocol; };

    Поля

    packets_in

    Число пакетов получено.

    bytes_in

    Число байтов получено.

    errors_in

    Число получает ошибки.

    packets_out

    Число пакетов передается.

    bytes_out

    Число байтов передается.

    errors_out

    Число ошибок передачи.

    collisions

    Число коллизий, замеченных этим интерфейсом.

    dropped

    Число пакетов отбрасывается.

    Обсуждение

    Эта структура используется, получают и устанавливают интерфейсную статистику.

    Доступность

    Доступный в OS X v10.6 и позже.

Константы

Посмотрите раздел Overview выше для документации уровня заголовка.

  • BPF

    Определение констант соединяет интерфейсом с семьями.

    Объявление

    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 и позже.

    Обсуждение

    коснитесь режима

  • Определение констант соединяет интерфейсом с семьями.

    Объявление

    Objective C

    enum { IFNET_FAMILY_ANY = 0, IFNET_FAMILY_LOOPBACK = 1, IFNET_FAMILY_ETHERNET = 2, IFNET_FAMILY_SLIP = 3, IFNET_FAMILY_TUN = 4, IFNET_FAMILY_VLAN = 5, IFNET_FAMILY_PPP = 6, IFNET_FAMILY_PVC = 7, IFNET_FAMILY_DISC = 8, IFNET_FAMILY_MDECAP = 9, IFNET_FAMILY_GIF = 10, IFNET_FAMILY_FAITH = 11, /* deprecated */ IFNET_FAMILY_STF = 12, IFNET_FAMILY_FIREWIRE = 13, IFNET_FAMILY_BOND = 14, IFNET_FAMILY_CELLULAR = 15 };

    Константы

    • IFNET_FAMILY_ANY

      IFNET_FAMILY_ANY

      Интерфейс соответствия любого типа семьи.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_LOOPBACK

      IFNET_FAMILY_LOOPBACK

      Петлевой интерфейс программного обеспечения.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_ETHERNET

      IFNET_FAMILY_ETHERNET

      Интерфейс Ethernet.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_SLIP

      IFNET_FAMILY_SLIP

      Интерфейс SLIP.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_TUN

      IFNET_FAMILY_TUN

      Туннельный интерфейс.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_VLAN

      IFNET_FAMILY_VLAN

      Интерфейс виртуальной локальной сети.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_PPP

      IFNET_FAMILY_PPP

      Интерфейс PPP.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_PVC

      IFNET_FAMILY_PVC

      Интерфейс PVC.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_DISC

      IFNET_FAMILY_DISC

      Дисковый интерфейс.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_MDECAP

      IFNET_FAMILY_MDECAP

      Интерфейс MDECAP.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_GIF

      IFNET_FAMILY_GIF

      Универсальный туннельный интерфейс.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_FAITH

      IFNET_FAMILY_FAITH

      FAITH [перевод IPv4/IPv6] интерфейс.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_STF

      IFNET_FAMILY_STF

      6to4 интерфейс.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_FIREWIRE

      IFNET_FAMILY_FIREWIRE

      Интерфейс IEEE 1394 [Firewire].

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_BOND

      IFNET_FAMILY_BOND

      Виртуальный связанный интерфейс.

      Доступный в OS X v10.4 и позже.

    • IFNET_FAMILY_CELLULAR

      IFNET_FAMILY_CELLULAR

      Сотовый интерфейс.

      Доступный в OS X v10.7 и позже.

    Обсуждение

    Семьи

  • Интерфейс определения констант разгружает поддержку.

    Объявление

    Objective C

    enum { IFNET_CSUM_IP = 0x00000001, IFNET_CSUM_TCP = 0x00000002, IFNET_CSUM_UDP = 0x00000004, IFNET_CSUM_FRAGMENT = 0x00000008, IFNET_IP_FRAGMENT = 0x00000010, IFNET_CSUM_TCPIPV6 = 0x00000020, IFNET_CSUM_UDPIPV6 = 0x00000040, IFNET_IPV6_FRAGMENT = 0x00000080, IFNET_VLAN_TAGGING = 0x00010000, IFNET_VLAN_MTU = 0x00020000, IFNET_MULTIPAGES = 0x00100000, IFNET_TSO_IPV4 = 0x00200000, IFNET_TSO_IPV6 = 0x00400000, IFNET_TX_STATUS = 0x00800000 };

    Константы

    • IFNET_CSUM_IP

      IFNET_CSUM_IP

      Аппаратные средства вычислят контрольные суммы IPv4.

      Доступный в OS X v10.4 и позже.

    • IFNET_CSUM_TCP

      IFNET_CSUM_TCP

      Аппаратные средства вычислят контрольные суммы TCP.

      Доступный в OS X v10.4 и позже.

    • IFNET_CSUM_UDP

      IFNET_CSUM_UDP

      Аппаратные средства вычислят контрольные суммы UDP.

      Доступный в OS X v10.4 и позже.

    • IFNET_CSUM_FRAGMENT

      IFNET_CSUM_FRAGMENT

      Аппаратные средства будут контрольная сумма фрагменты IP.

      Доступный в OS X v10.4 и позже.

    • IFNET_IP_FRAGMENT

      IFNET_IP_FRAGMENT

      Аппаратные средства фрагментируют пакеты IP.

      Доступный в OS X v10.4 и позже.

    • IFNET_CSUM_TCPIPV6

      IFNET_CSUM_TCPIPV6

      Аппаратные средства вычислят контрольные суммы IPv6 TCP.

      Доступный в OS X v10.7 и позже.

    • IFNET_CSUM_UDPIPV6

      IFNET_CSUM_UDPIPV6

      Аппаратные средства вычислят контрольные суммы IPv6 UDP.

      Доступный в OS X v10.7 и позже.

    • IFNET_IPV6_FRAGMENT

      IFNET_IPV6_FRAGMENT

      Аппаратные средства фрагментируют пакеты IPv6.

      Доступный в OS X v10.7 и позже.

    • IFNET_VLAN_TAGGING

      IFNET_VLAN_TAGGING

      Аппаратные средства генерируют заголовки VLAN.

      Доступный в OS X v10.4 и позже.

    • IFNET_VLAN_MTU

      IFNET_VLAN_MTU

      Поддержка оборудования VLAN MTU.

      Доступный в OS X v10.4 и позже.

    • IFNET_MULTIPAGES

      IFNET_MULTIPAGES

      Драйвер способен к обработке пакетов, снижающихся от сетевого стека, которые находятся в фактически, но не в физически непрерывном промежутке внешних mbuf кластеров. В этом случае область данных пакета во внешнем mbuf кластере могла бы пересечь одну или более физических страниц, которые являются непересекающимися, в зависимости от интерфейса MTU и размера пакета. Такое использование больших, чем системные кластеры размера страницы сетевым стеком сделано для лучшей системной эффективности. Драйверы, использующие IOMbufNaturalMemoryCursor с интерфейсами getPhysicalSegmentsWithCoalesce и перечисляющие список векторов, должны установить этот флаг для возможного усиления в производительности во время объемной передачи данных.

      Доступный в OS X v10.5 и позже.

    • IFNET_TSO_IPV4

      IFNET_TSO_IPV4

      Разгрузка сегмента TCP IPv4 поддержки оборудования. Если Интерфейсные наборы драйверов этот флаг, TCP передаст большие кадры (до 64 КБ) как один кадр к адаптеру, который выполнит заключительное пакетирование. Максимальный сегмент TSO, поддерживаемый интерфейсом, может быть установлен с «ifnet_set_tso_mtu». Для получения реального MTU для соединения TCP, функция «mbuf_get_tso_requested» используется драйвером. Обратите внимание на то, что, если TSO будет активен, то все пакеты будут отмечены для TSO, не просто больших пакетов.

      Доступный в OS X v10.6 и позже.

    • IFNET_TSO_IPV6

      IFNET_TSO_IPV6

      Разгрузка сегмента TCP IPv6 поддержки оборудования. Если Интерфейсные наборы драйверов этот флаг, IPv6 TCP передаст большие кадры (до 64 КБ) как один кадр к адаптеру, который выполнит заключительное пакетирование. Максимальный сегмент TSO, поддерживаемый интерфейсом, может быть установлен с «ifnet_set_tso_mtu». Для получения реального MTU для соединения IPv6 TCP, функция «mbuf_get_tso_requested» используется драйвером. Обратите внимание на то, что, если TSO будет активен, то все пакеты будут отмечены для TSO, не просто больших пакетов.

      Доступный в OS X v10.6 и позже.

    • IFNET_TX_STATUS

      IFNET_TX_STATUS

      Поддержки драйвера, возвращаясь на состояние передачи пакетов (передача, перестаньте работать или другие ошибки) того, был ли пакет успешно передан на ссылке, или передача была прервана, или отказавшая передача.

      Доступный в OS X v10.9 и позже.

    Обсуждение

    Возможности

  • Интерфейс определения констант будит свойства.

    Объявление

    Objective C

    enum { IFNET_WAKE_ON_MAGIC_PACKET = 0x01 };

    Константы

    • IFNET_WAKE_ON_MAGIC_PACKET

      IFNET_WAKE_ON_MAGIC_PACKET

      След на волшебном пакете.

      Доступный в OS X v10.6 и позже.

    Обсуждение

    свойства следа