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

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

Разработчик

Ссылка in_arp.h

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

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

Ссылка in_arp.h

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

  • <sys/kernel_types.h>

Функции

  • Объявление

    Objective C

    errno_t inet_arp_handle_input ( ifnet_t ifp, u_int16_t arpop, const struct sockaddr_dl *sender_hw, const struct sockaddr_in *sender_ip, const struct sockaddr_in *target_ip );

    Параметры

    interface

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

    arp_op

    arp работа, ARPOP_REQUEST или ARPOP_REPLY

    sender_hw

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

    sender_ip

    IP-адрес отправителя от arp полезной нагрузки.

    target_ip

    Целевой IP-адрес от arp полезной нагрузки.

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

    0 на успехе или errno ошибке оценивают отказом.

    Обсуждение

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

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

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

    Objective C

    #include <in_arp.h>;

    Доступность

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

  • Объявление

    Objective C

    void inet_arp_init_ifaddr ( ifnet_t interface, ifaddr_t ipaddr );

    Параметры

    interface

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

    ipaddr

    IP интерфейсный адрес.

    Обсуждение

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

    Когда SIOCSIFADDR ioctl будет обработан, параметр данных будет ifaddr_t. Если это - IP-адрес, inet_arp_init_ifaddr нужно вызвать. Это обычно выполняется в ioctl обработчике присоединения протокола.

    Когда обработчик событий для присоединения протокола получает событие KEV_DL_LINK_ADDRESS_CHANGED, обработчик событий должен вызвать inet_arp_init_ifaddr для каждого интерфейсного IP-адреса.

    Для примера см. bsd/net/ether_inet_pr_module.c в xnu. Поиск inet_arp_init_ifaddr.

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

    Objective C

    #include <in_arp.h>;

    Доступность

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

  • Объявление

    Objective C

    errno_t inet_arp_lookup ( ifnet_t interface, const struct sockaddr_in *ip_dest, struct sockaddr_dl *ll_dest, size_t ll_dest_len, route_t hint, mbuf_t packet );

    Параметры

    interface

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

    ip_dest

    IP место назначения пакета.

    ll_dest

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

    ll_dest_len

    Длина буфера для ll_dest.

    hint

    Любая подсказка маршрутизации передается из протокола.

    packet

    Передаваемый пакет.

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

    Может возвратить ошибку, такую как EHOSTDOWN или ENETUNREACH. Если эта функция возвращает EJUSTRETURN, пакет был поставлен в очередь и будет отправлен, когда получен arp ответ. Если какое-либо другое значение возвращается, вызывающая сторона ответственна за избавление от пакета.

    Обсуждение

    Эта функция проверит таблицу маршрутизации на кэшируемую arp запись или инициирует запрос arp для разрешения IP-адреса к адресу канального уровня.

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

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

    Objective C

    #include <in_arp.h>;

    Доступность

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