Routes with same prefix from static route tables should be accepted as ecmp routes

Bug #1546887 reported by Shashikiran H
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Juniper Openstack
Status tracked in Trunk
R3.0
Fix Committed
Medium
Suresh Balineni
Trunk
Fix Committed
Medium
Suresh Balineni

Bug Description

Version: 3.0-2713~kilo

Topo:
cfgm: nodec22
control: nodec22,nodec26,nodeg10
compute: nodeg8,nodeg14,nodec15 and nodec11

This is the vn/vm topo:

             ----transit vm 1----

src vm(src vn)
                                  (dst vn)dst vm

             ----transit vm 2 ----

The end goal here is to make the forward path non ecmp (source to destination) and reverse path ecmp(destination to source).

source vn in 10.1.1.0/24 and destination vn is 20.1.1.0/24
source vm is 10.1.1.4 and destination vm is 20.1.1.4

The 2 transit vns created here are not service vms and do not share an ip. transit vm 1's left interface is 10.1.1.3 and right interface is 20.1.1.3. transit vm 2's left interface is 10.1.1.5 and right is 20.1.1.5. They have routing enabled and sit in both source and destination vn. I have created network route tables for both source and destination vns as below:

source vn entry(both exact and generic route):
prefix 20.1.1.0/24 next-hop 10.1.1.3 next-hop-type ip-address
prefix 20.1.1.4/32 next-hop 10.1.1.5 next-hop-type ip-address

destination vn entry(same prefix):
prefix 10.1.1.0/24 next-hop 20.1.1.3 next-hop-type ip-address <<---same prefix
prefix 10.1.1.0/24 next-hop 20.1.1.5 next-hop-type ip-address <<---same prefix

As destination vn's prefixes are same, I expect the prefix to be installed as ecmp when being installed on the right vrf. The UI accepts them and there is no error there. The api command also shows both prefixes seperately.

root@nodec22:~# curl -u admin:contrail123 http://127.0.0.1:8095/route-table/5fc664fb-000d-43af-b891-a7c0437a3365 | python -m json.tool
  % Total % Received % Xferd Average Speed Time Time Time Current
                                 Dload Upload Total Spent Left Speed
100 1428 100 1428 0 0 458k 0 --:--:-- --:--:-- --:--:-- 697k
{
    "route-table": {
        "display_name": "st-rt-dst",
        "fq_name": [
            "default-domain",
            "admin",
            "st-rt-dst"
        ],
        "href": "http://127.0.0.1:8095/route-table/5fc664fb-000d-43af-b891-a7c0437a3365",
        "id_perms": {
            "created": "2016-02-17T10:44:39.806451",
            "creator": null,
            "description": null,
            "enable": true,
            "last_modified": "2016-02-18T05:23:30.115261",
            "permissions": {
                "group": "KeystoneAdmin",
                "group_access": 7,
                "other_access": 7,
                "owner": "admin",
                "owner_access": 7
            },
            "user_visible": true,
            "uuid": {
                "uuid_lslong": 13299595618809426789,
                "uuid_mslong": 6901314508192301999
            }
        },
        "name": "st-rt-dst",
        "parent_href": "http://127.0.0.1:8095/project/4baf3741-4b48-402d-8c9b-daa92be8f972",
        "parent_type": "project",
        "parent_uuid": "4baf3741-4b48-402d-8c9b-daa92be8f972",
        "perms2": {
            "global_access": 0,
            "owner": "4baf37414b48402d8c9bdaa92be8f972",
            "owner_access": 7,
            "share": []
        },
        "routes": {
            "route": [
                {
                    "community_attributes": {
                        "community_attribute": []
                    },
                    "next_hop": "20.1.1.3",
                    "next_hop_type": "ip-address",
                    "prefix": "10.1.1.0/24"
                },
                {
                    "community_attributes": {
                        "community_attribute": []
                    },
                    "next_hop": "20.1.1.5",
                    "next_hop_type": "ip-address",
                    "prefix": "10.1.1.0/24"
                }
            ]
        },
        "uuid": "5fc664fb-000d-43af-b891-a7c0437a3365",
        "virtual_network_back_refs": [
            {
                "attr": null,
                "href": "http://127.0.0.1:8095/virtual-network/72047e2e-6101-4f44-a133-93c120c4a60d",
                "to": [
                    "default-domain",
                    "admin",
                    "destination"
                ],
                "uuid": "72047e2e-6101-4f44-a133-93c120c4a60d"
            }
        ]
    }
}

But the control node's inet table entry only picks up one of the entries for 10.1.1.0 with the next hop as 20.1.1.5(possibly the last entered entry) instaed of ecmp with 20.1.1.3 and 20.1.1.5 and introspect also has only one entry with the nh type as tunnel instead of ecmp.

If this feature is not supported/will not be supported, UI should block the creation of entries with same prefix.

Tags: config
Shashikiran H (skiranh)
summary: - Same prefixed routes from static route tables should be accepted as ecmp
- routes
+ Routes with same prefix from static route tables should be accepted as
+ ecmp routes
description: updated
Shashikiran H (skiranh)
description: updated
description: updated
tags: added: config
removed: contrail-control
Sachin Bansal (sbansal)
Changed in juniperopenstack:
assignee: nobody → Suresh Balineni (sbalineni)
Revision history for this message
Shashikiran H (skiranh) wrote :

Other topologies are seeing issues where only 1 route from the list is getting updated. They might be related to this bug, where api is accepting multiple routes, but the rest of the chain is unable to handle it.

Changed in juniperopenstack:
importance: High → Critical
tags: added: blocker
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/18156
Submitter: Suresh Balineni (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.0

Review in progress for https://review.opencontrail.org/18159
Submitter: Suresh Balineni (<email address hidden>)

Nischal Sheth (nsheth)
tags: removed: blocker
Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/18156
Submitter: Suresh Balineni (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] R3.0

Review in progress for https://review.opencontrail.org/18159
Submitter: Suresh Balineni (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : [Review update] master

Review in progress for https://review.opencontrail.org/18156
Submitter: Suresh Balineni (<email address hidden>)

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote : A change has been merged

Reviewed: https://review.opencontrail.org/18156
Committed: http://github.org/Juniper/contrail-controller/commit/39bde43f18505d51e2810d723b5decfc19379b16
Submitter: Zuul
Branch: master

commit 39bde43f18505d51e2810d723b5decfc19379b16
Author: sbalineni <email address hidden>
Date: Thu Mar 3 16:46:14 2016 -0800

api-server: Do not allow to configure routes with duplicate prefixes

Change-Id: Iecf6d3a934152db548615c2b9f157e0930cac3b8
Closes-Bug: #1546887

Revision history for this message
OpenContrail Admin (ci-admin-f) wrote :

Reviewed: https://review.opencontrail.org/18159
Committed: http://github.org/Juniper/contrail-controller/commit/ac01b7c7aee05b823422f56c441b03148913ea5f
Submitter: Zuul
Branch: R3.0

commit ac01b7c7aee05b823422f56c441b03148913ea5f
Author: sbalineni <email address hidden>
Date: Thu Mar 3 16:46:14 2016 -0800

api-server: Do not allow to configure routes with duplicate prefixes

Change-Id: Iecf6d3a934152db548615c2b9f157e0930cac3b8
Closes-Bug: #1546887

Changed in juniperopenstack:
milestone: r3.1.0.0-fcs → r3.0.1.0
information type: Proprietary → Public
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.