table_manager: Fix conversion of De Morgan's laws

This patch fixes incorrect conversion of De Morgan's laws.
  e.g.) not (A and B) == not A or not B

Original:
    if not (vpn_path.source is None
            and route_dist == vrf_table.vrf_conf.route_dist):

Incorrect:
    if (vpn_path.source is not None and  # !!! Should be "or"
            route_dist != vrf_table.vrf_conf.route_dist):

Correct:
    if (vpn_path.source is not None or
            route_dist != vrf_table.vrf_conf.route_dist):

Signed-off-by: IWASE Yusuke <iwase.yusuke0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
This commit is contained in:
IWASE Yusuke 2016-09-05 09:41:38 +09:00 committed by FUJITA Tomonori
parent c09925e1f5
commit 7af944dc0e

View File

@ -470,7 +470,7 @@ class TableCoreManager(object):
# of the given path and import this path into them.
route_dist = vpn_path.nlri.route_dist
for vrf_table in interested_tables:
if (vpn_path.source is not None and
if (vpn_path.source is not None or
route_dist != vrf_table.vrf_conf.route_dist):
update_vrf_dest = vrf_table.import_vpn_path(vpn_path)
# Queue the destination for further processing.