Hi Yi-Shou
I did further testing today to reproduce it in my setup. It turns out
that the datapath of even my NetFPGA OpenFlow switch crashes when the
flow_mod with two actions (1 being the set_vid action and the 2nd
being the output action) is sent from NOX to the switch.

I've filed a bug with the NetFPGA team:
http://bugs.openflow.org/trac/openflow/ticket/292

I'll try to narrow this down further to see why having two actions
process the same bufid is having a problem.

Thanks for your patience.

Srini.

On Wed, Mar 9, 2011 at 1:32 AM, Yi-Shou
<[email protected]> wrote:
> Hi,
>
> I use wireshark to examine the flow mod, but I can't get any useful
> information. It doesn't matter, I will keep checking.
> Now I have two question:
> 1) When I execute the nox and openflow, what environment configuration do I
>
> have to set up? For example: network configuration.
>
> 2) I traceback error message about "ofdatapath: lib/ofpbuf.c:168:
> ofpbuf_prealloc_headroom: Assertion `size <= ofpbuf_headroom(b)' failed.",
> so I
>
> edit ofpbuf_prealloc_headroom and print out the headroom value, just see
> below:
>
> *******************lib/ofpbuf.c**************************
> void
> ofpbuf_prealloc_headroom(struct ofpbuf *b, size_t size)
> {
>     --------------------------modificiation--------------------------------
>
>     printf("headroom value: %d\n",ofpbuf_headroom(b));
>     assert(0 <= ofpbuf_headroom(b));
>
> ----------------------------------------------------------------------------
>     //assert(size <= ofpbuf_headroom(b));                       original
>
> }
>
> *********************************************************
>
>
> -----------------------------------------error
> message-------------------------------------------
> headroom value: 130
> headroom value: 130
>
> headroom value: 0
> *** glibc detected *** ofdatapath: double free or corruption (out):
> 0x081bca18
> ***
> *** glibc detected *** ofdatapath: corrupted double-linked list: 0x081bc9e0
> ***
> ======= Backtrace: =========
>
> /lib/libc.so.6[0x42887ab6]
> /lib/libc.so.6[0x42889d17]
> /lib/libc.so.6(__libc_calloc+0xba)[0x4288bbaa]
> /lib/ld-linux.so.2[0x4280b5eb]
> /lib/ld-linux.so.2[0x42807021]
> /lib/ld-linux.so.2[0x42808dff]
> /lib/ld-linux.so.2[0x42812a0c]
>
> /lib/ld-linux.so.2[0x4280eda6]
> /lib/ld-linux.so.2[0x428123f2]
> /lib/libc.so.6[0x429282e2]
> /lib/ld-linux.so.2[0x4280eda6]
> /lib/libc.so.6(__libc_dlopen_mode+0x55)[0x42928495]
> /lib/libc.so.6[0x429050f9]
> /lib/libc.so.6(backtrace+0xf3)[0x42905293]
>
> /lib/libc.so.6[0x428812a1]
> /lib/libc.so.6[0x428895a5]
> /lib/libc.so.6(cfree+0x59)[0x428899e9]
> ofdatapath(ofpbuf_delete+0x16)[0x805af16]
> ofdatapath[0x80523ef]
> ofdatapath(dp_run+0x39f)[0x80531af]
> ofdatapath(udatapath_cmd+0x615)[0x8054a65]
>
> ofdatapath(main+0x22)[0x8054b82]
> /lib/libc.so.6(__libc_start_main+0xdc)[0x42835e9c]
> ofdatapath[0x804f8d1]
> ======= Memory map: ========
> 08048000-08079000 r-xp 00000000 08:01 1578384    /usr/local/bin/ofdatapath
>
> 08079000-0807b000 rw-p 00031000 08:01 1578384    /usr/local/bin/ofdatapath
> 0807b000-081c6000 rw-p 00000000 00:00 0          [heap]
> 42801000-4281c000 r-xp 00000000 08:01 2357240    /lib/ld-2.5.so
>
> 4281c000-4281d000 r--p 0001a000 08:01 2357240    /lib/ld-2.5.so
> 4281d000-4281e000 rw-p 0001b000 08:01 2357240    /lib/ld-2.5.so
> 42820000-42973000 r-xp 00000000 08:01 2357242    /lib/libc-2.5.so
>
> 42973000-42975000 r--p 00152000 08:01 2357242    /lib/libc-2.5.so
> 42975000-42976000 rw-p 00154000 08:01 2357242    /lib/libc-2.5.so
> 42976000-42979000 rw-p 00000000 00:00 0
>
> 429a6000-429a9000 r-xp 00000000 08:01 2358413    /lib/libdl-2.5.so
> 429a9000-429aa000 r--p 00002000 08:01 2358413    /lib/libdl-2.5.so
> 429aa000-429ab000 rw-p 00003000 08:01 2358413    /lib/libdl-2.5.so
>
> 43900000-4390b000 r-xp 00000000 08:01 2357180
> /lib/libgcc_s-4.1.2-20080825.so.1
> 4390b000-4390c000 rw-p 0000a000 08:01 2357180
> /lib/libgcc_s-4.1.2-20080825.so.1
> b7600000-b7621000 rw-p 00000000 00:00 0
>
> b7621000-b7700000 ---p 00000000 00:00 0
> b77b8000-b783b000 rw-p 00000000 00:00 0
> b7845000-b7847000 rw-p 00000000 00:00 0
> b7847000-b7848000 r-xp 00000000 00:00 0          [vdso]
> bfb38000-bfb4d000 rw-p 00000000 00:00 0          [stack]
>
> --------------------------------------------------------------------------------------------------
>
> I find headroom values is "130, 130 and 0" , what are these value mean?why
> does
> the last value is 0?
>
>
> Any suggestion will be helpful, Thank you.
>
> Yi-Shou
>
> _______________________________________________
> openflow-discuss mailing list
> [email protected]
> https://mailman.stanford.edu/mailman/listinfo/openflow-discuss
>
>
_______________________________________________
openflow-discuss mailing list
[email protected]
https://mailman.stanford.edu/mailman/listinfo/openflow-discuss

Reply via email to