Вход/Регистрация
UNIX: разработка сетевых приложений
вернуться

Стивенс Уильям Ричард

Шрифт:
RTM_MISS • Поиск этого адреса завершился неудачно rt_msghdr RTM_NEWSDDR • Адрес добавлен к интерфейсу ifa_msghdr RTM_NEWMDDR • Групповой адрес добавлен к интерфейсу ifma_msghdr RTM_REDIRECT • Ядро получило указание использовать другой маршрут rt_msghdr RTM_RESOLVE • Запрос на определение адреса канального уровня по адресу получателя rt_msghdr

На маршрутизирующем сокете происходит обмен пятью различными структурами, как показано в последнем столбце таблицы:

rt_msghdr
,
if_msghdr
,
if_announcemsghdr
,
ifma_msghdr
и
ifa_msghdr
. Эти структуры представлены в листинге 18.2.

Листинг 18.2.Пять структур, возвращаемых с маршрутизирующими сообщениями

struct rt_msghdr { /* из <net/route.h> */

u_short rtm_msglen; /* для пропуска некорректных сообщений */

u_char rtm_version; /* для обеспечения двоичной совместимости в будущем */

u_char rtm_type; /* тип сообщения */

u_short rtm_index; /* индекс интерфейса, с которым связан адрес */

int rtm_flags; /* флаги */

int rtm_addrs; /* битовая маска, идентифицирующая sockaddr (структуру адреса

сокета) в msg */

pid_t rtm_pid; /* идентификация отправителя */

int rtm_seq; /* для идентификации действия отправителем */

int rtm_errno; /* причина неудачного выполнения */

int rtm_use; /* из rtentry */

u_long rtm_inits; /* какую метрику мы инициализируем */

struct rt_metrics rtm_rmx; /* сами метрики */

};

struct if_msghdr { /* из <net/if.h> */

u_short ifm_msglen; /* для пропуска некорректных сообщений */

u_char ifm_version; /* для обеспечения двоичной совместимости в будущем */

u_char ifm_type; /* тип сообщения */

int ifm_addrs; /* как rtm_addrs */

int ifm_flags; /* значение if_flags */

u_short ifm_index; /* индекс интерфейса, с которым связан адрес */

struct if_data ifm_data; /* статистические и другие сведения */

};

struct ifa_msghdr { /* из <net/if.h> */

u_short ifam_msglen; /* для пропуска некорректных сообщений */

u_char ifam_version; /* для обеспечения двоичной совместимости в будущем */

u_char ifam_type; /* тип сообщения */

int ifam_addrs; /* как rtm_addrs */

int ifam_flags; /* значение ifa_flags */

u_short ifam_index; /* индекс интерфейса, с которым связан адрес */

int ifam_metric; /* значение ifa_metric */

};

struct ifma_msghdr { /* из <net/if.h> */

u_short ifmam_msglen; /* для пропуска некорректных сообщений */

  • Читать дальше
  • 1
  • ...
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: