packet lib: icmpv6: correct typos

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmpv6: change the timing of bit shift

As well as the automatic calculation, do bit shift when encoding.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmpv6: move ND_OPTION_* constants from classes to the module

the purpose is to avoid keeping the same constant values at several places.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmpv6: include type and length in nd_option object

the purpose is to simplify the creation of the nd_router_advert object.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmpv6: omit type of nd_option object

because the kind of a nd_option object and type express the same thing.
with such changes, nd_option_la was inherited by nd_option_sla and nd_option_tla.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmpv6: support len(icmpv6.*)

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmpv6: support default parameters and the auto calculation of lengths

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmp: support len(icmp.*)

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: icmp: support default parameters

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: add unittests that use default parameters of IPv4/IPv6 and ICMP/ICMPv6

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
add STP application

This application provides the simple example of spanning tree.

"stplib" module controls exchange of BPDU packets
 and each bridge's port status(relay or block of frames).
The module sends "EventTopologyChange" event
 when the topology(the route which relays frames) changed.

"simple_switch_stp" module is a variation of "simple_switch".
 when the module received "EventTopologyChange" event,
 the module resets flow entries.

to run:
 $ ryu-manager ryu/app/simple_switch_stp.py

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka@nttcom.co.jp>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>