Зарегистрируйте новый тип XFRMLinux

Anonymous
Зарегистрируйте новый тип XFRM

Сообщение Anonymous »


Я работаю над реализацией 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: Протокол не поддерживается

Вернуться в «Linux»