[pox-dev] Resubmit inside 'learn'
Murphy McCauley
murphy.mccauley at gmail.com
Sun Dec 8 15:48:48 PST 2013
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.forums at 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
>
>
More information about the pox-dev
mailing list