Hi, 1. ryu.app.ofp_rest (ofctl_rest?) is not necessary. The ryu-agent's error occurred because neutron-server died or not started. 2. The error of neutron-server means that connection with Ryu controller failed. ryu-manager must be started before neutron-server. 3. The cause of the timeout of the L3 agent is the same as ryu-agent's, probably. 4. I'm not sure, but I think that there were some inconsistency of a state.
Please try the following order: 1. stop ryu-manager, neutron-server, all agents 2. start ryu-manager 3. start neutron-server 4. start agents Thanks, Kaneko 2014-06-04 0:36 GMT+09:00 马超 <doit...@gmail.com>: > --4-- > hub: uncaught exception: Traceback (most recent call last): > File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line 52, in > _launch > func(*args, **kwargs) > File "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py", > line 256, in _event_loop > handler(ev) > File "/usr/local/lib/python2.7/dist-packages/ryu/app/quantum_adapter.py", > line 409, in conf_switch_set_handler > self._conf_switch_set_ovsdb_addr(ev.dpid, ev.value) > File "/usr/local/lib/python2.7/dist-packages/ryu/app/quantum_adapter.py", > line 398, in _conf_switch_set_ovsdb_addr > ovs_switch.set_ovsdb_addr(dpid, value) > File "/usr/local/lib/python2.7/dist-packages/ryu/app/quantum_adapter.py", > line 184, in set_ovsdb_addr > self.update_port(port.ofport, port.name, True) > File "/usr/local/lib/python2.7/dist-packages/ryu/app/quantum_adapter.py", > line 289, in update_port > self.ifaces.update_key(iface_id, QuantumIfaces.KEY_PORTS, p) > File "/usr/local/lib/python2.7/dist-packages/ryu/lib/quantum_ifaces.py", > line 111, in update_key > key, iface[key], value) > ValueError: ('unmatched updated %s %s -> %s', 'ports', [{'ofport': 4, > 'datapath_id': 173724158938190, 'name': 'tap34677896-7d'}], {'ofport': 6, > 'datapath_id': 173724158938190, 'name': 'qr-34677896-7d'}) > > result: > [[[5]]] > unchanged > result: > [[u'internal']] > unchanged > > > > 2014-06-03 18:30 GMT+08:00 马超 <doit...@gmail.com>: >> >> thanks, I had changed the order in app_list, and it worked fine >> >> I got this whitout any flow entry: >> # sudo ovs-ofctl dump-flows br-int >> NXST_FLOW reply (xid=0x4): >> >> some info: >> --1-- >> in ryu-agent.log: >> CRITICAL neutron [-] Timeout while waiting on RPC response - topic: >> "q-plugin", RPC method: "get_ofp_rest_api" info: "<unknown>" >> I have append ryu.app.ofp_rest to app_list >> >> --2-- >> the neutron/server.log shows: >> ERROR neutron.common.legacy [-] Skipping unknown group key: >> firewall_driver >> ERROR neutron.service [-] Unrecoverable error: please check log for >> details. >> TRACE neutron.service Traceback (most recent call last): >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/service.py", line 99, in >> serve_wsgi >> TRACE neutron.service service.start() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/service.py", line 68, in start >> TRACE neutron.service self.wsgi_app = _run_wsgi(self.app_name) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/service.py", line 112, in >> _run_wsgi >> TRACE neutron.service app = config.load_paste_app(app_name) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/common/config.py", line 144, in >> load_paste_app >> TRACE neutron.service app = deploy.loadapp("config:%s" % config_path, >> name=app_name) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 247, in >> loadapp >> TRACE neutron.service return loadobj(APP, uri, name=name, **kw) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 272, in >> loadobj >> TRACE neutron.service return context.create() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in >> create >> TRACE neutron.service return self.object_type.invoke(self) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 144, in >> invoke >> TRACE neutron.service **context.local_conf) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 56, in >> fix_call >> TRACE neutron.service val = callable(*args, **kw) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/urlmap.py", line 28, in >> urlmap_factory >> TRACE neutron.service app = loader.get_app(app_name, >> global_conf=global_conf) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 350, in >> get_app >> TRACE neutron.service name=name, global_conf=global_conf).create() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in >> create >> TRACE neutron.service return self.object_type.invoke(self) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 144, in >> invoke >> TRACE neutron.service **context.local_conf) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 56, in >> fix_call >> TRACE neutron.service val = callable(*args, **kw) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/auth.py", line 59, in >> pipeline_factory >> TRACE neutron.service app = loader.get_app(pipeline[-1]) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 350, in >> get_app >> TRACE neutron.service name=name, global_conf=global_conf).create() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 710, in >> create >> TRACE neutron.service return self.object_type.invoke(self) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/loadwsgi.py", line 146, in >> invoke >> TRACE neutron.service return fix_call(context.object, >> context.global_conf, **context.local_conf) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/paste/deploy/util.py", line 56, in >> fix_call >> TRACE neutron.service val = callable(*args, **kw) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/api/v2/router.py", line 72, in >> factory >> TRACE neutron.service return cls(**local_config) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/api/v2/router.py", line 76, in >> __init__ >> TRACE neutron.service plugin = manager.NeutronManager.get_plugin() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 206, in >> get_plugin >> TRACE neutron.service return cls.get_instance().plugin >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 201, in >> get_instance >> TRACE neutron.service cls._create_instance() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/openstack/common/lockutils.py", >> line 247, in inner >> TRACE neutron.service retval = f(*args, **kwargs) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 195, in >> _create_instance >> TRACE neutron.service cls._instance = cls() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/manager.py", line 120, in __init__ >> TRACE neutron.service self.plugin = plugin_klass() >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/neutron/plugins/ryu/ryu_neutron_plugin.py", >> line 130, in __init__ >> TRACE neutron.service self.client.update_network(nw_id) >> TRACE neutron.service File >> "/usr/local/lib/python2.7/dist-packages/ryu/app/client.py", line 92, in >> update_network >> TRACE neutron.service self._do_request('PUT', self.path_network % >> network_id) >> TRACE neutron.service File >> "/usr/local/lib/python2.7/dist-packages/ryu/app/client.py", line 55, in >> _do_request >> TRACE neutron.service conn.request(method, url, body, headers) >> TRACE neutron.service File "/usr/lib/python2.7/httplib.py", line 973, in >> request >> TRACE neutron.service self._send_request(method, url, body, headers) >> TRACE neutron.service File "/usr/lib/python2.7/httplib.py", line 1007, >> in _send_request >> TRACE neutron.service self.endheaders(body) >> TRACE neutron.service File "/usr/lib/python2.7/httplib.py", line 969, in >> endheaders >> TRACE neutron.service self._send_output(message_body) >> TRACE neutron.service File "/usr/lib/python2.7/httplib.py", line 829, in >> _send_output >> TRACE neutron.service self.send(msg) >> TRACE neutron.service File "/usr/lib/python2.7/httplib.py", line 791, in >> send >> TRACE neutron.service self.connect() >> TRACE neutron.service File "/usr/lib/python2.7/httplib.py", line 772, in >> connect >> TRACE neutron.service self.timeout, self.source_address) >> TRACE neutron.service File >> "/usr/lib/python2.7/dist-packages/eventlet/green/socket.py", line 59, in >> create_connection >> TRACE neutron.service raise error, msg >> TRACE neutron.service error: [Errno 111] ECONNREFUSED >> >> --3-- >> in l3-agent.log: >> Failed reporting state! >> TRACE neutron.agent.l3_agent Traceback (most recent call last): >> TRACE neutron.agent.l3_agent File >> "/usr/lib/python2.7/dist-packages/neutron/agent/l3_agent.py", line 815, in >> _report_state >> TRACE neutron.agent.l3_agent self.use_call) >> TRACE neutron.agent.l3_agent File >> "/usr/lib/python2.7/dist-packages/neutron/agent/rpc.py", line 72, in >> report_state >> TRACE neutron.agent.l3_agent return self.call(context, msg, >> topic=self.topic) >> TRACE neutron.agent.l3_agent File >> "/usr/lib/python2.7/dist-packages/neutron/openstack/common/rpc/proxy.py", >> line 130, in call >> TRACE neutron.agent.l3_agent exc.info, real_topic, msg.get('method')) >> TRACE neutron.agent.l3_agent Timeout: Timeout while waiting on RPC >> response - topic: "q-plugin", RPC method: "report_state" info: "<unknown>" >> TRACE neutron.agent.l3_agent >> WARNING neutron.openstack.common.loopingcall [-] task run outlasted >> interval by 56.007145 sec >> >> >> ERROR neutron.agent.l3_agent [-] Failed synchronizing routers >> TRACE neutron.agent.l3_agent Traceback (most recent call last): >> TRACE neutron.agent.l3_agent File >> "/usr/lib/python2.7/dist-packages/neutron/agent/l3_agent.py", line 723, in >> _sync_routers_task >> TRACE neutron.agent.l3_agent context, router_ids) >> TRACE neutron.agent.l3_agent File >> "/usr/lib/python2.7/dist-packages/neutron/agent/l3_agent.py", line 76, in >> get_routers >> TRACE neutron.agent.l3_agent topic=self.topic) >> TRACE neutron.agent.l3_agent File >> "/usr/lib/python2.7/dist-packages/neutron/openstack/common/rpc/proxy.py", >> line 130, in call >> TRACE neutron.agent.l3_agent exc.info, real_topic, msg.get('method')) >> TRACE neutron.agent.l3_agent Timeout: Timeout while waiting on RPC >> response - topic: "q-l3-plugin", RPC method: "sync_routers" info: >> "<unknown>" >> >> >> >> >> >> 2014-05-27 20:42 GMT+08:00 Yoshihiro Kaneko <ykaneko0...@gmail.com>: >> >>> Hi, >>> >>> 2014-05-27 14:08 GMT+09:00 马超 <doit...@gmail.com>: >>> (snip) >>> > /etc/ryu/ryu.conf >>> > >>> > [DEFAULT] >>> > # app_lists = $RYU_APPS >>> > # mac address based isolation >>> > # app_lists = ryu.app.simple_isolation,ryu.app.rest >>> > # vlan >>> > >>> > #app_lists=ryu.app.quantum_adapter,ryu.app.rest,ryu.app.rest_conf_switch,ryu.app.rest_quantum,ryu.app.rest_tunnel,ryu.app.simple_vlan >>> > # GRE tunneling >>> > >>> > app_lists=ryu.app.quantum_adapter,ryu.app.rest,ryu.app.rest_conf_switch,ryu.app.rest_quantum,ryu.app.rest_tunnel,ryu.app.tunnel_port_updater,ryu.app.gre_tunnel >>> >>> Please define gre_tunnel before quantum_adapter. >>> >>> app_lists=ryu.app.gre_tunnel,ryu.app.quantum_adapter,ryu.app.rest,ryu.app.rest_conf_switch,ryu.app.rest_quantum,ryu.app.rest_tunnel,ryu.app.tunnel_port_updater >>> >>> Probably this is a bug of ryu. >>> >>> Thanks, >>> Kaneko >>> >>> > >>> > # wsapi_host = $RYU_API_HOST >>> > # wsapi_port = $RYU_API_PORT >>> > # ofp_listen_host = $RYU_OFP_HOST >>> > # ofp_tcp_listen_port = $RYU_OFP_PORT >>> > wsapi_host = 10.0.0.203 >>> > wsapi_port = 8080 >>> > ofp_listen_host = 10.0.0.203 >>> > ofp_tcp_listen_port = 6633 >>> > >>> > # the followings must be set according to neutron settings >>> > # neutron_url = http://$Q_HOST:$Q_PORT >>> > # neutron_admin_username = $Q_ADMIN_USERNAME >>> > # neutron_admin_password = $SERVICE_PASSWORD >>> > # neutron_admin_tenant_name = $SERVICE_TENANT_NAME >>> > >>> > #neutron_admin_auth_url=$KEYSTONE_SERVICE_PROTOCOL://$KEYSTONE_SERVICE_HOST:$KEYSTONE_AUTH_PORT/v2.0 >>> > # neutron_auth_strategy = $Q_AUTH_STRATEGY >>> > # neutron_controller_addr = tcp:$RYU_OFP_HOST:$RYU_OFP_PORT >>> > neutron_url = http:// 10.0.0.202:9696 >>> > neutron_admin_username = neutron >>> > neutron_admin_password = 123456 >>> > neutron_admin_tenant_name = service >>> > neutron_admin_auth_url = http:// 10.0.0.202:5000/v2.0 >>> > neutron_auth_strategy = keystone >>> > neutron_controller_addr = tcp:10.0.0.203:6633 >>> > >>> > >>> > >>> >> > >>> >> > Q2: >>> >> > I try to run ryu-manager /root/ryu/ryu/app/tunnel_port_updater.py >>> >> > /root/ryu/ryu/app/rest_quantum.py >>> >> > /root/ryu/ryu/app/rest_conf_switch.py >>> >> > /root/ryu/ryu/ofctl_rest.py >>> >> > >>> >> > even thought I set ovs-vsctl set-controller br-int >>> >> > tcp:10.0.0.203:6633 >>> >> > on >>> >> > both network and compute node, and config in ryu.conf, it still >>> >> > shows: >>> >> > >>> >> > hub: uncaught exception: Traceback (most recent call last): >>> >> > File "/usr/local/lib/python2.7/dist-packages/ryu/lib/hub.py", line >>> >> > 52, >>> >> > in >>> >> > _launch >>> >> > func(*args, **kwargs) >>> >> > File >>> >> > "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py", >>> >> > line 256, in _event_loop >>> >> > handler(ev) >>> >> > File "/root/ryu/ryu/app/quantum_adapter.py", line 370, in >>> >> > dp_handler >>> >> > ovs_switch = self._get_ovs_switch(dpid) >>> >> > File "/root/ryu/ryu/app/quantum_adapter.py", line 353, in >>> >> > _get_ovs_switch >>> >> > self.logger) >>> >> > File "/root/ryu/ryu/app/quantum_adapter.py", line 139, in __init__ >>> >> > raise ValueError('option neutron_controller_addr must be >>> >> > speicfied') >>> >> > ValueError: option neutron_controller_addr must be speicfied >>> >> >>> >> Please read this page: >>> >> >>> >> https://github.com/osrg/ryu/wiki/configuration_openstack_havana_with_ryu >>> >> >>> > >>> > I do read this page, and config as it suggest, but somehow it didn't >>> > work. >>> > >>> >> >>> >> > >>> >> > Q3: >>> >> > is there any way to check whether the ryu-controller is running >>> >> > without >>> >> > problems? >>> >> >>> >> There are many kind of the problem, I think that there is not the >>> >> simple >>> >> way. >>> >> For example... >>> >> - watching ryu-manager's log >>> >> - confirm a connection with OVS >>> >> $ sudo ovs-vsctl show >>> >> fd908bb0-dd7e-45f5-9a01-78456d88510d >>> >> Manager "ptcp:6634" >>> >> Bridge br-int >>> >> Controller "tcp:192.168.122.60:6633" >>> >> is_connected: true >>> >> ... >>> > >>> > This part is ok, I set Controller "tcp:****:6633" manually. >>> > >>> >> >>> >> >>> >> - confirm a flow table >>> >> $ sudo ovs-ofctl dump-flows br-int >>> >> NXST_FLOW reply (xid=0x4): >>> >> cookie=0x0, duration=371.119s, table=0, n_packets=7, n_bytes=558, >>> >> idle_age=361, in_port=1,dl_src=fa:16:3e:ab:3a:c9 >>> >> actions=set_tunnel:0x2,resubmit(,1) >>> >> cookie=0x0, duration=367.167s, table=0, n_packets=6, n_bytes=480, >>> >> idle_age=358, in_port=2,dl_src=fa:16:3e:80:fd:49 >>> >> actions=set_tunnel:0x2,resubmit(,1) >>> >> cookie=0x0, duration=371.119s, table=0, n_packets=0, n_bytes=0, >>> >> idle_age=371, priority=16384,in_port=1 actions=drop >>> >> cookie=0x0, duration=367.167s, table=0, n_packets=0, n_bytes=0, >>> >> idle_age=367, priority=16384,in_port=2 actions=drop >>> >> cookie=0x0, duration=371.12s, table=1, n_packets=13, >>> >> n_bytes=1038, idle_age=358, priority=8192,tun_id=0x2 >>> >> actions=resubmit(,2) >>> >> cookie=0x0, duration=371.119s, table=1, n_packets=0, n_bytes=0, >>> >> idle_age=371, priority=16384,tun_id=0x2,dl_dst=ff:ff:ff:ff:ff:ff >>> >> actions=resubmit(,2) >>> >> cookie=0x0, duration=371.12s, table=2, n_packets=13, >>> >> n_bytes=1038, idle_age=358, priority=8192,tun_id=0x2 actions=drop >>> >> cookie=0x0, duration=371.12s, table=2, n_packets=0, n_bytes=0, >>> >> idle_age=371, tun_id=0x2,dl_dst=fa:16:3e:ab:3a:c9 actions=output:1 >>> >> cookie=0x0, duration=371.12s, table=2, n_packets=0, n_bytes=0, >>> >> idle_age=371, hard_age=367, >>> >> priority=16384,tun_id=0x2,dl_dst=ff:ff:ff:ff:ff:ff >>> >> actions=output:1,output:2 >>> >> cookie=0x0, duration=367.171s, table=2, n_packets=0, n_bytes=0, >>> >> idle_age=367, tun_id=0x2,dl_dst=fa:16:3e:80:fd:49 actions=output:2 >>> >> >>> > this part is not work.... >>> > >>> >> >>> >> I suggests trying devstack with ryu-plugin until you get familiar with >>> >> Ryu. >>> >> >>> >> https://github.com/osrg/ryu/wiki/RYU-Openstack-Havana-environment-HOWTO >>> >> >>> >> Thanks, >>> >> Kaneko >>> >> >>> >> > >>> >> > thank you! >>> >> > >>> >> > >>> >> > >>> >> > >>> >> > 2014-05-23 17:34 GMT+08:00 Yoshihiro Kaneko <ykaneko0...@gmail.com>: >>> >> >> >>> >> >> Hi, >>> >> >> >>> >> >> 2014-05-21 12:04 GMT+09:00 马超 <doit...@gmail.com>: >>> >> >> > Hi >>> >> >> > >>> >> >> > I have Havana with three node: Controller, Network and Compute >>> >> >> > >>> >> >> > Q1: neutron-server is running on both Controller and Network >>> >> >> > node >>> >> >> > according to "OpenStack Installation Guide for Ubuntu 12.04", >>> >> >> > witch >>> >> >> > node >>> >> >> > should Ryu controller run on ? >>> >> >> >>> >> >> neutron-server should be run on controller node only. >>> >> >> Usually Ryu controller is run on controller node, but any node is >>> >> >> ok. >>> >> >> >>> >> >> > >>> >> >> > Q2: if Ryu controller run on Controller (or Network) node, the >>> >> >> > other >>> >> >> > node >>> >> >> > should config neutron-plugin-ryu? >>> >> >> >>> >> >> You need configure neutron-plugin-ryu on controller node. >>> >> >> (but it is unrelated which node to run Ryu controller on.) >>> >> >> >>> >> >> > >>> >> >> > Q3: every node should install Ryu and config ryu.ini? >>> >> >> >>> >> >> Of course, it is necessary on controller node. >>> >> >> On network node and compute node, you need install Ryu >>> >> >> (neutron-plugin-ryu-agent imports it), but it is not necessary to >>> >> >> configure. >>> >> >> >>> >> >> Thanks, >>> >> >> Kaneko >>> >> >> >>> >> >> > >>> >> >> > thanks >>> >> >> > >>> >> >> > >>> >> >> > >>> >> >> > >>> >> >> > ------------------------------------------------------------------------------ >>> >> >> > "Accelerate Dev Cycles with Automated Cross-Browser Testing - For >>> >> >> > FREE >>> >> >> > Instantly run your Selenium tests across 300+ browser/OS combos. >>> >> >> > Get unparalleled scalability from the best Selenium testing >>> >> >> > platform >>> >> >> > available >>> >> >> > Simple to use. Nothing to install. Get started now for free." >>> >> >> > http://p.sf.net/sfu/SauceLabs >>> >> >> > _______________________________________________ >>> >> >> > Ryu-devel mailing list >>> >> >> > Ryu-devel@lists.sourceforge.net >>> >> >> > https://lists.sourceforge.net/lists/listinfo/ryu-devel >>> >> >> > >>> >> > >>> >> > >>> > >>> > >> >> > ------------------------------------------------------------------------------ Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel