Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > [kernel] создание таблицы роутинга |
Автор: null56 27.10.2011, 13:59 |
Всем привет Сейчас решаю одну задачу, сложность которой заключается в том, чтобы быстро находить определенные записи в таблице, поэтому вопрос в том, как лучше организовать таблицу? В общем моя основная цель создать некоторые таблицы (по аналогии таблицам роутинга ядра) и на основании этих таблиц уже принимать решение о маршрутизации. Вот поля таблицы: - исходный сетевой интерфейс (src_if) - скорее всего строковое значение, хотя надо посмотреть, может ядро ему индекс какой дает - адрес отправителя (src_ip) - целое - адрес получателя (dst_ip) - целое - выходной интерфейс (dst_if) Мне интересные любые идея, как бы вы поступили для более быстрого поиска, конечно, мне хотелось бы использовать готовые структуры ядра для этого (деревья, хеши, списки и хз чо там еще), но если идея действительно толковая, то я с удовольствием реализую для нее всё что необходимо. Пока я лишь думаю над использованием бинарных деревьев поиска, но я лишь начал думать и хочу услышать альтернативные решения Заранее благодарен за помощь всем откликнувшемся, пойду пока изучу, как организован обычный роутинг в ядре |
Автор: null56 27.10.2011, 17:07 |
вообще покавыряю я лучше fib механизм, может его можно будет заточить под мои цели, чем придумывать велосипед, отпишусь позже, если получится |
Автор: tzirechnoy 27.10.2011, 23:48 |
Зачем бинарные? Используйте сбалансированные (в первую очередь BTREE+). Но если это какое-то из стандартных ядер (линукс там или что ещё такое, распространённое) -- то, скорее всего, задача создания большых таблиц для поиска в файерволле ужэ решэна. |