Hello Chenjie,

I agree, this is a bug.  I think the only reason it hasn’t been an issue is because the only user of the get_fdb_entries RPC is the BGP agent and it is not passing a host in the request (it is None), therefore it excludes the attempt to try and access the parameter as an agent based on the condition in _create_agent_fdb.

 

Here is the BGP caller:

https://github.com/starlingx-staging/stx-neutron-dynamic-routing/blob/master/neutron_dynamic_routing/services/bgp/agent/bgp_dragent.py#L1498

 

 

From: "Xu, Chenjie" <chenjie.xu@intel.com>
Date: Wednesday, November 28, 2018 at 10:11 AM
To: "Peters, Matt" <Matt.Peters@windriver.com>
Cc: "starlingx-discuss@lists.starlingx.io" <starlingx-discuss@lists.starlingx.io>
Subject: [Starlingx-discuss] Analysis of patch 88b7bc7 for StartlingX upstreaming

 

 

Hi Matt,

I think that there exists a bug in patch 88b7bc7. Function _get_fdb_entries will call function _create­_agent_fdb by following line:

https://github.com/starlingx-staging/stx-neutron/blob/master/neutron/plugins/ml2/drivers/l2pop/mech_driver.py#L441

The variable “host” will be used to call _create_agent_fdb. However function _create_agent_fdb expects variable “agent”:

https://github.com/starlingx-staging/stx-neutron/blob/master/neutron/plugins/ml2/drivers/l2pop/mech_driver.py#L264

I think this should be a bug. Could you please help review and comment?

 

Best Regards,

Xu, Chenjie