Changes between Version 15 and Version 16 of Internal/OpenFlow/VendorTutorial
- Timestamp:
- Jun 7, 2013, 5:18:34 PM (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Internal/OpenFlow/VendorTutorial
v15 v16 305 305 306 306 === 3.3 Troubleshooting messages === 307 When things go wrong, messages will either be thrown away and never reach your handlers, or will exceptions that may or may not reach logging. One way to minimize this is to check that the messages can be built and read/written from/to !ChannelBuffers within your controller. !BasicFactory has a !dumpBuffer() function that returns a hexdump of a message as a string that you can check more thoroughly to see if what you think you have implemented is actually what you have.307 When things go wrong, messages will either be thrown away and never reach your handlers, or will throw exceptions that may or may not reach logging. One way to minimize this is to check that the messages can be built and read/written from/to !ChannelBuffers within your controller. Note, a local check won't prevent everything. In general, providing the correct getLength() value helps to prevent many common errors, so it is important to check that this function is returning the right value. !BasicFactory has a dumpBuffer() function that returns a hexdump of a message as a string that you can check more thoroughly to see if what you think you have implemented is actually what you have. 308 308 309 309 {{{ … … 327 327 00000000 00000000 328 328 }}} 329 330 Note, a local check won't prevent everything. In general, providing the correct getLength() value helps to prevent many common errors, so it is important to check that this function is returning the right value.331 329 332 330 == 4. Conclusion == #theend