Hi Mahdieh,

NXM fields in Ryu are defined as the following.
  
http://ryu.readthedocs.io/en/latest/nicira_ext_ref.html#module-ryu.ofproto.nicira_ext

For "NXM_OF_IN_PORT", you can use "in_port_nxm", I guess.

Thanks,
Iwase

On 2017年06月28日 18:28, Mahdieh Shariat wrote:
Hi Iwase,
Thank you for your reply.

I tried this code:
 >> actions = [
     parser.NXActionRegLoad(ofs_nbits=nicira_ext.ofs_nbits(4, 31), 
dst="NXM_OF_IN_PORT[]", value=0x0),
     parser.OFPActionOutput(_port)]

but in ryu console i get exception as this:

>> File "/home/mahdie/.local/lib/python2.7/site-packages/ryu/ofproto/oxx_fields.py", line 58, in _from_user_header
     (num, t) = _get_field_info_by_name(oxx, name_to_field, name)
File "/home/mahdie/.local/lib/python2.7/site-packages/ryu/ofproto/oxx_fields.py", line 53, in _get_field_info_by_name
     raise KeyError('unknown %s field: %s' % (oxx.upper(), name))
KeyError: 'unknown OXM field: NXM_OF_IN_PORT[]'
​
I review this part of your code in oxx_fields.py file:

 >> def _get_field_info_by_name(oxx, name_to_field, name):
     try:
         f = name_to_field[name]
         t = f.type
         num = f.num
     except KeyError:
         t = type_desc.UnknownType
         if name.startswith('field_'):
             num = int(name.split('_')[1])
         else:
             raise KeyError('unknown %s field: %s' % (oxx.upper(), name))
     return num, t

Unfortunately I can't find the related field name of "NXM_OF_IN_PORT[]" in Ryu. 
How can I find that?
Thanks for your assistance

On Jun 26, 2017 05:04, "Iwase Yusuke" <iwase.yusu...@gmail.com 
<mailto:iwase.yusu...@gmail.com>> wrote:

    Hi Mahdieh,

    Excuse me for jumping in.


    On 2017年06月24日 03:16, Mahdieh Shariat wrote:

        Hi, ​Fujimoto

        Thank you very much for the prompt reply. It works.

        But I have another problem in developing my app. In my app when I'm 
installing rules on
        tables, I have a rule for two situations in a switch:
        1. when a packet is incoming to in_port_1 and will go to out_port_2
        2. when a packet is incoming to in_port_2 and will go to out_port_2

        should I have two separate rules for these situations? May I have a 
common action for them?
        Is there any ryu action for changing the input_port field in ovs 
switch, like this:

        » ovs-ofctl add-flow br0 in_port=2,actions=load:0->NXM_OF_IN_PORT[],2


    How about using OFPActionSetField?
    This action is almost equivalent to "load" action of OVS.

    
http://ryu.readthedocs.io/en/latest/ofproto_v1_3_ref.html#ryu.ofproto.ofproto_v1_3_parser.OFPActionSetField
    
<http://ryu.readthedocs.io/en/latest/ofproto_v1_3_ref.html#ryu.ofproto.ofproto_v1_3_parser.OFPActionSetField>

    If you want to use "load" action of OVS via Ryu, please refer to the 
following document.

    
http://ryu.readthedocs.io/en/latest/nicira_ext_ref.html#ryu.ofproto.ofproto_v1_3_parser.NXActionRegLoad
    
<http://ryu.readthedocs.io/en/latest/nicira_ext_ref.html#ryu.ofproto.ofproto_v1_3_parser.NXActionRegLoad>

    Thanks,
    Iwase



        Thanks

        On Thu, Jun 22, 2017 at 12:25 PM, Fujimoto Satoshi 
<satoshi.fujimo...@gmail.com
        <mailto:satoshi.fujimo...@gmail.com> <mailto:satoshi.fujimo...@gmail.com
        <mailto:satoshi.fujimo...@gmail.com>>> wrote:

             Hi, Mahdieh

             You can use "ofproto.OFPP_IN_PORT" to do it.

                  actions = [parser.OFPActionOutput(ofproto.OFPP_IN_PORT)]
                  self.add_flow(datapath, 0, match, actions)

             Then, the flow shown below will be installed.

                  $ovs-ofctl -O OpenFlow13 dump-flows s1
                  OFPST_FLOW reply (OF1.3) (xid=0x2): cookie=0x0, 
duration=2.975s, table=0,
        n_packets=13,
             n_bytes=1026, priority=0 actions=IN_PORT


             Thanks,
             Fujimoto


             On 2017年06月22日 16:30, Mahdieh Shariat wrote:


                 Hi,
                 I want an ovs switch outputs a packet to its receiving port, 
but in ovs doc I read:

                 actions=[action][,action...]
                               port
                               output:port
                                      Outputs the packet to OpenFlow port 
number port.  If port is
            the packet's
                 input port, the packet is not output.

                 so with bellow Ryu code:
                 »   actions = [ofproto_parser.OFPActionOutput(output_port)]
                 when input_port== output_port, the packet is dropped.

                 I find a new action in ovs :
                               in_port
                                      Outputs  the  packet  on  the  port  from 
which  it  was
                                      received.
                 but I can't find this action in Ryu... could you please help 
me to write a code
            like this:
                 » if (in_port == port):
                     actions=[ofproto_parser.OFPActionInPort()]

                 I'm using ovs 2.7 and openflow 1.3

                 Thanks in advance



                 
------------------------------------------------------------------------------
                 Check out the vibrant tech community on one of the world's most
                 engaging tech sites, Slashdot.org!http://sdm.link/slashdot 
<http://sdm.link/slashdot>


                 _______________________________________________
                 Ryu-devel mailing list
            Ryu-devel@lists.sourceforge.net 
<mailto:Ryu-devel@lists.sourceforge.net>
            <mailto:Ryu-devel@lists.sourceforge.net 
<mailto:Ryu-devel@lists.sourceforge.net>>
            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>>





        
------------------------------------------------------------------------------
        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
        Ryu-devel@lists.sourceforge.net <mailto:Ryu-devel@lists.sourceforge.net>
        https://lists.sourceforge.net/lists/listinfo/ryu-devel
        <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
Ryu-devel@lists.sourceforge.net
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
Ryu-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to