ofctl_rest: support OpenFlow1.2

this patch makes ofctl_rest enable use of OpenFlow1.2.

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
ofctl_v1_2/3: support OXM field names

this patch gets match field names to support OXM field names.

NOTE: OpenFlow1.0 does not support OXM field names.

the compatibility is as follows:

  dl_src    eth_src
  dl_dst    eth_dst
  dl_type   eth_type
  dl_vlan   vlan_vid
  nw_src    ipv4_src
  nw_dst    ipv4_dst
  nw_proto  ip_proto
  tp_src    tcp_src or udp_src
  tp_dst    tcp_dst or udp_dst

for example, the following commands for ofctl_rest install the same flow entry.

curl -X POST -d '{"dpid": 1,
                  "match": {"dl_type": 2048,
                            "nw_src": "192.168.1.1"},
                  "actions": [{"type": "OUTPUT",
                               "port": 2}]}' http://localhost:8080/stats/flowentry/add

curl -X POST -d '{"dpid": 1,
                  "match": {"eth_type": 2048,
                            "ipv4_src": 192.168.1.1"},
                  "actions": [{"type": "OUTPUT",
                               "port": 2}]}' http://localhost:8080/stats/flowentry/add

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
ofctl_v1_2/3: support IPv6

this patch implements the match conditions using IPv6.

NOTE: OpenFlow1.0 does not support IPv6.

e.g. using ofctl_rest)

curl -X POST -d '{"dpid": 1,
                  "match": {"eth_type": 34525,
                            "ipv6_src": "fe08:2001::/64",
                            "ipv6_dst": "ff02::1"},
                  "actions": [{"type": "OUTPUT",
                               "port": 2}]}' http://localhost:8080/stats/flowentry/add

Signed-off-by: Yuichi Ito <ito.yuichi0@gmail.com>
firewall: packet blocking log for DENY rule

rest_firewall outputs packet blocking log.
However it was not output about DENY rules,
 it outputted only table-miss packets.
This patch improves it.

Signed-off-by: WATANABE Fumitaka <watanabe.fumitaka1@gmail.com>
Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
packet lib: igmp: support IGMP v3

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

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