X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Futils%2FIPProtocols.java;fp=opendaylight%2Fsal%2Fapi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Futils%2FIPProtocols.java;h=66e6e65706fc2b23a1498b589a4e94fafbe3e7bf;hb=50a63ba6f7fac575419e9d9aca0a593b36b36269;hp=cdb4463c02acb2636a0991053f9e64951e3f3ba5;hpb=b8ee8732358e5c1b05b1c6b0fe788237660db2ff;p=controller.git diff --git a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IPProtocols.java b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IPProtocols.java index cdb4463c02..66e6e65706 100644 --- a/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IPProtocols.java +++ b/opendaylight/sal/api/src/main/java/org/opendaylight/controller/sal/utils/IPProtocols.java @@ -168,7 +168,8 @@ public enum IPProtocols { WESP("WESP",141), ROHC("ROHC",142); */ - private static final String regexNumberString = "^[0-9]+$"; + private static final String regexDecimalString = "^[0-9]{3}$"; + private static final String regexHexString = "^(0(x|X))[0-9a-fA-F]{2}$"; private String protocolName; private int protocolNumber; @@ -215,7 +216,10 @@ public enum IPProtocols { } public static short getProtocolNumberShort(String name) { - if (name.matches(regexNumberString)) { + if (name.matches(regexHexString)) { + return Short.valueOf(Short.decode(name)); + } + if (name.matches(regexDecimalString)) { return Short.valueOf(name); } for (IPProtocols proto : IPProtocols.values()) { @@ -227,7 +231,10 @@ public enum IPProtocols { } public static int getProtocolNumberInt(String name) { - if (name.matches(regexNumberString)) { + if (name.matches(regexHexString)) { + return Integer.valueOf(Integer.decode(name)); + } + if (name.matches(regexDecimalString)) { return Integer.valueOf(name); } for (IPProtocols proto : IPProtocols.values()) { @@ -239,7 +246,10 @@ public enum IPProtocols { } public static byte getProtocolNumberByte(String name) { - if (name.matches(regexNumberString)) { + if (name.matches(regexHexString)) { + return Integer.valueOf(Integer.decode(name)).byteValue(); + } + if (name.matches(regexDecimalString)) { return Integer.valueOf(name).byteValue(); } for (IPProtocols proto : IPProtocols.values()) {