As described in the POX manual and the OVS documentation, the actions available 
for learned entries are very limited: output and load.  Resubmit is not an 
option.  So the simple answer to your question is that you can't do this.

Instead, think of learning as just creating tables of data.  Then use 
non-learned entries to look up values in the "data" tables.  By looking up 
values into meta registers and stringing together multiple resubmits, you get a 
lot of flexibility, but it may take some thinking to structure your rules 
correctly.

For example, a learning switch might have a table 0 with the following 
pseudo-entry:
<Wildcard> : learn(table=2, match=dst_eth==current_src_eth, 
action=load(field=meta_register_1, value=current_in_port)), resubmit(table=2), 
resubmit(table=1)

And table 1 might be:
meta_register_1==1 : output(port=1)
meta_register_1==2 : enqueue(port=2, queue=42)
meta_register_1==0 : flood()

If you got a packet from source 01:02:03:0a:0b:0c on port 2, the learn action 
in table 0 would create a rule in table 2 like:
dst_eth==01:02:03:0a:0b:0c : load(field=meta_register_1, value=2)

.. or something like that.  (Sorry; I didn't check my work, but hopefully 
that'll give you the idea.)

-- Murphy

On Dec 8, 2013, at 3:25 PM, Jayanth Silesh <jayanthsileshs.for...@gmail.com> 
wrote:

> Hello,
> 
> I am trying to insert a resubmit action from a LEARN module. 
> 
>     learn = nx.nx_action_learn(table_id=1,hard_timeout=10)
>     fms = nx.flow_mod_spec.new # Just abbreviating this
>     learn.spec.append(fms( field=nx.NXM_OF_ETH_DST, match=nx.NXM_OF_ETH_DST ))
>     learn.spec.append(fms( field=nx.NXM_OF_ETH_SRC, match=nx.NXM_OF_ETH_SRC ))
>     
>   **** WHAT IS THE CORRECT SYNTAX FOR RESUBMIT IN LEARN ********
>    learn.spec.append(fms( field=nx.nx_action_resubmit(table = 10), 
> output=nx.resubmit_table ))
>     
>     msg1.actions.append(learn)
>     msg1.actions.append(nx.nx_action_resubmit.resubmit_table(table = 10))
>     event.connection.send(msg1)
> 
> 
> Thank you so much in advance.
> Jayanth 
> Graduate Student
> USC
> 
> 

Reply via email to