On Sun, 2020-02-09 at 21:47 +0300, mesut aygün wrote:
Hi Sean
I did not prefer the vendor distro. I installed the native ocata release from scrath which i configured on myself.
I downloaded dpdk relase from source and compiled it and also binded the interface with dpdk through ovs.
While i was installing the neutron-ovs-agent, i couldnt start ovs db with neutron-ovs. Neutron ovs config files is not working with compiled ovs. How can i do that?
i would look at https://opendev.org/x/networking-ovs-dpdk for reference. specifcily the devstack plugin. i have not had time to update this problely for a year or two si it still has some legacy hacks like running ovs-dpdk under screen to mimic how devstack used to run services. i need to rewrite that at some point to use systemd but that plugins automates the process of compileing and instaling ovs-dpdk and the relevent ovsdb configuration and neutron/nova config file updates. if you are having issue with starting the ovs-db it is unrelated to openstack. but if you ment to say you wer having issue start the ovs neutron agent because it could not connect to the ovs db then its like that neutron is trying to connect over tcp and you have not exposed the ovs db over tcp as teh default is to use a unix socket, or vise vera the neutron agent can be configured to use ovs-vsctl instead of the python binding and connect via the unix socket and you may have only exposed it via tcp. i wont really have much time to debug this with you unfortunetly but hopefully networking-ovs-dpdk will help you figure out what you missed. i would focuse on ensureing ovs-dpdk is working propperly first before tryign to start teh neutron agent.
Thank you for helping
On Sun, 9 Feb 2020, 19:56 Sean Mooney, <smooney@redhat.com> wrote:
On Sun, 2020-02-09 at 01:09 +0300, mesut aygün wrote:
Hey,
I am working over dpdk installation with openstack ocata release. How can I use the neutron-openvswitch-agent-dpdk or anything else
instead
of neutron-openvswitch-agent?
in octa you can use the standared neutorn openvswitch agent with ovs-dpdk the only config option you need to set is [ovs]/datapath_type=netdev in the ml2_conf.ini on each of the compute nodes.
https://github.com/openstack/neutron/blob/9aa9a097e6c9f765a59eb572a5a816169d...
addtionally when installing ovs you need to configure it for dpdk. most distros now compile in support for dpdk into ovs so all you have to do to use it is configure it rahter then recompile ovs or install an addtional package.
there is some upstream docs on how to do that here http://docs.openvswitch.org/en/latest/intro/install/dpdk/
the clip note version is you need to allcoated hugepages on the host for ovs-dpdk to use and addtional hugepages for your vms. then you need to bind the nic you intend to use with dpdk to the vfio-pci driver. next you need to define some config options to test ovs about that and what cores dpdk should use.
sudo ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask=$OVS_PMD_CORE_MASK other_config:dpdk- init=True other_config:dpdk-lcore-mask=$OVS_CORE_MASK \ other_config:dpdk-mem-channels=4 other_config:dpdk-socket-mem=$OVS_SOCKET_MEM other_config:dpdk-hugepage- dir=$OVS_HUGEPAGE_MOUNT \ other_config:dpdk-extra=" --proc-type primary $pciAddressWhitelist " [ -n "$OVS_VHOST_USER_SOCKET_DIR" ] && sudo ovs-vsctl --no-wait set Open_vSwitch . other_config:vhost-sock- dir=$OVS_VHOST_USER_SOCKET_DIR
finally when you create the ovs bridges you need to set them to ues the netdev datapath although neutron will also do this its just a good habit to do it when first creating them once done you can add the physical nics to the br-ex or your provider bridge as type dpdk.
ovs-vsctl --may-exist add-port $bridge $nic -- set Interface $nic type=dpdk options:dpdk-devargs=$addr
with all that said that is how you install this manually if you are compiling form source. i would recomend looking at your openstack installer of choice to see if they have support or your disto vendors documentation as many installers have native support for ovs-dpdk and will automate it for you.
Which can I choose the correct packages with os dpdk versions?
I couldn't use the devstack versions!!
Best regards