Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [kernel] создание таблицы роутинга, как лучше организовать структуру 
:(
    Опции темы
null56
Дата 27.10.2011, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



Всем привет
Сейчас решаю одну задачу, сложность которой заключается в том, чтобы быстро находить определенные записи в таблице, поэтому вопрос в том, как лучше организовать таблицу?
В общем моя основная цель создать некоторые таблицы (по аналогии таблицам роутинга ядра) и на основании этих таблиц уже принимать решение о маршрутизации.
Вот поля таблицы:
- исходный сетевой интерфейс (src_if) - скорее всего строковое значение, хотя надо посмотреть, может ядро ему индекс какой дает
- адрес отправителя (src_ip) -  целое
- адрес получателя (dst_ip) - целое
- выходной интерфейс (dst_if)

Мне интересные любые идея, как бы вы поступили для более быстрого поиска, конечно, мне хотелось бы использовать готовые структуры ядра для этого (деревья, хеши, списки и хз чо там еще), но если идея действительно толковая, то я с удовольствием реализую для нее всё что необходимо.
Пока я лишь думаю над использованием бинарных деревьев поиска, но я лишь начал думать и хочу услышать альтернативные решения

Заранее благодарен за помощь всем откликнувшемся, пойду пока изучу, как организован обычный роутинг в ядре

Это сообщение отредактировал(а) null56 - 27.10.2011, 14:00
PM MAIL   Вверх
null56
Дата 27.10.2011, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 721
Регистрация: 19.3.2008

Репутация: 4
Всего: 12



вообще покавыряю я лучше fib механизм, может его можно будет заточить под мои цели, чем придумывать велосипед, отпишусь позже, если получится
PM MAIL   Вверх
tzirechnoy
Дата 27.10.2011, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: 3
Всего: 16



Зачем бинарные? Используйте сбалансированные (в первую очередь BTREE+). 

Но если это какое-то из стандартных ядер (линукс там или что ещё такое, распространённое) -- то, скорее всего, задача создания большых таблиц для поиска в файерволле ужэ решэна.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0551 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.