[openflowplugin-dev] A question regarding VLAN tagging and untagging


Luis Gomez
 

Hi Xingjun, AFAIR you have to specify VLAN match when you set or pop vlan, not when you push.

On Nov 5, 2017, at 7:13 AM, Xingjun Chu <Xingjun.Chu@...> wrote:

BTW,

On top of the previous email, as an example, here is the flow table with vlan pop action I dumped using openflow rest api. it is in config, but not installed.

{
"flow-node-inventory:table": [
{
"id": 80,
"flow": [
{
"id": "DEFAULT_PIPELINE_FLOW_80",
"hard-timeout": 0,
"idle-timeout": 0,
"match": {},
"instructions": {
"instruction": [
{
"order": 0,
"apply-actions": {
"action": [
{
"order": 0,
"pop-vlan-action": {}
}
]
}
},
{
"order": 1,
"go-to-table": {
"table_id": 110
}
}
]
},
"barrier": true,
"priority": 0,
"table_id": 80,
"flow-name": "DEFAULT_PIPELINE_FLOW_80"
}
]
}
]
}


thanks
Xingjun
From: Xingjun Chu
Sent: Sunday, November 05, 2017 9:28 AM
To: ovsdb-dev@...; openflowplugin-dev@...
Cc: faas-dev@...
Subject: A question regarding VLAN tagging and untagging

Hi,

I have a couple of questions regarding the VLAN relevant action.

1) I have a table in the pipeline which does some L3 forwarding. it has some entries to match dst ip, then modify dst dl address, dec-ttl, resubmit. etc... Those flows get installed without problem.
.
Now I try to add a "VLAN strip or pop" into the action list of the flow above for example as the first action , strip or pop VLAN, then modify dst dl address, dec-ttl, resubmit, etc... I tried both strip or pop action, but either way the flow didn't get installed. why is that?

I even tried to just create a separate table with VLAN strip and resubmit as the default entry, it doesn't get installed either.

2) also I found more strange thing is that If I need to push and set a VLAN ID in the action, Ihave to have a VLAN match first, otherwise
the flow is not get installed.

BTW I am doing this NOT using REST API of openflowplugin. but programmatically using Action, Action builder etc...

Any pointer is greatly appreciated.

Thanks & Regards
Xingjun




_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


xingjun chu
 

hi Luis

thanks.

is there a way to define a wild card match for example for any vlan header? doesnt have to be a specific one ? if there is an example code even better.

i tried to set a vlan match for example vlan id 100. when it is installed,  the match entry in the ovs flow showd a vlan tci match with a vid 100 and a mask 1fff, i have no idea how the mask is set and by who, which doesnt actually match  vlan 100 traffic for some reason.

thanks
Xingjun
--------------------------------------------------
Xingjun Chu Xingjun Chu
M:
E: Xingjun.Chu@...
2012实验室-渥太华光系统能力中心
2012 Laboratories-Ottawa Optical System Competency Centre
发件人:Luis Gomez
收件人:Xingjun Chu,
抄 送:ovsdb-dev@...,openflowplugin-dev@...,faas-dev@...,
时间:2017-11-05 19:44:18
主 题:Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging

Hi Xingjun, AFAIR you have to specify VLAN match when you set or pop vlan, not when you push.


> On Nov 5, 2017, at 7:13 AM, Xingjun Chu <Xingjun.Chu@...> wrote:
>
> BTW,
>
> On top of the previous email, as an example, here is the  flow table with vlan pop action I dumped using openflow rest api. it is in config, but not installed.
>
> {
>     "flow-node-inventory:table": [
>         {
>             "id": 80,
>             "flow": [
>                 {
>                     "id": "DEFAULT_PIPELINE_FLOW_80",
>                     "hard-timeout": 0,
>                     "idle-timeout": 0,
>                     "match": {},
>                     "instructions": {
>                         "instruction": [
>                             {
>                                 "order": 0,
>                                 "apply-actions": {
>                                     "action": [
>                                         {
>                                             "order": 0,
>                                             "pop-vlan-action": {}
>                                         }
>                                     ]
>                                 }
>                             },
>                             {
>                                 "order": 1,
>                                 "go-to-table": {
>                                     "table_id": 110
>                                 }
>                             }
>                         ]
>                     },
>                     "barrier": true,
>                     "priority": 0,
>                     "table_id": 80,
>                     "flow-name": "DEFAULT_PIPELINE_FLOW_80"
>                 }
>             ]
>         }
>     ]
> }
>
>
> thanks
> Xingjun
> From: Xingjun Chu
> Sent: Sunday, November 05, 2017 9:28 AM
> To: ovsdb-dev@...; openflowplugin-dev@...
> Cc: faas-dev@...
> Subject: A question regarding VLAN tagging and untagging
>
> Hi,
>
> I have a couple of questions regarding the VLAN relevant action.
>
> 1) I have a table in the pipeline which does some L3 forwarding. it has some entries to match dst ip, then modify dst dl address, dec-ttl, resubmit. etc...  Those flows get installed without problem.
> .
> Now I try to add a "VLAN strip or pop" into the action list of the flow above for example as the first action , strip or pop VLAN, then modify dst dl address, dec-ttl,  resubmit, etc...  I tried both strip or pop action, but either way the flow didn't get installed. why is that?   
>
> I even tried to just create a separate table with VLAN strip and resubmit as the default entry, it doesn't get installed either.
>
> 2) also I found more strange thing is that If I need to push and set a VLAN ID in the action, Ihave to have a VLAN match first, otherwise
>     the flow is not get installed.  
>
> BTW I am doing this NOT using REST API of openflowplugin. but programmatically using Action, Action builder  etc...
>
> Any pointer is greatly appreciated.
>
> Thanks & Regards
> Xingjun
>
>    
>

> _______________________________________________
> openflowplugin-dev mailing list
> openflowplugin-dev@...
> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Luis Gomez
 

On Nov 5, 2017, at 5:18 PM, Xingjun Chu <Xingjun.Chu@...> wrote:

hi Luis

thanks.

is there a way to define a wild card match for example for any vlan header? doesnt have to be a specific one ? if there is an example code even better.
yes, just set vlan-id-present=true and skip vlan-id:

"vlan-match": {
"vlan-id": {
"vlan-id-present": true
}
},



i tried to set a vlan match for example vlan id 100. when it is installed, the match entry in the ovs flow showd a vlan tci match with a vid 100 and a mask 1fff, i have no idea how the mask is set and by who, which doesnt actually match vlan 100 traffic for some reason.
I think these are OVS specifics, so I would recommend to check OVS documentation.


thanks
Xingjun
--------------------------------------------------
Xingjun Chu Xingjun Chu
M:
E: Xingjun.Chu@...
2012实验室-渥太华光系统能力中心
2012 Laboratories-Ottawa Optical System Competency Centre
发件人:Luis Gomez
收件人:Xingjun Chu,
抄 送:ovsdb-dev@...,openflowplugin-dev@...,faas-dev@...,
时间:2017-11-05 19:44:18
主 题:Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging

Hi Xingjun, AFAIR you have to specify VLAN match when you set or pop vlan, not when you push.


On Nov 5, 2017, at 7:13 AM, Xingjun Chu <Xingjun.Chu@...> wrote:

BTW,

On top of the previous email, as an example, here is the flow table with vlan pop action I dumped using openflow rest api. it is in config, but not installed.

{
"flow-node-inventory:table": [
{
"id": 80,
"flow": [
{
"id": "DEFAULT_PIPELINE_FLOW_80",
"hard-timeout": 0,
"idle-timeout": 0,
"match": {},
"instructions": {
"instruction": [
{
"order": 0,
"apply-actions": {
"action": [
{
"order": 0,
"pop-vlan-action": {}
}
]
}
},
{
"order": 1,
"go-to-table": {
"table_id": 110
}
}
]
},
"barrier": true,
"priority": 0,
"table_id": 80,
"flow-name": "DEFAULT_PIPELINE_FLOW_80"
}
]
}
]
}


thanks
Xingjun
From: Xingjun Chu
Sent: Sunday, November 05, 2017 9:28 AM
To: ovsdb-dev@...; openflowplugin-dev@...
Cc: faas-dev@...
Subject: A question regarding VLAN tagging and untagging

Hi,

I have a couple of questions regarding the VLAN relevant action.

1) I have a table in the pipeline which does some L3 forwarding. it has some entries to match dst ip, then modify dst dl address, dec-ttl, resubmit. etc... Those flows get installed without problem.
.
Now I try to add a "VLAN strip or pop" into the action list of the flow above for example as the first action , strip or pop VLAN, then modify dst dl address, dec-ttl, resubmit, etc... I tried both strip or pop action, but either way the flow didn't get installed. why is that?

I even tried to just create a separate table with VLAN strip and resubmit as the default entry, it doesn't get installed either.

2) also I found more strange thing is that If I need to push and set a VLAN ID in the action, Ihave to have a VLAN match first, otherwise
the flow is not get installed.

BTW I am doing this NOT using REST API of openflowplugin. but programmatically using Action, Action builder etc...

Any pointer is greatly appreciated.

Thanks & Regards
Xingjun




_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


xingjun chu
 

Hi Luis,

Thanks for the tips first.

But for the vlan match, is there a way to say " there is no vlan header", so I can push a vlan. I know I can check the type but is there a way to say vlan is not present.

Thanks
Xingjun

-----Original Message-----
From: Luis Gomez [mailto:ecelgp@...]
Sent: Sunday, November 05, 2017 11:04 PM
To: Xingjun Chu <Xingjun.Chu@...>
Cc: ovsdb-dev@...; openflowplugin-dev@...; faas-dev@...
Subject: Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging



On Nov 5, 2017, at 5:18 PM, Xingjun Chu <Xingjun.Chu@...> wrote:

hi Luis

thanks.

is there a way to define a wild card match for example for any vlan header? doesnt have to be a specific one ? if there is an example code even better.
yes, just set vlan-id-present=true and skip vlan-id:

"vlan-match": {
"vlan-id": {
"vlan-id-present": true
}
},



i tried to set a vlan match for example vlan id 100. when it is installed, the match entry in the ovs flow showd a vlan tci match with a vid 100 and a mask 1fff, i have no idea how the mask is set and by who, which doesnt actually match vlan 100 traffic for some reason.
I think these are OVS specifics, so I would recommend to check OVS documentation.


thanks
Xingjun
--------------------------------------------------
Xingjun Chu Xingjun Chu
M:
E: Xingjun.Chu@...
2012实验室-渥太华光系统能力中心
2012 Laboratories-Ottawa Optical System Competency Centre
发件人:Luis Gomez
收件人:Xingjun Chu,
抄 送:ovsdb-dev@...,openflowplugin-dev@...,faas-dev@...,
时间:2017-11-05 19:44:18
主 题:Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging

Hi Xingjun, AFAIR you have to specify VLAN match when you set or pop vlan, not when you push.


On Nov 5, 2017, at 7:13 AM, Xingjun Chu <Xingjun.Chu@...> wrote:

BTW,

On top of the previous email, as an example, here is the flow table with vlan pop action I dumped using openflow rest api. it is in config, but not installed.

{
"flow-node-inventory:table": [
{
"id": 80,
"flow": [
{
"id": "DEFAULT_PIPELINE_FLOW_80",
"hard-timeout": 0,
"idle-timeout": 0,
"match": {},
"instructions": {
"instruction": [
{
"order": 0,
"apply-actions": {
"action": [
{
"order": 0,
"pop-vlan-action": {}
}
]
}
},
{
"order": 1,
"go-to-table": {
"table_id": 110
}
}
]
},
"barrier": true,
"priority": 0,
"table_id": 80,
"flow-name": "DEFAULT_PIPELINE_FLOW_80"
}
]
}
]
}


thanks
Xingjun
From: Xingjun Chu
Sent: Sunday, November 05, 2017 9:28 AM
To: ovsdb-dev@...; openflowplugin-dev@...
Cc: faas-dev@...
Subject: A question regarding VLAN tagging and untagging

Hi,

I have a couple of questions regarding the VLAN relevant action.

1) I have a table in the pipeline which does some L3 forwarding. it has some entries to match dst ip, then modify dst dl address, dec-ttl, resubmit. etc... Those flows get installed without problem.
.
Now I try to add a "VLAN strip or pop" into the action list of the flow above for example as the first action , strip or pop VLAN, then modify dst dl address, dec-ttl, resubmit, etc... I tried both strip or pop action, but either way the flow didn't get installed. why is that?

I even tried to just create a separate table with VLAN strip and resubmit as the default entry, it doesn't get installed either.

2) also I found more strange thing is that If I need to push and set a VLAN ID in the action, Ihave to have a VLAN match first, otherwise
the flow is not get installed.

BTW I am doing this NOT using REST API of openflowplugin. but programmatically using Action, Action builder etc...

Any pointer is greatly appreciated.

Thanks & Regards
Xingjun




_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev


Luis Gomez
 


On Nov 7, 2017, at 8:44 AM, Xingjun Chu <Xingjun.Chu@...> wrote:

Hi Luis,

Thanks for the tips first.

But for the vlan match, is there a way to say " there is no vlan header", so I can push a vlan. I know I can check the type but is there a way to say vlan is not present.

just set vlan-id-present=false and skip vlan-id:

                                   "vlan-match": {
                                       "vlan-id": {
                                           "vlan-id-present": false
                                       }
                                   },




Thanks
Xingjun


-----Original Message-----
From: Luis Gomez [mailto:ecelgp@...]
Sent: Sunday, November 05, 2017 11:04 PM
To: Xingjun Chu <Xingjun.Chu@...>
Cc: ovsdb-dev@...; openflowplugin-dev@...; faas-dev@...
Subject: Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging



On Nov 5, 2017, at 5:18 PM, Xingjun Chu <Xingjun.Chu@...> wrote:

hi Luis

thanks.

is there a way to define a wild card match for example for any vlan header? doesnt have to be a specific one ? if there is an example code even better.

yes, just set vlan-id-present=true and skip vlan-id:

                                   "vlan-match": {
                                       "vlan-id": {
                                           "vlan-id-present": true
                                       }
                                   },



i tried to set a vlan match for example vlan id 100. when it is installed,  the match entry in the ovs flow showd a vlan tci match with a vid 100 and a mask 1fff, i have no idea how the mask is set and by who, which doesnt actually match  vlan 100 traffic for some reason.

I think these are OVS specifics, so I would recommend to check OVS documentation.


thanks
Xingjun
--------------------------------------------------
Xingjun Chu Xingjun Chu
M:
E: Xingjun.Chu@...
2012实验室-渥太华光系统能力中心
2012 Laboratories-Ottawa Optical System Competency Centre
发件人:Luis Gomez
收件人:Xingjun Chu,
抄 送:ovsdb-dev@...,openflowplugin-dev@...,faas-dev@...,
时间:2017-11-05 19:44:18
主 题:Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging

Hi Xingjun, AFAIR you have to specify VLAN match when you set or pop vlan, not when you push.


On Nov 5, 2017, at 7:13 AM, Xingjun Chu <Xingjun.Chu@...> wrote:

BTW,

On top of the previous email, as an example, here is the  flow table with vlan pop action I dumped using openflow rest api. it is in config, but not installed.

{
   "flow-node-inventory:table": [
       {
           "id": 80,
           "flow": [
               {
                   "id": "DEFAULT_PIPELINE_FLOW_80",
                   "hard-timeout": 0,
                   "idle-timeout": 0,
                   "match": {},
                   "instructions": {
                       "instruction": [
                           {
                               "order": 0,
                               "apply-actions": {
                                   "action": [
                                       {
                                           "order": 0,
                                           "pop-vlan-action": {}
                                       }
                                   ]
                               }
                           },
                           {
                               "order": 1,
                               "go-to-table": {
                                   "table_id": 110
                               }
                           }
                       ]
                   },
                   "barrier": true,
                   "priority": 0,
                   "table_id": 80,
                   "flow-name": "DEFAULT_PIPELINE_FLOW_80"
               }
           ]
       }
   ]
}


thanks
Xingjun
From: Xingjun Chu
Sent: Sunday, November 05, 2017 9:28 AM
To: ovsdb-dev@...; openflowplugin-dev@...
Cc: faas-dev@...
Subject: A question regarding VLAN tagging and untagging

Hi,

I have a couple of questions regarding the VLAN relevant action.

1) I have a table in the pipeline which does some L3 forwarding. it has some entries to match dst ip, then modify dst dl address, dec-ttl, resubmit. etc...  Those flows get installed without problem.
.
Now I try to add a "VLAN strip or pop" into the action list of the flow above for example as the first action , strip or pop VLAN, then modify dst dl address, dec-ttl,  resubmit, etc...  I tried both strip or pop action, but either way the flow didn't get installed. why is that?    

I even tried to just create a separate table with VLAN strip and resubmit as the default entry, it doesn't get installed either.

2) also I found more strange thing is that If I need to push and set a VLAN ID in the action, Ihave to have a VLAN match first, otherwise
   the flow is not get installed.   

BTW I am doing this NOT using REST API of openflowplugin. but programmatically using Action, Action builder  etc...

Any pointer is greatly appreciated.

Thanks & Regards
Xingjun




_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev



xingjun chu
 

Thanks Luis for your big quick help. J

 

One more question: Can I push a vlan and set the VLAN  ID at the same time? I tried , it seems not working. Maybe I miss sth.

 

Regards

Xingjun

 

From: Luis Gomez [mailto:ecelgp@...]
Sent: Tuesday, November 07, 2017 12:23 PM
To: Xingjun Chu <Xingjun.Chu@...>
Cc: ovsdb-dev@...; openflowplugin-dev@...; faas-dev@...
Subject: Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging

 

 

On Nov 7, 2017, at 8:44 AM, Xingjun Chu <Xingjun.Chu@...> wrote:

 

Hi Luis,

Thanks for the tips first.

But for the vlan match, is there a way to say " there is no vlan header", so I can push a vlan. I know I can check the type but is there a way to say vlan is not present.

 

just set vlan-id-present=false and skip vlan-id:



                                   "vlan-match": {

                                       "vlan-id": {

                                           "vlan-id-present": false

                                       }

                                   },

 




Thanks
Xingjun


-----Original Message-----
From: Luis Gomez [mailto:ecelgp@...]
Sent: Sunday, November 05, 2017 11:04 PM
To: Xingjun Chu <Xingjun.Chu@...>
Cc: ovsdb-dev@...; openflowplugin-dev@...; faas-dev@...
Subject: Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging




On Nov 5, 2017, at 5:18 PM, Xingjun Chu <Xingjun.Chu@...> wrote:

hi Luis

thanks.

is there a way to define a wild card match for example for any vlan header? doesnt have to be a specific one ? if there is an example code even better.


yes, just set vlan-id-present=true and skip vlan-id:

                                   "vlan-match": {
                                       "vlan-id": {
                                           "vlan-id-present": true
                                       }
                                   },




i tried to set a vlan match for example vlan id 100. when it is installed,  the match entry in the ovs flow showd a vlan tci match with a vid 100 and a mask 1fff, i have no idea how the mask is set and by who, which doesnt actually match  vlan 100 traffic for some reason.


I think these are OVS specifics, so I would recommend to check OVS documentation.



thanks
Xingjun
--------------------------------------------------
Xingjun Chu Xingjun Chu
M:
E: Xingjun.Chu@...
2012实验室-渥太华光系统能力中心
2012 Laboratories-Ottawa Optical System Competency Centre
发件人:Luis Gomez
收件人:Xingjun Chu,
送:ovsdb-dev@...,openflowplugin-dev@...,faas-dev@...,
时间:2017-11-05 19:44:18
题:Re: [openflowplugin-dev] A question regarding VLAN tagging and untagging

Hi Xingjun, AFAIR you have to specify VLAN match when you set or pop vlan, not when you push.



On Nov 5, 2017, at 7:13 AM, Xingjun Chu <Xingjun.Chu@...> wrote:

BTW,

On top of the previous email, as an example, here is the  flow table with vlan pop action I dumped using openflow rest api. it is in config, but not installed.

{
   "flow-node-inventory:table": [
       {
           "id": 80,
           "flow": [
               {
                   "id": "DEFAULT_PIPELINE_FLOW_80",
                   "hard-timeout": 0,
                   "idle-timeout": 0,
                   "match": {},
                   "instructions": {
                       "instruction": [
                           {
                               "order": 0,
                               "apply-actions": {
                                   "action": [
                                       {
                                           "order": 0,
                                           "pop-vlan-action": {}
                                       }
                                   ]
                               }
                           },
                           {
                               "order": 1,
                               "go-to-table": {
                                   "table_id": 110
                               }
                           }
                       ]
                   },
                   "barrier": true,
                   "priority": 0,
                   "table_id": 80,
                   "flow-name": "DEFAULT_PIPELINE_FLOW_80"
               }
           ]
       }
   ]
}


thanks
Xingjun
From: Xingjun Chu
Sent: Sunday, November 05, 2017 9:28 AM
To: ovsdb-dev@...; openflowplugin-dev@...
Cc: faas-dev@...
Subject: A question regarding VLAN tagging and untagging

Hi,

I have a couple of questions regarding the VLAN relevant action.

1) I have a table in the pipeline which does some L3 forwarding. it has some entries to match dst ip, then modify dst dl address, dec-ttl, resubmit. etc...  Those flows get installed without problem.
.
Now I try to add a "VLAN strip or pop" into the action list of the flow above for example as the first action , strip or pop VLAN, then modify dst dl address, dec-ttl,  resubmit, etc...  I tried both strip or pop action, but either way the flow didn't get installed. why is that?    

I even tried to just create a separate table with VLAN strip and resubmit as the default entry, it doesn't get installed either.

2) also I found more strange thing is that If I need to push and set a VLAN ID in the action, Ihave to have a VLAN match first, otherwise
   the flow is not get installed.   

BTW I am doing this NOT using REST API of openflowplugin. but programmatically using Action, Action builder  etc...

Any pointer is greatly appreciated.

Thanks & Regards
Xingjun




_______________________________________________
openflowplugin-dev mailing list
openflowplugin-dev@...
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev