Зарегистрируйте новый тип XFRM ⇐ Linux
Зарегистрируйте новый тип XFRM
Я работаю над реализацией RFC. Короче говоря, этот RFC предлагает решение для сжатия заголовков внутри полезной нагрузки пакета IPsec ESP.
Я собирался разработать модуль ядра Linux. Однако это невозможно из-за ограничения номеров протоколов в коде ядра Linux, см.: https://github.com/torvalds/linux/blob/ ... ate.c#L260
Мой RFC использует собственный протокол номер 142, где ESP использует 50, а IPcomp — 106. Если мы не можем зарегистрировать собственный тип xfrm, каково будет решение?
Принято ли делать «сырой» патч?
Если у вас есть ответ, мне интересно! Заранее спасибо!
Изменить: пример xml_register_type с пользовательским номером протокола
#include #include #include #include #include #include #define MY_CUSTOM_PROTOCOL 142 статическая константная структура xfrm_type my_custom_xfrm_type = { .владелец = ЭТОТ_МОДУЛЬ, .proto = МОЙ_ПОЛЬЗОВАТЕЛЬСКИЙ_ПРОТОКОЛ, }; статический int __init my_custom_module_init (void) { int err = xfrm_register_type(&my_custom_xfrm_type, AF_INET); если (ошибка < 0) { printk(KERN_INFO "Невозможно добавить тип"); } еще { printk(KERN_INFO "Добавленный тип"); } вернуть ошибку; } static void __exit my_custom_module_exit (void) { xfrm_unregister_type(&my_custom_xfrm_type, AF_INET); } Module_init (my_custom_module_init); module_exit (my_custom_module_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Ваше имя"); MODULE_DESCRIPTION("Пользовательский модуль XFRM"); Выход:
insmod: ОШИБКА: не удалось вставить модуль ./custom_type.ko: Протокол не поддерживается
Я работаю над реализацией RFC. Короче говоря, этот RFC предлагает решение для сжатия заголовков внутри полезной нагрузки пакета IPsec ESP.
Я собирался разработать модуль ядра Linux. Однако это невозможно из-за ограничения номеров протоколов в коде ядра Linux, см.: https://github.com/torvalds/linux/blob/ ... ate.c#L260
Мой RFC использует собственный протокол номер 142, где ESP использует 50, а IPcomp — 106. Если мы не можем зарегистрировать собственный тип xfrm, каково будет решение?
Принято ли делать «сырой» патч?
Если у вас есть ответ, мне интересно! Заранее спасибо!
Изменить: пример xml_register_type с пользовательским номером протокола
#include #include #include #include #include #include #define MY_CUSTOM_PROTOCOL 142 статическая константная структура xfrm_type my_custom_xfrm_type = { .владелец = ЭТОТ_МОДУЛЬ, .proto = МОЙ_ПОЛЬЗОВАТЕЛЬСКИЙ_ПРОТОКОЛ, }; статический int __init my_custom_module_init (void) { int err = xfrm_register_type(&my_custom_xfrm_type, AF_INET); если (ошибка < 0) { printk(KERN_INFO "Невозможно добавить тип"); } еще { printk(KERN_INFO "Добавленный тип"); } вернуть ошибку; } static void __exit my_custom_module_exit (void) { xfrm_unregister_type(&my_custom_xfrm_type, AF_INET); } Module_init (my_custom_module_init); module_exit (my_custom_module_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("Ваше имя"); MODULE_DESCRIPTION("Пользовательский модуль XFRM"); Выход:
insmod: ОШИБКА: не удалось вставить модуль ./custom_type.ko: Протокол не поддерживается
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Зарегистрируйте MPEG-4 как перетаскиваемый тип, используя pyobjc на MacOS
Anonymous » » в форуме Python - 0 Ответы
- 22 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проверьте, если тип (a) == Тип (b) или тип (a) == Тип (b с удаленной константой) кратко
Anonymous » » в форуме C++ - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-