struct rtattr { unsigned short rta_len; /* Длина опции */ unsigned short rta_type; /* Тип опции */ /* данные */ };Управлять этими атрибутами можно только с помощью макросов RTA_* либо с помощью libnetlink, см. rtnetlink(3).
struct ifinfomsg { unsigned char ifi_family; /* AF_UNSPEC */ unsigned short ifi_type; /* тип устройства */ int ifi_index; /* индекс интерфейса */ unsigned int ifi_flags; /* флаги устройства */ unsigned int ifi_change; /* маска смены */ };ifi_flags содержит флаги устройства, см. netdevice(7); ifi_index является уникальным индексом интерфейса; ifi_change зарезервировано для использования в будущем и всегда должно быть равно 0xFFFFFFFF.
Атрибуты маршрутизации | ||
rta_type | тип значения | описание |
IFLA_UNSPEC | - | не указано. |
IFLA_ADDRESS | аппаратный адрес | адрес интерфейса (L2). |
IFLA_BROADCAST | аппаратный адрес | широковещательный адрес (L2). |
IFLA_IFNAME | asciiz строка | имя устройства. |
IFLA_MTU | unsigned int | MTU устройства. |
IFLA_LINK | int | тип соединения. |
IFLA_QDISC | asciiz строка | способ постановки в очередь. |
IFLA_STATS |
struct net_device_stats
| статистика интерфейса. |
struct ifaddrmsg { unsigned char ifa_family; /* Тип адреса */ unsigned char ifa_prefixlen;/* Длина префикса адреса */ unsigned char ifa_flags; /* Флаги адреса */ unsigned char ifa_scope; /* Область адреса */ int ifa_index; /* Индекс интерфейса */ };ifa_family является типом семейства адреса (в данный момент AF_INET или AF_INET6), ifa_prefixlen является длиной маски адреса, если она определена для семейства (как для IPv4), ifa_scope является областью адреса, ifa_index является индексом интерфейса, с которым связан адрес. ifa_flags - слово флагов: IFA_F_SECONDARY для вторичного адреса (старый интерфейс-псевдоним), IFA_F_PERMANENT для постоянного адреса, установленного пользователем, и других неописанных флагов.
Атрибуты | ||
rta_type | тип значения | описание |
IFA_UNSPEC | - | не указан. |
IFA_ADDRESS | raw-адрес протокола | адрес интерфейса |
IFA_LOCAL | raw-адрес протокола | локальный адрес |
IFA_LABEL | asciiz строка | имя интерфейса |
IFA_BROADCAST | raw-адрес протокола | широковещательный адрес. |
IFA_ANYCAST | raw-адрес протокола | адрес anycast |
IFA_CACHEINFO | struct ifa_cacheinfo | информация об адресе. |
struct rtmsg { unsigned char rtm_family; /* Семейство адресов маршрута */ unsigned char rtm_dst_len; /* Длина источника */ unsigned char rtm_src_len; /* Длина пути назначения */ unsigned char rtm_tos; /* Фильтр TOS */ unsigned char rtm_table; /* Идентификатор таблицы маршрутизации */ unsigned char rtm_protocol;/* Протокол маршрутизации; см. ниже */ unsigned char rtm_scope; /* См. ниже */ unsigned char rtm_type; /* См. ниже */ unsigned int rtm_flags; };
rtm_type | тип маршрута |
RTN_UNSPEC | неизвестный маршрут |
RTN_UNICAST | шлюз или прямой маршрут |
RTN_LOCAL | маршрут локального интерфейса |
RTN_BROADCAST |
локальный многоадресный маршрут (посылаемый как многоадресная передача)
|
RTN_ANYCAST |
локальный многоадресный маршрут (посылаемый как одноадресная передача)
|
RTN_MULTICAST | многоадресный маршрут |
RTN_BLACKHOLE | маршрут "выброса" пакетов (packet dropping) |
RTN_UNREACHABLE | недоступный пункт назначения |
RTN_PROHIBIT | маршрут отказа от пакетов (packet rejection) |
RTN_THROW | продолжить поиск маршрута в другой таблице |
RTN_NAT | правило преобразования сетевого адреса |
RTN_XRESOLVE |
ссылка на внешнюю систему определения адресов (не включено в систему)
|
rtm_protocol | источник маршрута. |
RTPROT_UNSPEC | неизвестен |
RTPROT_REDIRECT |
перенаправление ICMP (в данный момент не используется)
|
RTPROT_KERNEL | ядро |
RTPROT_BOOT | при загрузке |
RTPROT_STATIC | администратор |
RT_SCOPE_UNIVERSE | глобальный маршрут |
RT_SCOPE_SITE |
внутренний маршрут в локальной автономной системе
|
RT_SCOPE_LINK | маршрут этого соединения |
RT_SCOPE_HOST | маршрут в локальной машине |
RT_SCOPE_NOWHERE | пункт назначения не существует |
rtm_flags может иметь следующие значения:
RTM_F_NOTIFY |
если маршрут меняется, оповестить пользователя по rtnetlink
|
RTM_F_CLONED | маршрут - клон другого маршрута |
RTM_F_EQUALIZE | эквалайзер многоадресного вещания (еще не включен в программу) |
RT_TABLE_UNSPEC | неуказанная таблица маршрутизации |
RT_TABLE_DEFAULT | таблица по умолчанию |
RT_TABLE_MAIN | основная таблица |
RT_TABLE_LOCAL | локальная таблица |
Атрибуты | ||
rta_type | тип значения | описание |
RTA_UNSPEC | - | игнорируется. |
RTA_DST | адрес протокола | адрес назначения маршрута. |
RTA_SRC | адрес протокола | адрес источника маршрута. |
RTA_IIF | int | индекс входного интерфейса. |
RTA_OIF | int | индекс выходного интерфейса. |
RTA_GATEWAY | адрес протокола | шлюз маршрута |
RTA_PRIORITY | int | приоритет маршрута |
RTA_PREFSRC | ||
RTA_METRICS | int | метрика маршрута |
RTA_MULTIPATH | ||
RTA_PROTOINFO | ||
RTA_FLOW | ||
RTA_CACHEINFO |
struct ndmsg { unsigned char ndm_family; int ndm_ifindex; /* Индекс интерфейса */ __u16 ndm_state; /* Состояние */ __u8 ndm_flags; /* Флаги */ __u8 ndm_type; }; struct nda_cacheinfo { __u32 ndm_confirmed; __u32 ndm_used; __u32 ndm_updated; __u32 ndm_refcnt; };ndm_state является битовой маской со следующими состояниями:
NUD_INCOMPLETE | запись кэша, определяемая в данный момент |
NUD_REACHABLE | подтвержденная работающая запись кэша |
NUD_STALE | устаревшая запись кэша |
NUD_DELAY | запись, ожидающая сигнал таймера |
NUD_PROBE | запись, вновь проверяемая в данный момент |
NUD_FAILED | неверная запись кэша |
NUD_NOARP | устройство без кэша назначений |
NUD_PERMANENT | статическая запись |
NTF_PROXY | запись прокси arp |
NTF_ROUTER | маршрутизатор IPv6 |
NDA_UNSPEC | неизвестный тип |
NDA_DST | адрес назначения кэша соседних машин на сетевом уровне |
NDA_LLADDR | адрес соседней машины уровня соединения |
NDA_CACHEINFO | статистические данные кэша. |
struct tcmsg { unsigned char tcm_family; int tcm_ifindex; /* индекс интерфейса */ __u32 tcm_handle; /* манипулятор способа */ __u32 tcm_parent; /* родительский способ */ __u32 tcm_info; };
Атрибуты | ||
rta_type | тип значения | описание |
TCA_UNSPEC | - | не указано |
TCA_KIND | asciiz строка | название способа постановки в очередь |
TCA_OPTIONS | последовательность байтов | далее следуют опции способа |
TCA_STATS | struct tc_stats | статистика способа. |
TCA_XSTATS | зависит от способа | статистика, специфичная для модуля. |
TCA_RATE | struct tc_estimator | ограничение темпа. |
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |