ONOS-1756: Improve CLI auto completers

- Add more ICMP types and codes
- Add completer for --icmp6Type
- Add completer for --icmp6Code
- Add completer for --extHdr
    It is a multiValued option.
    For example, the following command will match an IPv6 packet with both fragment and routing extension header:
    add-point-intent --ethType IPV6 --extHdr FRAG --extHdr ROUTING
    NOTE: OVS 2.3.1 does not support OFPXMC_OFB_IPV6_EXTHDR match field yet.
- Change parameter of TrafficSelector.matchIPv6ExthdrFlags() from int to short since that field is 9 bits only

Change-Id: I55944399f3985f2cc09330a726f21983de273341
diff --git a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
index 96b5066..e887112 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/DefaultTrafficSelector.java
@@ -293,7 +293,7 @@
         }
 
         @Override
-        public Builder matchIPv6ExthdrFlags(int exthdrFlags) {
+        public Builder matchIPv6ExthdrFlags(short exthdrFlags) {
             return add(Criteria.matchIPv6ExthdrFlags(exthdrFlags));
         }
 
diff --git a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
index 091846a..24c10d5 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/TrafficSelector.java
@@ -306,7 +306,7 @@
          * @param exthdrFlags the IPv6 Extension Header pseudo-field fiags
          * @return a selection builder
          */
-        public Builder matchIPv6ExthdrFlags(int exthdrFlags);
+        public Builder matchIPv6ExthdrFlags(short exthdrFlags);
 
         /**
          * Matches an optical signal ID or lambda.
diff --git a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
index bbf2674..5712c90 100644
--- a/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
+++ b/core/api/src/main/java/org/onosproject/net/flow/criteria/Criterion.java
@@ -145,27 +145,27 @@
      */
     public enum IPv6ExthdrFlags {
         /** "No next header" encountered. */
-        NONEXT(1 << 0),
+        NONEXT((short) (1 << 0)),
         /** Encrypted Sec Payload header present. */
-        ESP(1 << 1),
+        ESP((short) (1 << 1)),
         /** Authentication header present. */
-        AUTH(1 << 2),
+        AUTH((short) (1 << 2)),
         /** 1 or 2 dest headers present. */
-        DEST(1 << 3),
+        DEST((short) (1 << 3)),
         /** Fragment header present. */
-        FRAG(1 << 4),
+        FRAG((short) (1 << 4)),
         /** Router header present. */
-        ROUTER(1 << 5),
+        ROUTER((short) (1 << 5)),
         /** Hop-by-hop header present. */
-        HOP(1 << 6),
+        HOP((short) (1 << 6)),
         /** Unexpected repeats encountered. */
-        UNREP(1 << 7),
+        UNREP((short) (1 << 7)),
         /** Unexpected sequencing encountered. */
-        UNSEQ(1 << 8);
+        UNSEQ((short) (1 << 8));
 
-        private int value;
+        private short value;
 
-        IPv6ExthdrFlags(int value) {
+        IPv6ExthdrFlags(short value) {
             this.value = value;
         }
 
@@ -174,7 +174,7 @@
          *
          * @return the value as an integer
          */
-        public int getValue() {
+        public short getValue() {
             return this.value;
         }
     }