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-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |