[GENIUS-38] Wrong handling of the binding of a service to a tunnel interface when the priority of the new service to be bound is higher than the priorities of the services already bound Created: 18/Nov/16  Updated: 19/Oct/17  Resolved: 23/Nov/16

Status: Resolved
Project: genius
Component/s: General
Affects Version/s: (unspecified)
Fix Version/s: None

Type: Bug
Reporter: Jose Antonio Baena Cobos Assignee: Unassigned
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


External issue ID: 7203

 Description   

The current behaviour implemented for service binding to a tunnel interface is:

  • In table 0, the first service bound
  • In table 17, the rest of the services bound

When some service is already bound and a new service is going to be bound and its priority is the highest, then this new service should be bound in table 0, and the previous service that was bound in table 0 needs to be move to table 17. When the service is moved to table 17, the priority is not being installed accordingly.

1) Create the tunnel interface:
POST http://localhost:8181/restconf/config/ietf-interfaces:interfaces/
{ "interface": [

{ "name": "tun999a999a9a9", "type": "iana-if-type:tunnel", "odl-interface:tunnel-interface-type": "odl-interface:tunnel-type-gre", "odl-interface:datapath-node-identifier": "286065092896249464", "odl-interface:tunnel-source": "172.0.22.11", "odl-interface:tunnel-destination": "192.168.3.140", "aclservice:port-security-enabled": false, "aclservice:security-groups": [ ], "enabled": true }

]
}

2) Bind ELAN service
POST http://localhost:8181/restconf/config/elan:elan-interfaces/
{
"elan-interface":

{ "static-mac-entries": [ ], "name": "tun999a999a9a9", "description": "Binding GRE logical port to an ELAN instance", "elan-instance-name": "55a14f83-4351-4657-bf3f-ef273eb98ec1" }

}

3) Bind L3VPN service
POST http://localhost:8181/restconf/config/l3vpn:vpn-interfaces/
{
"vpn-interface":
{
"name": "tun999a999a9a9",
"vpn-instance-name": "949550c9-0ac8-4fcb-96fc-2cb5bceec569",
"is-router-interface": "false",
"odl-l3vpn:adjacency": [

{ "odl-l3vpn:primary-adjacency": "true", "odl-l3vpn:ip_address": "10.0.0.0/24" }

]
}
}

Result:

cookie=0x8000001, duration=554.072s, table=0, n_packets=82, n_bytes=3444, priority=10,in_port=4 actions=write_metadata:0xc0000600000222e2/0xffffff00ffffffff,goto_table:19

cookie=0x8040000, duration=562.817s, table=17, n_packets=0, n_bytes=0, priority=6,metadata=0xa000060000000000/0xffffff0000000000 actions=write_metadata:0xc00006138c000000/0xfffffffffffffffe,goto_table:50

The entry in table 17 is wrong.

  • The metadata should be: metadata=0xc000060000000000/0xffffff0000000000
  • The write_metadata should be: write_metadata:0xe00006138c000000/0xfffffffffffffffe


 Comments   
Comment by Jose Antonio Baena Cobos [ 18/Nov/16 ]

This fix needs to go to stable/boron SR2

Comment by Jose Antonio Baena Cobos [ 18/Nov/16 ]

https://git.opendaylight.org/gerrit/#/c/48465/

Generated at Wed Feb 07 19:59:45 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.