Hi,

For setting VLAN_VID with "set-field action", please try the following.

$ curl -X POST -d '{
    "dpid": 1,
    "match":{
        "dl_type": 0x8000
    },
    "actions":[
        {
            "type": "PUSH_VLAN",     # Push a new VLAN tag if a input frame is 
non-VLAN-tagged
            "ethertype": 33024       # Ethertype 0x8100(=33024): IEEE 802.1Q 
VLAN-tagged frame
        },
        {
            "type": "SET_FIELD",
            "field": "vlan_vid",     # Set VLAN ID
            "value": 4102            # Describe sum of vlan_id(e.g. 6) | 
OFPVID_PRESENT(0x1000=4096)
        },
        {
            "type": "OUTPUT",
            "port": 2
        }
    ]
 }' http://localhost:8080/stats/flowentry/add

Thanks,
Iwase


On 2017年02月09日 05:41, raghu rathode wrote:
> Dear Iwase,
> 
> could you please me help me out, how to "set-field action" to set vlan_vid  
> for OpenFlow 1.3 version (HP openFlow Switch). It throws an error when I 
> followed the example 
> "http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html?highlight=ofctl#example-of-vlan-id-match-field
>  
> <http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html?highlight=ofctl#example-of-vlan-id-match-field>".
> 
> I am trying to install through ofctl_rest.py
> 
> for example, I would like to set  vlan_vid:2? how can I set it please let me 
> know. 
> 
> Traceback (most recent call last):
>   File "/usr/local/lib/python2.7/dist-packages/eventlet/wsgi.py", line 490, 
> in handle_one_response
>     result = self.application(self.environ, start_response)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line 230, in 
> __call__
>     return super(wsgify_hack, self).__call__(environ, start_response)
>   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 130, in 
> __call__
>     resp = self.call_func(req, *args, **self.kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/webob/dec.py", line 195, in 
> call_func
>     return self.func(req, *args, **kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line 284, in 
> __call__
>     return controller(req)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/app/wsgi.py", line 154, in 
> __call__
>     return getattr(self, action)(req, **kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/app/ofctl_rest.py", line 
> 276, in wrapper
>     method(self, req, dp, ofctl, body, *args, **kwargs)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/app/ofctl_rest.py", line 
> 432, in mod_flow_entry
>     ofctl.mod_flow_entry(dp, flow, mod_cmd)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/ofctl_v1_3.py", line 
> 1066, in mod_flow_entry
>     ofctl_utils.send_msg(dp, flow_mod, LOG)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/ofctl_utils.py", line 
> 239, in send_msg
>     dp.send_msg(msg)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/controller/controller.py", 
> line 344, in send_msg
>     msg.serialize()
>   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_parser.py", line 
> 220, in serialize
>     self._serialize_body()
>   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", 
> line 2695, in _serialize_body
>     inst.serialize(self.buf, offset)
>   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", 
> line 2884, in serialize
>     a.serialize(buf, action_offset)
>   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/ofproto_v1_3_parser.py", 
> line 3339, in serialize
>     n, value, mask = ofproto.oxm_from_user(self.key, self.value)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/ofproto/oxx_fields.py", 
> line 72, in _from_user
>     value = t.from_user(value)
>   File "/usr/local/lib/python2.7/dist-packages/ryu/lib/type_desc.py", line 
> 43, in from_user
>     binary = six.int2byte(i & 255) + binary
> TypeError: unsupported operand type(s) for &: 'str' and 'int'
> 
> 
> thanks 
> Hari
> 
> 
> 
>     On 30 January 2017 at 06:39, Iwase Yusuke <[email protected] 
> <mailto:[email protected]>> wrote:
> 
>         Hi raghu,
> 
>         Sorry, I could not see your code expectedly, because there are some 
> invalid indentations.
> 
> 
>         On 2017年01月28日 00:21, raghu rathode wrote:
>         > Dear Iwase,
>         >
>         > Thank you for the above information. I attached the file to my 
> email and can you point out where I am doing wrong? I am doing wrong?
>         >
>         > 1. I am facing an error:
>         > 2. I would like to call the function "Configurerules" after a 
> certain time period? How can I implement?
>         >
>         > L2learningswitch: Exception occurred during handler processing. 
> Backtrace from offending handler [switch_features_handler] servicing event 
> [EventOFPSwitchFeatures] follows.
>         >
>         > Traceback (most recent call last):
>         >
>         >   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/base/app_manager.py", line 290, 
> in _event_loop
>         >
>         >     handler(ev)
>         >
>         >   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/app/Simple_l2Ryu.py", line 42, in 
> switch_features_handler
>         >
>         >     self.configurerules(ev, lruleset=self.CONF.ruleset)
>         >
>         >   File 
> "/usr/local/lib/python2.7/dist-packages/ryu/app/Simple_l2Ryu.py", line 127,in 
> configurerules
>         >
>         >    match = parser.OFPMatch(eth_type=eth_type, eth_src=eth_src1, 
> eth_dst=eth_dst1, ipv4_src=ipv4_src1, ipv4_dst=ipv4_dst1, in_port=in_port1, 
> vlan_vid=(0x1000))
>         >
>         > NameError: global name 'eth_src1' is not defined.
> 
>         The above message shows just the value named 'eth_src1' cannot be 
> accessed at line 127.
> 
> 
>         I recommend you to fix the indentation up and try some inspection 
> tools (e.g. pylint or
>         PyCharm IDE, Eclipse IDE, ...).
>         It might be very helpful for your happy coding.
> 
> 
>         Thanks,
>         Iwase
> 
>         >
>         > On 27 January 2017 at 03:21, Iwase Yusuke <[email protected] 
> <mailto:[email protected]> <mailto:[email protected] 
> <mailto:[email protected]>>> wrote:
>         >
>         >     FYI, for the syntax of JSON is similar to the input of 
> ofctl_rest.
>         >       
> http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html#modify-all-matching-flow-entries
>  
> <http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html#modify-all-matching-flow-entries>
>  
> <http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html#modify-all-matching-flow-entries
>  
> <http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html#modify-all-matching-flow-entries>>
>         >
>         >
>         >     On 2017年01月27日 11:20, Iwase Yusuke wrote:
>         >     > Hi,
>         >     >
>         >     > Currently, Ryu does not provides such feature, you need to 
> implement it.
>         >     >
>         >     > But just an idea,
>         >     > JSON representation is might be convenient for such purpose, 
> I guess.
>         >     > "ryu.lib.ofctl_v1_3" can accept JSON like dictionary as input,
>         >     > so you can describe flows as JSON.
>         >     >
>         >     > The following example installs flows at switch connection 
> from JSON file.
>         >     >
>         >     > e.g.)
>         >     > $ cat sample_flows.json
>         >     > [
>         >     >   {
>         >     >     "dpid": 1,
>         >     >     "match": {
>         >     >       "in_port": 1
>         >     >     },
>         >     >     "actions": [
>         >     >       {
>         >     >         "type": "OUTPUT",
>         >     >         "port": 2
>         >     >       }
>         >     >     ]
>         >     >   },
>         >     >   {
>         >     >     "dpid": 1,
>         >     >     "match": {
>         >     >       "in_port": 2
>         >     >     },
>         >     >     "actions": [
>         >     >       {
>         >     >         "type": "OUTPUT",
>         >     >         "port": 1
>         >     >       }
>         >     >     ]
>         >     >   }
>         >     > ]
>         >     >
>         >     >
>         >     > $ git diff
>         >     > diff --git a/ryu/app/simple_switch_13.py 
> b/ryu/app/simple_switch_13.py
>         >     > index 3e7c598..dba09e5 100644
>         >     > --- a/ryu/app/simple_switch_13.py
>         >     > +++ b/ryu/app/simple_switch_13.py
>         >     > @@ -13,6 +13,8 @@
>         >     >  # See the License for the specific language governing 
> permissions and
>         >     >  # limitations under the License.
>         >     >
>         >     > +import json
>         >     > +
>         >     >  from ryu.base import app_manager
>         >     >  from ryu.controller import ofp_event
>         >     >  from ryu.controller.handler import CONFIG_DISPATCHER, 
> MAIN_DISPATCHER
>         >     > @@ -21,6 +23,7 @@ from ryu.ofproto import ofproto_v1_3
>         >     >  from ryu.lib.packet import packet
>         >     >  from ryu.lib.packet import ethernet
>         >     >  from ryu.lib.packet import ether_types
>         >     > +from ryu.lib import ofctl_v1_3
>         >     >
>         >     >
>         >     >  class SimpleSwitch13(app_manager.RyuApp):
>         >     > @@ -48,6 +51,10 @@ class SimpleSwitch13(app_manager.RyuApp):
>         >     >                                            
> ofproto.OFPCML_NO_BUFFER)]
>         >     >          self.add_flow(datapath, 0, match, actions)
>         >     >
>         >     > +        for flow in json.load(open('sample_flows.json')):
>         >     > +            if datapath.id <http://datapath.id> 
> <http://datapath.id> == flow.get('dpid', 0):
>         >     > +                ofctl_v1_3.mod_flow_entry(datapath, flow, 
> ofproto.OFPFC_ADD)
>         >     > +
>         >     >      def add_flow(self, datapath, priority, match, actions, 
> buffer_id=None):
>         >     >          ofproto = datapath.ofproto
>         >     >          parser = datapath.ofproto_parser
>         >     >
>         >     >
>         >     > Thanks,
>         >     > Iwase
>         >     >
>         >     >
>         >     > On 2017年01月24日 20:58, raghu rathode wrote:
>         >     >> Dear Sir/Madam,
>         >     >>
>         >     >> I would like to know, how to pass text file as an argument 
> to Ryu application. Which contains a set of rules to install on OpenFlow 
> switches.
>         >     >>
>         >     >> For Example:
>         >     >>
>         >     >> Switch 00-00-00-00-00-01:
>         >     >> dl_type=0x0800, nw_src=10.1.0.1/16 <http://10.1.0.1/16> 
> <http://10.1.0.1/16> <http://10.1.0.1/16>, nw_dst=10.2.0.1/16 
> <http://10.2.0.1/16> <http://10.2.0.1/16> <http://10.2.0.1/16>, in_port=4, 
> actions=mod_dl_src:00:00:12:00:01:03, mod_dl_dst:00:00:00:00:00:02, output:3
>         >     >> dl_type=0x0800, dl_src=00:00:00:00:00:02, 
> dl_dst=00:00:12:00:01:03, in_port=3, nw_src=10.1.0.1/16 <http://10.1.0.1/16> 
> <http://10.1.0.1/16> <http://10.1.0.1/16>, nw_dst=10.2.0.1/16 
> <http://10.2.0.1/16> <http://10.2.0.1/16> <http://10.2.0.1/16>, 
> actions=mod_dl_src:00:00:12:00:01:02, mod_dl_dst:00:00:12:00:04:01, output:2
>         >     >> dl_type=0x0800, dl_src=00:00:12:00:02:01, 
> dl_dst=00:00:12:00:01:01, in_port=1, nw_src=10.3.0.1/16 <http://10.3.0.1/16> 
> <http://10.3.0.1/16> <http://10.3.0.1/16>, nw_dst=10.4.0.1/16 
> <http://10.4.0.1/16> <http://10.4.0.1/16> <http://10.4.0.1/16>, 
> actions=mod_dl_src:00:00:12:
>         >     >>
>         >     >>
>         >     >> --
>         >     >> Thanks and Regards
>         >     >> Hari Raghavendar Rao Bandari
>         >     >> App 10,
>         >     >> Karolinenweg 20,
>         >     >> 37075 Goettingen,
>         >     >> Germany.
>         >     >>
>         >     >>
>         >     >> 
> ------------------------------------------------------------------------------
>         >     >> Check out the vibrant tech community on one of the world's 
> most
>         >     >> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>         >     >>
>         >     >>
>         >     >>
>         >     >> _______________________________________________
>         >     >> Ryu-devel mailing list
>         >     >> [email protected] 
> <mailto:[email protected]> 
> <mailto:[email protected] 
> <mailto:[email protected]>>
>         >     >> https://lists.sourceforge.net/lists/listinfo/ryu-devel 
> <https://lists.sourceforge.net/lists/listinfo/ryu-devel> 
> <https://lists.sourceforge.net/lists/listinfo/ryu-devel 
> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>>
>         >     >>
>         >
>         >
>         >
>         >
>         > --
>         > Thanks and Regards
>         > Hari Raghavendar Rao Bandari
>         > App 10,
>         > Karolinenweg 20,
>         > 37075 Goettingen,
>         > Germany.
>         >
>         >
>         > 
> ------------------------------------------------------------------------------
>         > Check out the vibrant tech community on one of the world's most
>         > engaging tech sites, SlashDot.org! http://sdm.link/slashdot
>         >
>         >
>         >
>         > _______________________________________________
>         > Ryu-devel mailing list
>         > [email protected] 
> <mailto:[email protected]>
>         > https://lists.sourceforge.net/lists/listinfo/ryu-devel 
> <https://lists.sourceforge.net/lists/listinfo/ryu-devel>
>         >
> 
> 
> 
> 
>     -- 
>     Thanks and Regards
>     Hari Raghavendar Rao Bandari
>     App 10,
>     Karolinenweg 20,
>     37075 Goettingen,
>     Germany.
> 
> 
> 
> 
> -- 
> Thanks and Regards
> Hari Raghavendar Rao Bandari
> App 10,
> Karolinenweg 20,
> 37075 Goettingen,
> Germany.
> 
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> 
> 
> 
> _______________________________________________
> Ryu-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ryu-devel
> 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to