OVS :
Добавление нового действия в OVS - это долгая история, за которой вы можете следить.Вот список наиболее важных файлов кода, которые вы должны изменить:
- lib / ofp-actions.c : определение нового действия, кодирование, декодирование и форматирование
- include / openvswitch / ofp-actions.h : распространяющееся действие
- datapath / linux / compat / include / linux / openvswitch.h : определение на уровне ядра
- lib / odp-util.c : определение длины байтов действия
- ofproto / ofproto-dpif-xlate.c : этот файл обрабатывает соединениемежду ядром и пользовательским пространством.особенно если нет совпадения для нового потока
- datapath / flow_netlink.c : определить байты действия в ядре
- datapath / actions.c : выполнение действия
Для выполнения полных шагов я настоятельно рекомендую следующие Пользовательские действия Open vSwitch
После изменения в исходных файлах используйте эти командыв корневой директории OVS остановить, сделать и запустить его.убедитесь, что ваша версия gcc совпадает с версией, с которой были скомпилированы ваши заголовочные файлы Linux.
ovs-ctl stop
ovs-dpctl del-dp ovs-system
rmmod openvswitch
make clean
make modules_install clean
./boot.sh
./configure --with-linux=/lib/modules/`uname -r`/build --enable-Werror
make
make install
make modules_install
config_file="/etc/depmod.d/openvswitch.conf"
for module in datapath/linux/*.ko; do
modname="$(basename ${module})"
echo "override ${modname%.ko} * extra" >> "$config_file"
echo "override ${modname%.ko} * weak-updates" >> "$config_file"
done
depmod -a
modprobe openvswitch
lsmod | grep openvswitch
mkdir -p /usr/local/etc/openvswitch
ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
mkdir -p /usr/local/var/run/openvswitch
ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=db:Open_vSwitch,Open_vSwitch,manager_options --pidfile --detach --log-file
ovs-vsctl --no-wait init
ovs-vswitchd --pidfile --detach --log-file
export PATH=$PATH:/usr/local/share/openvswitch/scripts
ovs-ctl start
Контроллер :
В контроллере выдолжен иметь возможность создавать и нажимать Action для переключения.У меня нет информации о том, как определить новое действие в OpenDayLight, но я знаю, что в Floodlight это достигается с помощью Loxigen.
Если у вас возникли проблемы, не стесняйтесь связаться со мной.