# @author: Francois Eleouet, Orange
# @author: Mathieu Rohon, Orange
+from neutron.common import constants as const
from neutron.db import agents_db
from neutron.db import db_base_plugin_v2 as base_db
from neutron.db import models_v2
l2_const.SUPPORTED_AGENT_TYPES))
return query
- def get_agent_network_port_count(self, session, agent_host, network_id):
+ def get_agent_network_active_port_count(self, session, agent_host,
+ network_id):
with session.begin(subtransactions=True):
query = session.query(models_v2.Port)
query = query.join(ml2_models.PortBinding)
query = query.filter(models_v2.Port.network_id == network_id,
+ models_v2.Port.status ==
+ const.PORT_STATUS_ACTIVE,
ml2_models.PortBinding.host == agent_host)
return query.count()
network_id = port_context['network_id']
session = db_api.get_session()
- agent_ports = self.get_agent_network_port_count(session, agent_host,
- network_id)
+ agent_active_ports = self.get_agent_network_active_port_count(
+ session, agent_host, network_id)
other_fdb_entries = {network_id:
{'segment_id': segment['segmentation_id'],
'network_type': segment['network_type'],
'ports': {agent_ip: []}}}
- if agent_ports == 1 or (
+ if agent_active_ports == 1 or (
self.get_agent_uptime(agent) < cfg.CONF.l2pop.agent_boot_time):
- # First port plugged on current agent in this network,
+ # First port activated on current agent in this network,
# we have to provide it with the whole list of fdb entries
agent_fdb_entries = {network_id:
{'segment_id': segment['segmentation_id'],
network_id = port_context['network_id']
session = db_api.get_session()
- agent_ports = self.get_agent_network_port_count(session, agent_host,
- network_id)
+ agent_active_ports = self.get_agent_network_active_port_count(
+ session, agent_host, network_id)
other_fdb_entries = {network_id:
{'segment_id': segment['segmentation_id'],
'network_type': segment['network_type'],
'ports': {agent_ip: []}}}
- if agent_ports == 1:
- # Agent is removing its last port in this network,
+ if agent_active_ports == 1:
+ # Agent is removing its last activated port in this network,
# other agents needs to be notified to delete their flooding entry.
other_fdb_entries[network_id]['ports'][agent_ip].append(
const.FLOODING_ENTRY)