naveenjoy / networking-vpp Goto Github PK
View Code? Open in Web Editor NEWThis project forked from iawells/networking-vpp
ML2 Mechanism driver and small control plane for OpenVPP forwarder
License: Apache License 2.0
This project forked from iawells/networking-vpp
ML2 Mechanism driver and small control plane for OpenVPP forwarder
License: Apache License 2.0
[vagrant@localhost devstack]$ sudo service vpp status
Redirecting to /bin/systemctl status vpp.service
Jun 03 23:28:48 localhost.localdomain vpp[3207]: Segment 0: phys:0x35800000, len:20971520, virt:0x7f02c7800000, socket...ank:0
Jun 03 23:28:48 localhost.localdomain vpp[3207]: Segment 1: phys:0x7d000000, len:515899392, virt:0x7f0288a00000, socke...ank:0
Jun 03 23:28:48 localhost.localdomain vpp[3207]: PMD: eth_em_tx_queue_setup(): sw_ring=0x7f02c8729a40 hw_ring=0x7f02c8...2bb40
Jun 03 23:28:48 localhost.localdomain vpp[3207]: PMD: eth_em_rx_queue_setup(): sw_ring=0x7f02c8718900 hw_ring=0x7f02c8...19a00
Jun 03 23:37:38 localhost.localdomain vnet[3207]: PMD: eth_em_rx_init(): forcing scatter mode
Jun 03 23:37:38 localhost.localdomain vpp[3207]: PMD: eth_em_rx_init(): forcing scatter mode
Jun 03 23:37:38 localhost.localdomain vnet[3207]: EAL: Error enabling interrupts for fd 13 (Input/output error)
Jun 03 23:37:38 localhost.localdomain vnet[3207]: PMD: eth_em_start(): <<
Jun 03 23:37:38 localhost.localdomain vpp[3207]: EAL: Error enabling interrupts for fd 13 (Input/output error)
Jun 03 23:37:38 localhost.localdomain vpp[3207]: PMD: eth_em_start(): <<
Hint: Some lines were ellipsized, use -l to show in full.
When a VM is deleted the agent does not issue the call delete_vhostuser(idx).
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1836, in call
return self.wsgi_app(environ, start_response)
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/usr/lib64/python2.7/site-packages/flask_restful/init.py", line 271, in error_router
return original_handler(e)
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib64/python2.7/site-packages/flask_restful/init.py", line 268, in error_router
return self.handle_error(e)
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
response = self.full_dispatch_request()
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/usr/lib64/python2.7/site-packages/flask_restful/init.py", line 271, in error_router
return original_handler(e)
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
reraise(exc_type, exc_value, tb)
File "/usr/lib64/python2.7/site-packages/flask_restful/init.py", line 268, in error_router
return self.handle_error(e)
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
rv = self.dispatch_request()
File "/usr/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
return self.view_functionsrule.endpoint
File "/usr/lib64/python2.7/site-packages/flask_restful/init.py", line 477, in wrapper
resp = resource(_args, *_kwargs)
File "/usr/lib/python2.7/site-packages/flask/views.py", line 84, in view
return self.dispatch_request(_args, *_kwargs)
File "/usr/lib64/python2.7/site-packages/flask_restful/init.py", line 587, in dispatch_request
resp = meth(_args, *_kwargs)
File "/opt/stack/networking-vpp/networking_vpp/agent/server.py", line 269, in put
args['segmentation_id'])
File "/opt/stack/networking-vpp/networking_vpp/agent/server.py", line 232, in bind_interface_on_host
net_br_idx = self.network_on_host(net_type, seg_id)
File "/opt/stack/networking-vpp/networking_vpp/agent/server.py", line 129, in network_on_host
seg_id)
File "/opt/stack/networking-vpp/networking_vpp/agent/vpp.py", line 153, in create_vlan_subif
return t.sw_if_index
AttributeError: 'list' object has no attribute 'sw_if_index'
The VPP REST agent is only programmed to print a failure message to the console if the VPP port creation fails. The ML2 mechanism driver does a PUT of the port creation request to the agent and assumes that everything went well. This results in the creation of a "failed port" for the VM by ML2 that is not detected by the driver.
Solution:
Program the ML2 framework to detect the failure.
optionA) Use the existing ML2 messaging framework
optionB) Implement a callback mechanism
2016-06-08 14:04:11.556 WARNING networking_vpp.mech_vpp [req-ee3ea117-0389-467d-a696-fc0d93e8e3c8 None None] Your recursion check hit on activating port
2016-06-08 14:04:11.634 DEBUG neutron.plugins.ml2.db [req-ca1caee1-e811-412f-939a-507cce8ac943 neutron 045a85a4cdac434fb2ce3a0f48d8fb12] For port 4e6e915e-f2ed-4a9
9-a4e1-4c0e9f051efc, host sjo-smf-ubuntu-server-2, got binding levels [<neutron.plugins.ml2.models.PortBindingLevel[object at 7f88207e0f90] {port_id=u'4e6e915e-f2e
d-4a99-a4e1-4c0e9f051efc', host=u'sjo-smf-ubuntu-server-2', level=0, driver=u'vpp', segment_id=u'94bc56ec-bf3b-4930-aeb4-7563c6906cf5'}>] from (pid=5068) get_bindi
ng_levels /opt/stack/neutron/neutron/plugins/ml2/db.py:184
2016-06-08 14:04:11.673 ERROR networking_vpp.mech_vpp [req-ca1caee1-e811-412f-939a-507cce8ac943 neutron 045a85a4cdac434fb2ce3a0f48d8fb12] in postcommit, port is {'
status': 'ACTIVE', 'binding:host_id': u'sjo-smf-ubuntu-server-2', 'description': u'', 'allowed_address_pairs': [], 'extra_dhcp_opts': [], 'updated_at': '2016-06-08
T21:04:11', 'device_owner': u'compute:None', 'port_security_enabled': True, 'binding:profile': {}, 'fixed_ips': [{'subnet_id': u'b002726e-30a6-4404-8673-a80105c13d
af', 'ip_address': u'10.0.0.71'}, {'subnet_id': u'b64f2dd7-a58c-4b96-a535-bec964ea6480', 'ip_address': u'fd3e:e14d:50c0:0:f816:3eff:fef8:f53c'}], 'id': u'4e6e915e-
f2ed-4a99-a4e1-4c0e9f051efc', 'security_groups': [u'26e0d6d0-8c40-4cce-ad73-3d391d11e851'], 'device_id': u'c18ac37d-8719-47fc-8a33-c9ab9632d179', 'name': u'', 'adm
in_state_up': True, 'network_id': u'113c31d8-b17e-434d-a79e-544aeef8ac19', 'dns_name': None, 'binding:vif_details': {u'vhostuser_socket': u'/tmp/4e6e915e-f2ed-4a99
-a4e1-4c0e9f051efc', u'vhostuser_mode': u'client'}, 'binding:vnic_type': u'normal', 'binding:vif_type': u'vhostuser', 'tenant_id': u'4bc236cc3c264a0fb7afdf6ea45cb9
de', 'mac_address': u'fa:16:3e:f8:f5:3c', 'created_at': '2016-06-08T21:04:11'}
Traceback (most recent call last):
File "/usr/lib/python2.7/logging/init.py", line 861, in emit
msg = self.format(record)
File "/usr/local/lib/python2.7/dist-packages/oslo_log/handlers.py", line 73, in format
return logging.StreamHandler.format(self, record)
File "/usr/lib/python2.7/logging/init.py", line 734, in format
return fmt.format(record)
File "/usr/local/lib/python2.7/dist-packages/oslo_log/formatters.py", line 267, in format
return logging.Formatter.format(self, record)
File "/usr/lib/python2.7/logging/init.py", line 465, in format
record.message = record.getMessage()
File "/usr/lib/python2.7/logging/init.py", line 329, in getMessage
msg = msg % self.args
ValueError: unsupported format character ',' (0x2c) at index 64
Logged from file mech_vpp.py, line 221
File "/opt/stack/networking-vpp/networking_vpp/agent/server.py", line 233, in bind_interface_on_host
(iface, props) = self.create_interface_on_host(if_type, uuid, mac)
File "/opt/stack/networking-vpp/networking_vpp/agent/server.py", line 221, in create_interface_on_host
iface = self.vpp.create_vhostuser(path, mac)
File "/opt/stack/networking-vpp/networking_vpp/agent/vpp.py", line 105, in create_vhostuser
_check_retval(t)
File "/opt/stack/networking-vpp/networking_vpp/agent/vpp.py", line 43, in _check_retval
if t.retval != 0:
AttributeError: 'list' object has no attribute 'retval'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.