2016-08-05 11 views
-1

Я работаю над проектом OpenFlow, и для этого требуется продлить протокол OpenFlow. Таким образом, мне также необходимо расширить Open vSwitch, чтобы применить новые функции, добавленные в OpenFlow. Для этого, прежде всего, я должен получить довольно глубокое представление о том, как Open vSwitch работает при обходе пакетов. Я просмотрел каждый файл «readme» из корневого каталога Open vSwitch, и на самом деле ни у кого из них нет достойной документации разработчика (как я видел, вообще нет документации для разработчиков). Исходный код также не содержит хотя бы одной строки комментария. Мне действительно кажется, что единственный способ пройти - просто использовать тонну printk(). Тем не менее, время, необходимое для получения минимального знания, просто наблюдая за «kern.log», было бы ужасно. Есть ли другое решение этой проблемы? Любые предложения о том, как я могу ускорить работу, по крайней мере лучше, чем решение printk(), этап обучения?Открытая документация разработчика vSwitch

+0

То, что вы должны прочитать, во многом будет зависеть от того, что вам нужно изменить. Вам нужны только новые сообщения, действия или поля OpenFlow? Используете ли вы ядро ​​или DPDK datapath? Вам нужно изменить ядро ​​Open vSwitch? – pchaigno

ответ

0

Чтобы получить первый обзор о том, как работает Open vSwitch, лучше всего, вероятно, прочитать NSDI 2015 paper. В частности, он описывает механизм кэширования Open vSwitch, его многочисленные оптимизации и недействительность кэша. Чтобы получить первое впечатление от архитектуры кода , я нашел, что porting documentation будет очень полезен.

Затем для общих настроек Open vSwitch (новое поле, действие или сообщение) вы найдете рекомендации по адресу very end of the FAQ. Если сначала вы начнете с такого рода настроек, вам придется изменить несколько перечислений и структур и исправить множество предупреждений. Я нашел очень ценным, чтобы получить более глубокое понимание кода.