<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">Thank you so much for your response Murphy.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;">I shall try to workaround your idea.</div><div id="bloop_customfont" style="font-family:Helvetica,Arial;font-size:13px; color: rgba(0,0,0,1.0); margin: 0px; line-height: auto;"><br></div> <div id="bloop_sign_1386549880722692096"><span style="font-family:helvetica,arial;font-size:13px"></span><pre style="line-height: normal;">Thanks,
Jayanth 
Graduate Student
USC</pre><pre style="line-height: normal;"><br></pre></div> <br><p style="color:#A0A0A8;">On December 8, 2013 at 3:48:51 PM, Murphy McCauley (<a href="mailto://murphy.mccauley@gmail.com">murphy.mccauley@gmail.com</a>) wrote:</p> <blockquote type="cite" class="clean_bq"><span><div><div>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.
<br>
<br>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.
<br>
<br>For example, a learning switch might have a table 0 with the following pseudo-entry:
<br><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)
<br>
<br>And table 1 might be:
<br>meta_register_1==1 : output(port=1)
<br>meta_register_1==2 : enqueue(port=2, queue=42)
<br>meta_register_1==0 : flood()
<br>
<br>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:
<br>dst_eth==01:02:03:0a:0b:0c : load(field=meta_register_1, value=2)
<br>
<br>.. or something like that.  (Sorry; I didn't check my work, but hopefully that'll give you the idea.)
<br>
<br>-- Murphy
<br>
<br>On Dec 8, 2013, at 3:25 PM, Jayanth Silesh <jayanthsileshs.forums@gmail.com> wrote:
<br>
<br>> Hello,
<br>>  
<br>> I am trying to insert a resubmit action from a LEARN module.  
<br>>  
<br>>     learn = nx.nx_action_learn(table_id=1,hard_timeout=10)
<br>>     fms = nx.flow_mod_spec.new # Just abbreviating this
<br>>     learn.spec.append(fms( field=nx.NXM_OF_ETH_DST, match=nx.NXM_OF_ETH_DST ))
<br>>     learn.spec.append(fms( field=nx.NXM_OF_ETH_SRC, match=nx.NXM_OF_ETH_SRC ))
<br>>      
<br>>   **** WHAT IS THE CORRECT SYNTAX FOR RESUBMIT IN LEARN ********
<br>>    learn.spec.append(fms( field=nx.nx_action_resubmit(table = 10), output=nx.resubmit_table ))
<br>>      
<br>>     msg1.actions.append(learn)
<br>>     msg1.actions.append(nx.nx_action_resubmit.resubmit_table(table = 10))
<br>>     event.connection.send(msg1)
<br>>  
<br>>  
<br>> Thank you so much in advance.
<br>> Jayanth  
<br>> Graduate Student
<br>> USC
<br>>  
<br>>  
<br>
<br></div></div></span></blockquote></body></html>