There's no super-shorthand for this.  Try:
fms(load=nx.NXM_NX_REG5, src=nx.nx_learn_src_immediate.u32(7))

I had to look this up, and in the process realized there seemed to be a small 
bug... you should pull the latest version from the dart branch.  If you don't, 
just put a "None" argument before the real argument to u32().

-- Murphy

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

> Hi Murphy,
> 
> when I insert this statement,
> learn.spec.append(fms( field=nx.NXM_NX_REG5, load=7 ))
> 
> The following error occurs. Is the Syntax ‘load’, I tried,match and output 
> too.
> 
> 
> ERROR:core:Exception while handling OpenFlowNexus!ConnectionUp...
> Traceback (most recent call last):
>   File "/home/mininet/pox2/pox/lib/revent/revent.py", line 231, in 
> raiseEventNoErrors
>     return self.raiseEvent(event, *args, **kw)
>   File "/home/mininet/pox2/pox/lib/revent/revent.py", line 278, in raiseEvent
>     rv = event._invoke(handler, *args, **kw)
>   File "/home/mininet/pox2/pox/lib/revent/revent.py", line 156, in _invoke
>     return handler(self, *args, **kw)
>   File "/home/mininet/pox2/pox/misc/cust2.py", line 59, in 
> _handle_ConnectionUp
>     learn.spec.append(fms( field=nx.NXM_NX_REG5, load=7 ))
>   File "/home/mininet/pox2/pox/openflow/nicira.py", line 1462, in new
>     if dst is not None: dst_inst = dst(*dstarg,**dstkw)
>   File "/home/mininet/pox2/pox/openflow/nicira.py", line 1306, in __init__
>     data = field().pack(omittable = False, header_only = True)
> TypeError: 'int' object is not callable
> Thanks,
> Jayanth 
> Graduate Student
> USC
> 
> 
> 
> On December 8, 2013 at 6:47:22 PM, Murphy McCauley 
> (murphy.mccau...@gmail.com) wrote:
> 
>> On Dec 8, 2013, at 6:18 PM, Jayanth Silesh <jayanthsileshs.for...@gmail.com> 
>> wrote: 
>> 
>> > Hi Murphy, 
>> > 
>> > Question1: 
>> > 
>> > The problem is that I need the resubmit command in the flow_entry. 
>> > Say that there is already an entry in table 2 as 
>> > in_port=7,….,action= resubmit(,3). 
>> > 
>> > Is there a way that from table3, I can use the LEARN msg to ‘append’ an 
>> > action in the table 2 so that it becomes, 
>> > in_port=7,…..,action=( load(reg_5=7) ,resubmit(,3)) 
>> > 
>> > Will the learn action, add an entry or can it modify the existing entry in 
>> > the table? 
>> 
>> No. However, consider making the entry in table 2: 
>> in_port==7 : resubmit(table=11), resubmit(table=3) 
>> 
>> By default, have table 11 (a table chosen at random for the example) empty. 
>> You can use a learn action to learn an entry into it like... 
>> in_port==7 : load(field=reg5, value=7) 
>> 
>> .. and the result should be what you wanted. 
>> 
>> 
>> In the above case, the new table entry uses in_port to match against, but 
>> you could use a metafield instead if your match conditions are complicated. 
>> Picking the values 14 and 42 at random, in table 2 you'd have: 
>> in_port==7 : load(field=reg14, value=42), resubmit(table=11), 
>> resubmit(table=3) 
>> 
>> In table 11: 
>> reg14==42 : load(field=reg5, value=7) 
>> 
>> > Question2: 
>> > Is there a resubmit action on the Nicira extensions for NOX? 
>> 
>> No. There couldn't be. The problem isn't that POX doesn't support this. Open 
>> vSwitch itself doesn't support this. It's not part of the learn action by 
>> definition. 
>> 
>> (On top of that, no noxrepo version of NOX supports the learn action at 
>> all.) 
>> 
>> > Question3: 
>> > 
>> > How do load the register with some value, it’s throwing errors on this. Is 
>> > the naming convention for reg wrong? 
>> > 
>> > learn.spec.append(fms( field=nx.re51, load=7 )) 
>> 
>> As suggested in the last entry of the FAQ, you should post error messages. 
>> 
>> The registers are named like NXM_NX_REGx, and should also be accessible as 
>> NXM_NX_REG[x]. I think "x" is between 0 and 15 on most or all switches. 
>> 
>> 
>> -- Murphy 
>> 
>> > Thanks, 
>> > Jayanth 
>> > Graduate Student 
>> > USC 
>> > 
>> > 
>> > 
>> > On December 8, 2013 at 3:48:51 PM, Murphy McCauley 
>> > (murphy.mccau...@gmail.com) wrote: 
>> > 
>> >> meta_register_1 
>> 

Reply via email to