[SFC-136] App Coexistence offsets are not calculated correctly Created: 25/Jan/16  Updated: 19/Oct/17  Resolved: 11/Feb/16

Status: Resolved
Project: sfc
Component/s: General
Affects Version/s: unspecified
Fix Version/s: None

Type: Bug
Reporter: Brady Johnson 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: 5078

 Description   

When setting the AppCoexistence offsets as follows:

curl -i -H "Content-Type: application/json" -H "Cache-Control: no-cache" --data '{ "sfc-of-renderer-config" : { "sfc-of-table-offset" : 20, "sfc-of-app-egress-table-offset" : 80 }}' -X PUT --user admin:admin http://localhost:8181/restconf/config/sfc-of-renderer:sfc-of-renderer-config

Which would set SFC to start writing flows in table 20, SFC actually starts writing flows in table 22.

This is because it wasnt compensating for the Classifier Table (which is not used in app coexistence) and the TrasportIngress Table (which is now table 0 with app coexistence).



 Comments   
Comment by Brady Johnson [ 25/Jan/16 ]

This has been fixed with the following patches:

Stable/Beryllium:
https://git.opendaylight.org/gerrit/#/c/33471/

Master:
https://git.opendaylight.org/gerrit/#/c/33467

Here are the flows with the following CURL command to set App Coexistence:

curl -i -H "Content-Type: application/json" -H "Cache-Control: no-cache" --data '{ "sfc-of-renderer-config" : { "sfc-of-table-offset" : 7, "sfc-of-app-egress-table-offset" : 0}}' -X PUT --user admin:admin http://localhost:8181/restconf/config/sfc-of-renderer:sfc-of-renderer-config

ebrjohn@colorado:~/appCoexist/nsh_1SF_1SFF$ dump_flows sff1 | awk '

{print $3, $6, $7}

'
(OF1.3)
table=0, priority=250,nsp=8388651 actions=goto_table:9
table=0, priority=250,nsp=43 actions=goto_table:9
table=7, priority=5 actions=goto_table:8
table=8, priority=5 actions=goto_table:9
table=9, priority=5 actions=goto_table:15
table=9, priority=550,nsp=8388651,nsi=255 actions=load:0xa00000a->NXM_NX_TUN_IPV4_DST[],goto_table:15
table=9, priority=550,nsp=43,nsi=255 actions=load:0xa00000a->NXM_NX_TUN_IPV4_DST[],goto_table:15
table=15, priority=5 actions=drop
table=15, priority=660,nsp=43,nsi=254,nshc1=0 actions=IN_PORT
table=15, priority=660,nsp=8388651,nsi=254,nshc1=0 actions=IN_PORT
table=15, priority=650,nsp=43,nsi=254 actions=move:NXM_NX_NSI[]>NXM_NX_NSI[],move:NXM_NX_NSP[]>NXM_NX_NSP[],move:NXM_NX_NSH_C1[]>NXM_NX_TUN_IPV4_DST[],move:NXM_NX_NSH_C2[]>NXM_NX_TUN_ID[0..31],IN_PORT
table=15, priority=650,nsp=8388651,nsi=254 actions=move:NXM_NX_NSI[]>NXM_NX_NSI[],move:NXM_NX_NSP[]>NXM_NX_NSP[],move:NXM_NX_NSH_C1[]>NXM_NX_TUN_IPV4_DST[],move:NXM_NX_NSH_C2[]>NXM_NX_TUN_ID[0..31],IN_PORT
table=15, priority=650,nsp=8388651,nsi=255 actions=move:NXM_NX_NSH_C1[]>NXM_NX_NSH_C1[],move:NXM_NX_NSH_C2[]>NXM_NX_NSH_C2[],move:NXM_NX_TUN_ID[0..31]->NXM_NX_TUN_ID[0..31],IN_PORT
table=15, priority=650,nsp=43,nsi=255 actions=move:NXM_NX_NSH_C1[]>NXM_NX_NSH_C1[],move:NXM_NX_NSH_C2[]>NXM_NX_NSH_C2[],move:NXM_NX_TUN_ID[0..31]->NXM_NX_TUN_ID[0..31],IN_PORT

Comment by Brady Johnson [ 25/Jan/16 ]

I also had to make a change to allow for tableEgress being set to 0, as previously 0 was the default value when appCoexistence was disabled.

With this curl command:

curl -i -H "Content-Type: application/json" -H "Cache-Control: no-cache" --data '{ "sfc-of-renderer-config" : { "sfc-of-table-offset" : 7, "sfc-of-app-egress-table-offset" : 0}}' -X PUT --user admin:admin http://localhost:8181/restconf/config/sfc-of-renderer:sfc-of-renderer-config

Here are the resulting flows:

ebrjohn@colorado:~$ dump_flows sff1 | awk '

{print $3, $6, $7}

'
(OF1.3)
table=0, priority=250,nsp=27 actions=goto_table:9
table=0, priority=250,nsp=8388635 actions=goto_table:9
table=7, priority=5 actions=goto_table:8
table=8, priority=5 actions=goto_table:9
table=9, priority=5 actions=goto_table:15
table=9, priority=550,nsp=27,nsi=255 actions=load:0xa00000a->NXM_NX_TUN_IPV4_DST[],goto_table:15
table=9, priority=550,nsp=8388635,nsi=255 actions=load:0xa00000a->NXM_NX_TUN_IPV4_DST[],goto_table:15
table=15, priority=5 actions=drop
table=15, priority=650,nsp=27,nsi=255 actions=move:NXM_NX_NSH_C1[]>NXM_NX_NSH_C1[],move:NXM_NX_NSH_C2[]>NXM_NX_NSH_C2[],move:NXM_NX_TUN_ID[0..31]->NXM_NX_TUN_ID[0..31],IN_PORT
table=15, priority=650,nsp=27,nsi=254 actions=move:NXM_NX_NSI[]>NXM_NX_NSI[],move:NXM_NX_NSP[]>NXM_NX_NSP[],move:NXM_NX_NSH_C1[]>NXM_NX_TUN_IPV4_DST[],move:NXM_NX_NSH_C2[]>NXM_NX_TUN_ID[0..31],IN_PORT
table=15, priority=650,nsp=8388635,nsi=255 actions=move:NXM_NX_NSH_C1[]>NXM_NX_NSH_C1[],move:NXM_NX_NSH_C2[]>NXM_NX_NSH_C2[],move:NXM_NX_TUN_ID[0..31]->NXM_NX_TUN_ID[0..31],IN_PORT
table=15, priority=650,nsp=8388635,nsi=254 actions=move:NXM_NX_NSI[]>NXM_NX_NSI[],move:NXM_NX_NSP[]>NXM_NX_NSP[],move:NXM_NX_NSH_C1[]>NXM_NX_TUN_IPV4_DST[],move:NXM_NX_NSH_C2[]>NXM_NX_TUN_ID[0..31],IN_PORT
table=15, priority=660,nsp=27,nsi=254,nshc1=0 actions=IN_PORT
table=15, priority=660,nsp=27,nsi=254,nshc1=167772161 actions=move:NXM_NX_NSI[]>NXM_NX_NSI[],move:NXM_NX_NSP[]>NXM_NX_NSP[],move:NXM_NX_NSH_C1[]>NXM_NX_TUN_IPV4_DST[],move:NXM_NX_NSH_C2[]>NXM_NX_TUN_ID[0..31],resubmit(,0)
table=15, priority=660,nsp=8388635,nsi=254,nshc1=0 actions=IN_PORT
table=15, priority=660,nsp=8388635,nsi=254,nshc1=167772161 actions=move:NXM_NX_NSI[]>NXM_NX_NSI[],move:NXM_NX_NSP[]>NXM_NX_NSP[],move:NXM_NX_NSH_C1[]>NXM_NX_TUN_IPV4_DST[],move:NXM_NX_NSH_C2[]>NXM_NX_TUN_ID[0..31],resubmit(,0)

Generated at Wed Feb 07 20:38:44 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.