Fix toward ONOS-960 - Signed/unsigned value mismatch for OpenFlow-related
match/action conditions
Fixed the signed/unsigned issue for the match conditions
Also:
* Reordered some of the code in CriterionCodec.java so the order
of handling various Criterion types follows the order as defined in
Criterion.java
- In the process, removed a duplicated entry for Type.MPLS_LABE
- Fixed an issue with TCP/UDP/SCTP ports being accessed as 8-bit integers
instead of 16-bit integers
* Updated some of the unit tests in CriterionCodecTest.java to use
larger integer values that could expose better potential bugs in
the tested code.
Change-Id: I531d13bd258ebc559ce6be716863c01613427a98
Showing
6 changed files
with
341 additions
and
325 deletions
| ... | @@ -59,7 +59,7 @@ public final class Criteria { | ... | @@ -59,7 +59,7 @@ public final class Criteria { |
| 59 | /** | 59 | /** |
| 60 | * Creates a match on METADATA field using the specified value. | 60 | * Creates a match on METADATA field using the specified value. |
| 61 | * | 61 | * |
| 62 | - * @param metadata metadata value | 62 | + * @param metadata metadata value (64 bits data) |
| 63 | * @return match criterion | 63 | * @return match criterion |
| 64 | */ | 64 | */ |
| 65 | public static Criterion matchMetadata(Long metadata) { | 65 | public static Criterion matchMetadata(Long metadata) { |
| ... | @@ -91,10 +91,10 @@ public final class Criteria { | ... | @@ -91,10 +91,10 @@ public final class Criteria { |
| 91 | /** | 91 | /** |
| 92 | * Creates a match on ETH_TYPE field using the specified value. | 92 | * Creates a match on ETH_TYPE field using the specified value. |
| 93 | * | 93 | * |
| 94 | - * @param ethType eth type value | 94 | + * @param ethType eth type value (16 bits unsigned integer) |
| 95 | * @return match criterion | 95 | * @return match criterion |
| 96 | */ | 96 | */ |
| 97 | - public static Criterion matchEthType(Short ethType) { | 97 | + public static Criterion matchEthType(int ethType) { |
| 98 | return new EthTypeCriterion(ethType); | 98 | return new EthTypeCriterion(ethType); |
| 99 | } | 99 | } |
| 100 | 100 | ||
| ... | @@ -111,40 +111,40 @@ public final class Criteria { | ... | @@ -111,40 +111,40 @@ public final class Criteria { |
| 111 | /** | 111 | /** |
| 112 | * Creates a match on VLAN PCP field using the specified value. | 112 | * Creates a match on VLAN PCP field using the specified value. |
| 113 | * | 113 | * |
| 114 | - * @param vlanPcp vlan pcp value | 114 | + * @param vlanPcp vlan pcp value (3 bits) |
| 115 | * @return match criterion | 115 | * @return match criterion |
| 116 | */ | 116 | */ |
| 117 | - public static Criterion matchVlanPcp(Byte vlanPcp) { | 117 | + public static Criterion matchVlanPcp(byte vlanPcp) { |
| 118 | return new VlanPcpCriterion(vlanPcp); | 118 | return new VlanPcpCriterion(vlanPcp); |
| 119 | } | 119 | } |
| 120 | 120 | ||
| 121 | /** | 121 | /** |
| 122 | * Creates a match on IP DSCP field using the specified value. | 122 | * Creates a match on IP DSCP field using the specified value. |
| 123 | * | 123 | * |
| 124 | - * @param ipDscp ip dscp value | 124 | + * @param ipDscp ip dscp value (6 bits) |
| 125 | * @return match criterion | 125 | * @return match criterion |
| 126 | */ | 126 | */ |
| 127 | - public static Criterion matchIPDscp(Byte ipDscp) { | 127 | + public static Criterion matchIPDscp(byte ipDscp) { |
| 128 | return new IPDscpCriterion(ipDscp); | 128 | return new IPDscpCriterion(ipDscp); |
| 129 | } | 129 | } |
| 130 | 130 | ||
| 131 | /** | 131 | /** |
| 132 | * Creates a match on IP ECN field using the specified value. | 132 | * Creates a match on IP ECN field using the specified value. |
| 133 | * | 133 | * |
| 134 | - * @param ipEcn ip ecn value | 134 | + * @param ipEcn ip ecn value (3 bits) |
| 135 | * @return match criterion | 135 | * @return match criterion |
| 136 | */ | 136 | */ |
| 137 | - public static Criterion matchIPEcn(Byte ipEcn) { | 137 | + public static Criterion matchIPEcn(byte ipEcn) { |
| 138 | return new IPEcnCriterion(ipEcn); | 138 | return new IPEcnCriterion(ipEcn); |
| 139 | } | 139 | } |
| 140 | 140 | ||
| 141 | /** | 141 | /** |
| 142 | * Creates a match on IP proto field using the specified value. | 142 | * Creates a match on IP proto field using the specified value. |
| 143 | * | 143 | * |
| 144 | - * @param proto ip protocol value | 144 | + * @param proto ip protocol value (8 bits unsigned integer) |
| 145 | * @return match criterion | 145 | * @return match criterion |
| 146 | */ | 146 | */ |
| 147 | - public static Criterion matchIPProtocol(Byte proto) { | 147 | + public static Criterion matchIPProtocol(short proto) { |
| 148 | return new IPProtocolCriterion(proto); | 148 | return new IPProtocolCriterion(proto); |
| 149 | } | 149 | } |
| 150 | 150 | ||
| ... | @@ -171,50 +171,50 @@ public final class Criteria { | ... | @@ -171,50 +171,50 @@ public final class Criteria { |
| 171 | /** | 171 | /** |
| 172 | * Creates a match on TCP source port field using the specified value. | 172 | * Creates a match on TCP source port field using the specified value. |
| 173 | * | 173 | * |
| 174 | - * @param tcpPort TCP source port | 174 | + * @param tcpPort TCP source port (16 bits unsigned integer) |
| 175 | * @return match criterion | 175 | * @return match criterion |
| 176 | */ | 176 | */ |
| 177 | - public static Criterion matchTcpSrc(Short tcpPort) { | 177 | + public static Criterion matchTcpSrc(int tcpPort) { |
| 178 | return new TcpPortCriterion(tcpPort, Type.TCP_SRC); | 178 | return new TcpPortCriterion(tcpPort, Type.TCP_SRC); |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | /** | 181 | /** |
| 182 | * Creates a match on TCP destination port field using the specified value. | 182 | * Creates a match on TCP destination port field using the specified value. |
| 183 | * | 183 | * |
| 184 | - * @param tcpPort TCP destination port | 184 | + * @param tcpPort TCP destination port (16 bits unsigned integer) |
| 185 | * @return match criterion | 185 | * @return match criterion |
| 186 | */ | 186 | */ |
| 187 | - public static Criterion matchTcpDst(Short tcpPort) { | 187 | + public static Criterion matchTcpDst(int tcpPort) { |
| 188 | return new TcpPortCriterion(tcpPort, Type.TCP_DST); | 188 | return new TcpPortCriterion(tcpPort, Type.TCP_DST); |
| 189 | } | 189 | } |
| 190 | 190 | ||
| 191 | /** | 191 | /** |
| 192 | * Creates a match on UDP source port field using the specified value. | 192 | * Creates a match on UDP source port field using the specified value. |
| 193 | * | 193 | * |
| 194 | - * @param udpPort UDP source port | 194 | + * @param udpPort UDP source port (16 bits unsigned integer) |
| 195 | * @return match criterion | 195 | * @return match criterion |
| 196 | */ | 196 | */ |
| 197 | - public static Criterion matchUdpSrc(Short udpPort) { | 197 | + public static Criterion matchUdpSrc(int udpPort) { |
| 198 | return new UdpPortCriterion(udpPort, Type.UDP_SRC); | 198 | return new UdpPortCriterion(udpPort, Type.UDP_SRC); |
| 199 | } | 199 | } |
| 200 | 200 | ||
| 201 | /** | 201 | /** |
| 202 | * Creates a match on UDP destination port field using the specified value. | 202 | * Creates a match on UDP destination port field using the specified value. |
| 203 | * | 203 | * |
| 204 | - * @param udpPort UDP destination port | 204 | + * @param udpPort UDP destination port (16 bits unsigned integer) |
| 205 | * @return match criterion | 205 | * @return match criterion |
| 206 | */ | 206 | */ |
| 207 | - public static Criterion matchUdpDst(Short udpPort) { | 207 | + public static Criterion matchUdpDst(int udpPort) { |
| 208 | return new UdpPortCriterion(udpPort, Type.UDP_DST); | 208 | return new UdpPortCriterion(udpPort, Type.UDP_DST); |
| 209 | } | 209 | } |
| 210 | 210 | ||
| 211 | /** | 211 | /** |
| 212 | * Creates a match on SCTP source port field using the specified value. | 212 | * Creates a match on SCTP source port field using the specified value. |
| 213 | * | 213 | * |
| 214 | - * @param sctpPort SCTP source port | 214 | + * @param sctpPort SCTP source port (16 bits unsigned integer) |
| 215 | * @return match criterion | 215 | * @return match criterion |
| 216 | */ | 216 | */ |
| 217 | - public static Criterion matchSctpSrc(Short sctpPort) { | 217 | + public static Criterion matchSctpSrc(int sctpPort) { |
| 218 | return new SctpPortCriterion(sctpPort, Type.SCTP_SRC); | 218 | return new SctpPortCriterion(sctpPort, Type.SCTP_SRC); |
| 219 | } | 219 | } |
| 220 | 220 | ||
| ... | @@ -222,30 +222,30 @@ public final class Criteria { | ... | @@ -222,30 +222,30 @@ public final class Criteria { |
| 222 | * Creates a match on SCTP destination port field using the specified | 222 | * Creates a match on SCTP destination port field using the specified |
| 223 | * value. | 223 | * value. |
| 224 | * | 224 | * |
| 225 | - * @param sctpPort SCTP destination port | 225 | + * @param sctpPort SCTP destination port (16 bits unsigned integer) |
| 226 | * @return match criterion | 226 | * @return match criterion |
| 227 | */ | 227 | */ |
| 228 | - public static Criterion matchSctpDst(Short sctpPort) { | 228 | + public static Criterion matchSctpDst(int sctpPort) { |
| 229 | return new SctpPortCriterion(sctpPort, Type.SCTP_DST); | 229 | return new SctpPortCriterion(sctpPort, Type.SCTP_DST); |
| 230 | } | 230 | } |
| 231 | 231 | ||
| 232 | /** | 232 | /** |
| 233 | * Creates a match on ICMP type field using the specified value. | 233 | * Creates a match on ICMP type field using the specified value. |
| 234 | * | 234 | * |
| 235 | - * @param icmpType ICMP type | 235 | + * @param icmpType ICMP type (8 bits unsigned integer) |
| 236 | * @return match criterion | 236 | * @return match criterion |
| 237 | */ | 237 | */ |
| 238 | - public static Criterion matchIcmpType(Byte icmpType) { | 238 | + public static Criterion matchIcmpType(short icmpType) { |
| 239 | return new IcmpTypeCriterion(icmpType); | 239 | return new IcmpTypeCriterion(icmpType); |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | /** | 242 | /** |
| 243 | * Creates a match on ICMP code field using the specified value. | 243 | * Creates a match on ICMP code field using the specified value. |
| 244 | * | 244 | * |
| 245 | - * @param icmpCode ICMP code | 245 | + * @param icmpCode ICMP code (8 bits unsigned integer) |
| 246 | * @return match criterion | 246 | * @return match criterion |
| 247 | */ | 247 | */ |
| 248 | - public static Criterion matchIcmpCode(Byte icmpCode) { | 248 | + public static Criterion matchIcmpCode(short icmpCode) { |
| 249 | return new IcmpCodeCriterion(icmpCode); | 249 | return new IcmpCodeCriterion(icmpCode); |
| 250 | } | 250 | } |
| 251 | 251 | ||
| ... | @@ -272,30 +272,30 @@ public final class Criteria { | ... | @@ -272,30 +272,30 @@ public final class Criteria { |
| 272 | /** | 272 | /** |
| 273 | * Creates a match on IPv6 flow label field using the specified value. | 273 | * Creates a match on IPv6 flow label field using the specified value. |
| 274 | * | 274 | * |
| 275 | - * @param flowLabel IPv6 flow label | 275 | + * @param flowLabel IPv6 flow label (20 bits) |
| 276 | * @return match criterion | 276 | * @return match criterion |
| 277 | */ | 277 | */ |
| 278 | - public static Criterion matchIPv6FlowLabel(Integer flowLabel) { | 278 | + public static Criterion matchIPv6FlowLabel(int flowLabel) { |
| 279 | return new IPv6FlowLabelCriterion(flowLabel); | 279 | return new IPv6FlowLabelCriterion(flowLabel); |
| 280 | } | 280 | } |
| 281 | 281 | ||
| 282 | /** | 282 | /** |
| 283 | * Creates a match on ICMPv6 type field using the specified value. | 283 | * Creates a match on ICMPv6 type field using the specified value. |
| 284 | * | 284 | * |
| 285 | - * @param icmpv6Type ICMPv6 type | 285 | + * @param icmpv6Type ICMPv6 type (8 bits unsigned integer) |
| 286 | * @return match criterion | 286 | * @return match criterion |
| 287 | */ | 287 | */ |
| 288 | - public static Criterion matchIcmpv6Type(Byte icmpv6Type) { | 288 | + public static Criterion matchIcmpv6Type(short icmpv6Type) { |
| 289 | return new Icmpv6TypeCriterion(icmpv6Type); | 289 | return new Icmpv6TypeCriterion(icmpv6Type); |
| 290 | } | 290 | } |
| 291 | 291 | ||
| 292 | /** | 292 | /** |
| 293 | * Creates a match on ICMPv6 code field using the specified value. | 293 | * Creates a match on ICMPv6 code field using the specified value. |
| 294 | * | 294 | * |
| 295 | - * @param icmpv6Code ICMPv6 code | 295 | + * @param icmpv6Code ICMPv6 code (8 bits unsigned integer) |
| 296 | * @return match criterion | 296 | * @return match criterion |
| 297 | */ | 297 | */ |
| 298 | - public static Criterion matchIcmpv6Code(Byte icmpv6Code) { | 298 | + public static Criterion matchIcmpv6Code(short icmpv6Code) { |
| 299 | return new Icmpv6CodeCriterion(icmpv6Code); | 299 | return new Icmpv6CodeCriterion(icmpv6Code); |
| 300 | } | 300 | } |
| 301 | 301 | ||
| ... | @@ -335,7 +335,7 @@ public final class Criteria { | ... | @@ -335,7 +335,7 @@ public final class Criteria { |
| 335 | /** | 335 | /** |
| 336 | * Creates a match on MPLS label. | 336 | * Creates a match on MPLS label. |
| 337 | * | 337 | * |
| 338 | - * @param mplsLabel MPLS label | 338 | + * @param mplsLabel MPLS label (20 bits) |
| 339 | * @return match criterion | 339 | * @return match criterion |
| 340 | */ | 340 | */ |
| 341 | public static Criterion matchMplsLabel(Integer mplsLabel) { | 341 | public static Criterion matchMplsLabel(Integer mplsLabel) { |
| ... | @@ -345,20 +345,20 @@ public final class Criteria { | ... | @@ -345,20 +345,20 @@ public final class Criteria { |
| 345 | /** | 345 | /** |
| 346 | * Creates a match on lambda field using the specified value. | 346 | * Creates a match on lambda field using the specified value. |
| 347 | * | 347 | * |
| 348 | - * @param lambda lambda to match on | 348 | + * @param lambda lambda to match on (16 bits unsigned integer) |
| 349 | * @return match criterion | 349 | * @return match criterion |
| 350 | */ | 350 | */ |
| 351 | - public static Criterion matchLambda(Short lambda) { | 351 | + public static Criterion matchLambda(int lambda) { |
| 352 | return new LambdaCriterion(lambda, Type.OCH_SIGID); | 352 | return new LambdaCriterion(lambda, Type.OCH_SIGID); |
| 353 | } | 353 | } |
| 354 | 354 | ||
| 355 | /** | 355 | /** |
| 356 | * Creates a match on optical signal type using the specified value. | 356 | * Creates a match on optical signal type using the specified value. |
| 357 | * | 357 | * |
| 358 | - * @param sigType optical signal type | 358 | + * @param sigType optical signal type (16 bits unsigned integer) |
| 359 | * @return match criterion | 359 | * @return match criterion |
| 360 | */ | 360 | */ |
| 361 | - public static Criterion matchOpticalSignalType(Short sigType) { | 361 | + public static Criterion matchOpticalSignalType(int sigType) { |
| 362 | return new OpticalSignalTypeCriterion(sigType, Type.OCH_SIGTYPE); | 362 | return new OpticalSignalTypeCriterion(sigType, Type.OCH_SIGTYPE); |
| 363 | } | 363 | } |
| 364 | 364 | ||
| ... | @@ -424,14 +424,14 @@ public final class Criteria { | ... | @@ -424,14 +424,14 @@ public final class Criteria { |
| 424 | * Implementation of Metadata criterion. | 424 | * Implementation of Metadata criterion. |
| 425 | */ | 425 | */ |
| 426 | public static final class MetadataCriterion implements Criterion { | 426 | public static final class MetadataCriterion implements Criterion { |
| 427 | - private final Long metadata; | 427 | + private final long metadata; |
| 428 | 428 | ||
| 429 | /** | 429 | /** |
| 430 | * Constructor. | 430 | * Constructor. |
| 431 | * | 431 | * |
| 432 | - * @param metadata the metadata to match | 432 | + * @param metadata the metadata to match (64 bits data) |
| 433 | */ | 433 | */ |
| 434 | - public MetadataCriterion(Long metadata) { | 434 | + public MetadataCriterion(long metadata) { |
| 435 | this.metadata = metadata; | 435 | this.metadata = metadata; |
| 436 | } | 436 | } |
| 437 | 437 | ||
| ... | @@ -443,9 +443,9 @@ public final class Criteria { | ... | @@ -443,9 +443,9 @@ public final class Criteria { |
| 443 | /** | 443 | /** |
| 444 | * Gets the metadata to match. | 444 | * Gets the metadata to match. |
| 445 | * | 445 | * |
| 446 | - * @return the metadata to match | 446 | + * @return the metadata to match (64 bits data) |
| 447 | */ | 447 | */ |
| 448 | - public Long metadata() { | 448 | + public long metadata() { |
| 449 | return metadata; | 449 | return metadata; |
| 450 | } | 450 | } |
| 451 | 451 | ||
| ... | @@ -534,18 +534,20 @@ public final class Criteria { | ... | @@ -534,18 +534,20 @@ public final class Criteria { |
| 534 | } | 534 | } |
| 535 | 535 | ||
| 536 | /** | 536 | /** |
| 537 | - * Implementation of Ethernet type criterion. | 537 | + * Implementation of Ethernet type criterion (16 bits unsigned integer). |
| 538 | */ | 538 | */ |
| 539 | public static final class EthTypeCriterion implements Criterion { | 539 | public static final class EthTypeCriterion implements Criterion { |
| 540 | - private final Short ethType; | 540 | + private static final int MASK = 0xffff; |
| 541 | + private final int ethType; // Ethernet type value: 16 bits | ||
| 541 | 542 | ||
| 542 | /** | 543 | /** |
| 543 | * Constructor. | 544 | * Constructor. |
| 544 | * | 545 | * |
| 545 | - * @param ethType the Ethernet frame type to match | 546 | + * @param ethType the Ethernet frame type to match (16 bits unsigned |
| 547 | + * integer) | ||
| 546 | */ | 548 | */ |
| 547 | - public EthTypeCriterion(Short ethType) { | 549 | + public EthTypeCriterion(int ethType) { |
| 548 | - this.ethType = ethType; | 550 | + this.ethType = ethType & MASK; |
| 549 | } | 551 | } |
| 550 | 552 | ||
| 551 | @Override | 553 | @Override |
| ... | @@ -556,16 +558,16 @@ public final class Criteria { | ... | @@ -556,16 +558,16 @@ public final class Criteria { |
| 556 | /** | 558 | /** |
| 557 | * Gets the Ethernet frame type to match. | 559 | * Gets the Ethernet frame type to match. |
| 558 | * | 560 | * |
| 559 | - * @return the Ethernet frame type to match | 561 | + * @return the Ethernet frame type to match (16 bits unsigned integer) |
| 560 | */ | 562 | */ |
| 561 | - public Short ethType() { | 563 | + public int ethType() { |
| 562 | return ethType; | 564 | return ethType; |
| 563 | } | 565 | } |
| 564 | 566 | ||
| 565 | @Override | 567 | @Override |
| 566 | public String toString() { | 568 | public String toString() { |
| 567 | return toStringHelper(type().toString()) | 569 | return toStringHelper(type().toString()) |
| 568 | - .add("ethType", Long.toHexString(ethType & 0xffff)) | 570 | + .add("ethType", Long.toHexString(ethType)) |
| 569 | .toString(); | 571 | .toString(); |
| 570 | } | 572 | } |
| 571 | 573 | ||
| ... | @@ -583,8 +585,6 @@ public final class Criteria { | ... | @@ -583,8 +585,6 @@ public final class Criteria { |
| 583 | EthTypeCriterion that = (EthTypeCriterion) obj; | 585 | EthTypeCriterion that = (EthTypeCriterion) obj; |
| 584 | return Objects.equals(ethType, that.ethType) && | 586 | return Objects.equals(ethType, that.ethType) && |
| 585 | Objects.equals(this.type(), that.type()); | 587 | Objects.equals(this.type(), that.type()); |
| 586 | - | ||
| 587 | - | ||
| 588 | } | 588 | } |
| 589 | return false; | 589 | return false; |
| 590 | } | 590 | } |
| ... | @@ -645,18 +645,19 @@ public final class Criteria { | ... | @@ -645,18 +645,19 @@ public final class Criteria { |
| 645 | } | 645 | } |
| 646 | 646 | ||
| 647 | /** | 647 | /** |
| 648 | - * Implementation of VLAN priority criterion. | 648 | + * Implementation of VLAN priority criterion (3 bits). |
| 649 | */ | 649 | */ |
| 650 | public static final class VlanPcpCriterion implements Criterion { | 650 | public static final class VlanPcpCriterion implements Criterion { |
| 651 | - private final Byte vlanPcp; | 651 | + private static final byte MASK = 0x7; |
| 652 | + private final byte vlanPcp; // VLAN pcp value: 3 bits | ||
| 652 | 653 | ||
| 653 | /** | 654 | /** |
| 654 | * Constructor. | 655 | * Constructor. |
| 655 | * | 656 | * |
| 656 | - * @param vlanPcp the VLAN priority to match | 657 | + * @param vlanPcp the VLAN priority to match (3 bits) |
| 657 | */ | 658 | */ |
| 658 | - public VlanPcpCriterion(Byte vlanPcp) { | 659 | + public VlanPcpCriterion(byte vlanPcp) { |
| 659 | - this.vlanPcp = vlanPcp; | 660 | + this.vlanPcp = (byte) (vlanPcp & MASK); |
| 660 | } | 661 | } |
| 661 | 662 | ||
| 662 | @Override | 663 | @Override |
| ... | @@ -667,16 +668,16 @@ public final class Criteria { | ... | @@ -667,16 +668,16 @@ public final class Criteria { |
| 667 | /** | 668 | /** |
| 668 | * Gets the VLAN priority to match. | 669 | * Gets the VLAN priority to match. |
| 669 | * | 670 | * |
| 670 | - * @return the VLAN priority to match | 671 | + * @return the VLAN priority to match (3 bits) |
| 671 | */ | 672 | */ |
| 672 | - public Byte priority() { | 673 | + public byte priority() { |
| 673 | return vlanPcp; | 674 | return vlanPcp; |
| 674 | } | 675 | } |
| 675 | 676 | ||
| 676 | @Override | 677 | @Override |
| 677 | public String toString() { | 678 | public String toString() { |
| 678 | return toStringHelper(type().toString()) | 679 | return toStringHelper(type().toString()) |
| 679 | - .add("priority", Long.toHexString(vlanPcp)).toString(); | 680 | + .add("priority", Long.toHexString(vlanPcp)).toString(); |
| 680 | } | 681 | } |
| 681 | 682 | ||
| 682 | @Override | 683 | @Override |
| ... | @@ -699,20 +700,20 @@ public final class Criteria { | ... | @@ -699,20 +700,20 @@ public final class Criteria { |
| 699 | } | 700 | } |
| 700 | 701 | ||
| 701 | /** | 702 | /** |
| 702 | - * Implementation of IP DSCP criterion (6-bit Differentiated Services | 703 | + * Implementation of IP DSCP (Differentiated Services Code Point) |
| 703 | - * Code Point). | 704 | + * criterion (6 bits). |
| 704 | */ | 705 | */ |
| 705 | public static final class IPDscpCriterion implements Criterion { | 706 | public static final class IPDscpCriterion implements Criterion { |
| 706 | - private static final byte DSCP_MASK = 0x3f; | 707 | + private static final byte MASK = 0x3f; |
| 707 | - private final Byte ipDscp; // IP DSCP value: 6 bits | 708 | + private final byte ipDscp; // IP DSCP value: 6 bits |
| 708 | 709 | ||
| 709 | /** | 710 | /** |
| 710 | * Constructor. | 711 | * Constructor. |
| 711 | * | 712 | * |
| 712 | * @param ipDscp the IP DSCP value to match | 713 | * @param ipDscp the IP DSCP value to match |
| 713 | */ | 714 | */ |
| 714 | - public IPDscpCriterion(Byte ipDscp) { | 715 | + public IPDscpCriterion(byte ipDscp) { |
| 715 | - this.ipDscp = (byte) (ipDscp & DSCP_MASK); | 716 | + this.ipDscp = (byte) (ipDscp & MASK); |
| 716 | } | 717 | } |
| 717 | 718 | ||
| 718 | @Override | 719 | @Override |
| ... | @@ -725,14 +726,14 @@ public final class Criteria { | ... | @@ -725,14 +726,14 @@ public final class Criteria { |
| 725 | * | 726 | * |
| 726 | * @return the IP DSCP value to match | 727 | * @return the IP DSCP value to match |
| 727 | */ | 728 | */ |
| 728 | - public Byte ipDscp() { | 729 | + public byte ipDscp() { |
| 729 | return ipDscp; | 730 | return ipDscp; |
| 730 | } | 731 | } |
| 731 | 732 | ||
| 732 | @Override | 733 | @Override |
| 733 | public String toString() { | 734 | public String toString() { |
| 734 | return toStringHelper(type().toString()) | 735 | return toStringHelper(type().toString()) |
| 735 | - .add("ipDscp", ipDscp).toString(); | 736 | + .add("ipDscp", Long.toHexString(ipDscp)).toString(); |
| 736 | } | 737 | } |
| 737 | 738 | ||
| 738 | @Override | 739 | @Override |
| ... | @@ -755,20 +756,20 @@ public final class Criteria { | ... | @@ -755,20 +756,20 @@ public final class Criteria { |
| 755 | } | 756 | } |
| 756 | 757 | ||
| 757 | /** | 758 | /** |
| 758 | - * Implementation of IP ECN criterion (3-bit Explicit Congestion | 759 | + * Implementation of IP ECN (Explicit Congestion Notification) criterion |
| 759 | - * Notification). | 760 | + * (3 bits). |
| 760 | */ | 761 | */ |
| 761 | public static final class IPEcnCriterion implements Criterion { | 762 | public static final class IPEcnCriterion implements Criterion { |
| 762 | - private static final byte ECN_MASK = 0x3; | 763 | + private static final byte MASK = 0x7; |
| 763 | - private final Byte ipEcn; // IP ECN value: 3 bits | 764 | + private final byte ipEcn; // IP ECN value: 3 bits |
| 764 | 765 | ||
| 765 | /** | 766 | /** |
| 766 | * Constructor. | 767 | * Constructor. |
| 767 | * | 768 | * |
| 768 | - * @param ipEcn the IP ECN value to match | 769 | + * @param ipEcn the IP ECN value to match (3 bits) |
| 769 | */ | 770 | */ |
| 770 | - public IPEcnCriterion(Byte ipEcn) { | 771 | + public IPEcnCriterion(byte ipEcn) { |
| 771 | - this.ipEcn = (byte) (ipEcn & ECN_MASK); | 772 | + this.ipEcn = (byte) (ipEcn & MASK); |
| 772 | } | 773 | } |
| 773 | 774 | ||
| 774 | @Override | 775 | @Override |
| ... | @@ -779,16 +780,16 @@ public final class Criteria { | ... | @@ -779,16 +780,16 @@ public final class Criteria { |
| 779 | /** | 780 | /** |
| 780 | * Gets the IP ECN value to match. | 781 | * Gets the IP ECN value to match. |
| 781 | * | 782 | * |
| 782 | - * @return the IP ECN value to match | 783 | + * @return the IP ECN value to match (3 bits) |
| 783 | */ | 784 | */ |
| 784 | - public Byte ipEcn() { | 785 | + public byte ipEcn() { |
| 785 | return ipEcn; | 786 | return ipEcn; |
| 786 | } | 787 | } |
| 787 | 788 | ||
| 788 | @Override | 789 | @Override |
| 789 | public String toString() { | 790 | public String toString() { |
| 790 | return toStringHelper(type().toString()) | 791 | return toStringHelper(type().toString()) |
| 791 | - .add("ipEcn", ipEcn).toString(); | 792 | + .add("ipEcn", Long.toHexString(ipEcn)).toString(); |
| 792 | } | 793 | } |
| 793 | 794 | ||
| 794 | @Override | 795 | @Override |
| ... | @@ -811,18 +812,21 @@ public final class Criteria { | ... | @@ -811,18 +812,21 @@ public final class Criteria { |
| 811 | } | 812 | } |
| 812 | 813 | ||
| 813 | /** | 814 | /** |
| 814 | - * Implementation of Internet Protocol Number criterion. | 815 | + * Implementation of Internet Protocol Number criterion (8 bits unsigned) |
| 816 | + * integer. | ||
| 815 | */ | 817 | */ |
| 816 | public static final class IPProtocolCriterion implements Criterion { | 818 | public static final class IPProtocolCriterion implements Criterion { |
| 817 | - private final Byte proto; | 819 | + private static final short MASK = 0xff; |
| 820 | + private final short proto; // IP protocol number: 8 bits | ||
| 818 | 821 | ||
| 819 | /** | 822 | /** |
| 820 | * Constructor. | 823 | * Constructor. |
| 821 | * | 824 | * |
| 822 | - * @param protocol the IP protocol to match (e.g., TCP=6, UDP=17). | 825 | + * @param protocol the IP protocol (e.g., TCP=6, UDP=17) to match |
| 826 | + * (8 bits unsigned integer) | ||
| 823 | */ | 827 | */ |
| 824 | - public IPProtocolCriterion(Byte protocol) { | 828 | + public IPProtocolCriterion(short protocol) { |
| 825 | - this.proto = protocol; | 829 | + this.proto = (short) (protocol & MASK); |
| 826 | } | 830 | } |
| 827 | 831 | ||
| 828 | @Override | 832 | @Override |
| ... | @@ -833,17 +837,16 @@ public final class Criteria { | ... | @@ -833,17 +837,16 @@ public final class Criteria { |
| 833 | /** | 837 | /** |
| 834 | * Gets the IP protocol to match. | 838 | * Gets the IP protocol to match. |
| 835 | * | 839 | * |
| 836 | - * @return the IP protocol to match | 840 | + * @return the IP protocol to match (8 bits unsigned integer) |
| 837 | */ | 841 | */ |
| 838 | - public Byte protocol() { | 842 | + public short protocol() { |
| 839 | return proto; | 843 | return proto; |
| 840 | } | 844 | } |
| 841 | 845 | ||
| 842 | @Override | 846 | @Override |
| 843 | public String toString() { | 847 | public String toString() { |
| 844 | return toStringHelper(type().toString()) | 848 | return toStringHelper(type().toString()) |
| 845 | - .add("protocol", Long.toHexString(proto & 0xff)) | 849 | + .add("protocol", proto).toString(); |
| 846 | - .toString(); | ||
| 847 | } | 850 | } |
| 848 | 851 | ||
| 849 | @Override | 852 | @Override |
| ... | @@ -923,21 +926,22 @@ public final class Criteria { | ... | @@ -923,21 +926,22 @@ public final class Criteria { |
| 923 | } | 926 | } |
| 924 | 927 | ||
| 925 | /** | 928 | /** |
| 926 | - * Implementation of TCP port criterion. | 929 | + * Implementation of TCP port criterion (16 bits unsigned integer). |
| 927 | */ | 930 | */ |
| 928 | public static final class TcpPortCriterion implements Criterion { | 931 | public static final class TcpPortCriterion implements Criterion { |
| 929 | - private final Short tcpPort; | 932 | + private static final int MASK = 0xffff; |
| 933 | + private final int tcpPort; // Port value: 16 bits | ||
| 930 | private final Type type; | 934 | private final Type type; |
| 931 | 935 | ||
| 932 | /** | 936 | /** |
| 933 | * Constructor. | 937 | * Constructor. |
| 934 | * | 938 | * |
| 935 | - * @param tcpPort the TCP port to match | 939 | + * @param tcpPort the TCP port to match (16 bits unsigned integer) |
| 936 | * @param type the match type. Should be either Type.TCP_SRC or | 940 | * @param type the match type. Should be either Type.TCP_SRC or |
| 937 | * Type.TCP_DST | 941 | * Type.TCP_DST |
| 938 | */ | 942 | */ |
| 939 | - public TcpPortCriterion(Short tcpPort, Type type) { | 943 | + public TcpPortCriterion(int tcpPort, Type type) { |
| 940 | - this.tcpPort = tcpPort; | 944 | + this.tcpPort = tcpPort & MASK; |
| 941 | this.type = type; | 945 | this.type = type; |
| 942 | } | 946 | } |
| 943 | 947 | ||
| ... | @@ -949,16 +953,16 @@ public final class Criteria { | ... | @@ -949,16 +953,16 @@ public final class Criteria { |
| 949 | /** | 953 | /** |
| 950 | * Gets the TCP port to match. | 954 | * Gets the TCP port to match. |
| 951 | * | 955 | * |
| 952 | - * @return the TCP port to match | 956 | + * @return the TCP port to match (16 bits unsigned integer) |
| 953 | */ | 957 | */ |
| 954 | - public Short tcpPort() { | 958 | + public int tcpPort() { |
| 955 | return this.tcpPort; | 959 | return this.tcpPort; |
| 956 | } | 960 | } |
| 957 | 961 | ||
| 958 | @Override | 962 | @Override |
| 959 | public String toString() { | 963 | public String toString() { |
| 960 | return toStringHelper(type().toString()) | 964 | return toStringHelper(type().toString()) |
| 961 | - .add("tcpPort", tcpPort & 0xffff).toString(); | 965 | + .add("tcpPort", tcpPort).toString(); |
| 962 | } | 966 | } |
| 963 | 967 | ||
| 964 | @Override | 968 | @Override |
| ... | @@ -981,21 +985,22 @@ public final class Criteria { | ... | @@ -981,21 +985,22 @@ public final class Criteria { |
| 981 | } | 985 | } |
| 982 | 986 | ||
| 983 | /** | 987 | /** |
| 984 | - * Implementation of UDP port criterion. | 988 | + * Implementation of UDP port criterion (16 bits unsigned integer). |
| 985 | */ | 989 | */ |
| 986 | public static final class UdpPortCriterion implements Criterion { | 990 | public static final class UdpPortCriterion implements Criterion { |
| 987 | - private final Short udpPort; | 991 | + private static final int MASK = 0xffff; |
| 992 | + private final int udpPort; // Port value: 16 bits | ||
| 988 | private final Type type; | 993 | private final Type type; |
| 989 | 994 | ||
| 990 | /** | 995 | /** |
| 991 | * Constructor. | 996 | * Constructor. |
| 992 | * | 997 | * |
| 993 | - * @param udpPort the UDP port to match | 998 | + * @param udpPort the UDP port to match (16 bits unsigned integer) |
| 994 | * @param type the match type. Should be either Type.UDP_SRC or | 999 | * @param type the match type. Should be either Type.UDP_SRC or |
| 995 | * Type.UDP_DST | 1000 | * Type.UDP_DST |
| 996 | */ | 1001 | */ |
| 997 | - public UdpPortCriterion(Short udpPort, Type type) { | 1002 | + public UdpPortCriterion(int udpPort, Type type) { |
| 998 | - this.udpPort = udpPort; | 1003 | + this.udpPort = udpPort & MASK; |
| 999 | this.type = type; | 1004 | this.type = type; |
| 1000 | } | 1005 | } |
| 1001 | 1006 | ||
| ... | @@ -1007,16 +1012,16 @@ public final class Criteria { | ... | @@ -1007,16 +1012,16 @@ public final class Criteria { |
| 1007 | /** | 1012 | /** |
| 1008 | * Gets the UDP port to match. | 1013 | * Gets the UDP port to match. |
| 1009 | * | 1014 | * |
| 1010 | - * @return the UDP port to match | 1015 | + * @return the UDP port to match (16 bits unsigned integer) |
| 1011 | */ | 1016 | */ |
| 1012 | - public Short udpPort() { | 1017 | + public int udpPort() { |
| 1013 | return this.udpPort; | 1018 | return this.udpPort; |
| 1014 | } | 1019 | } |
| 1015 | 1020 | ||
| 1016 | @Override | 1021 | @Override |
| 1017 | public String toString() { | 1022 | public String toString() { |
| 1018 | return toStringHelper(type().toString()) | 1023 | return toStringHelper(type().toString()) |
| 1019 | - .add("udpPort", udpPort & 0xffff).toString(); | 1024 | + .add("udpPort", udpPort).toString(); |
| 1020 | } | 1025 | } |
| 1021 | 1026 | ||
| 1022 | @Override | 1027 | @Override |
| ... | @@ -1039,21 +1044,22 @@ public final class Criteria { | ... | @@ -1039,21 +1044,22 @@ public final class Criteria { |
| 1039 | } | 1044 | } |
| 1040 | 1045 | ||
| 1041 | /** | 1046 | /** |
| 1042 | - * Implementation of SCTP port criterion. | 1047 | + * Implementation of SCTP port criterion (16 bits unsigned integer). |
| 1043 | */ | 1048 | */ |
| 1044 | public static final class SctpPortCriterion implements Criterion { | 1049 | public static final class SctpPortCriterion implements Criterion { |
| 1045 | - private final Short sctpPort; | 1050 | + private static final int MASK = 0xffff; |
| 1051 | + private final int sctpPort; // Port value: 16 bits | ||
| 1046 | private final Type type; | 1052 | private final Type type; |
| 1047 | 1053 | ||
| 1048 | /** | 1054 | /** |
| 1049 | * Constructor. | 1055 | * Constructor. |
| 1050 | * | 1056 | * |
| 1051 | - * @param sctpPort the SCTP port to match | 1057 | + * @param sctpPort the SCTP port to match (16 bits unsigned integer) |
| 1052 | * @param type the match type. Should be either Type.SCTP_SRC or | 1058 | * @param type the match type. Should be either Type.SCTP_SRC or |
| 1053 | * Type.SCTP_DST | 1059 | * Type.SCTP_DST |
| 1054 | */ | 1060 | */ |
| 1055 | - public SctpPortCriterion(Short sctpPort, Type type) { | 1061 | + public SctpPortCriterion(int sctpPort, Type type) { |
| 1056 | - this.sctpPort = sctpPort; | 1062 | + this.sctpPort = sctpPort & MASK; |
| 1057 | this.type = type; | 1063 | this.type = type; |
| 1058 | } | 1064 | } |
| 1059 | 1065 | ||
| ... | @@ -1065,16 +1071,16 @@ public final class Criteria { | ... | @@ -1065,16 +1071,16 @@ public final class Criteria { |
| 1065 | /** | 1071 | /** |
| 1066 | * Gets the SCTP port to match. | 1072 | * Gets the SCTP port to match. |
| 1067 | * | 1073 | * |
| 1068 | - * @return the SCTP port to match | 1074 | + * @return the SCTP port to match (16 bits unsigned integer) |
| 1069 | */ | 1075 | */ |
| 1070 | - public Short sctpPort() { | 1076 | + public int sctpPort() { |
| 1071 | return this.sctpPort; | 1077 | return this.sctpPort; |
| 1072 | } | 1078 | } |
| 1073 | 1079 | ||
| 1074 | @Override | 1080 | @Override |
| 1075 | public String toString() { | 1081 | public String toString() { |
| 1076 | return toStringHelper(type().toString()) | 1082 | return toStringHelper(type().toString()) |
| 1077 | - .add("sctpPort", sctpPort & 0xffff).toString(); | 1083 | + .add("sctpPort", sctpPort).toString(); |
| 1078 | } | 1084 | } |
| 1079 | 1085 | ||
| 1080 | @Override | 1086 | @Override |
| ... | @@ -1097,18 +1103,19 @@ public final class Criteria { | ... | @@ -1097,18 +1103,19 @@ public final class Criteria { |
| 1097 | } | 1103 | } |
| 1098 | 1104 | ||
| 1099 | /** | 1105 | /** |
| 1100 | - * Implementation of ICMP type criterion. | 1106 | + * Implementation of ICMP type criterion (8 bits unsigned integer). |
| 1101 | */ | 1107 | */ |
| 1102 | public static final class IcmpTypeCriterion implements Criterion { | 1108 | public static final class IcmpTypeCriterion implements Criterion { |
| 1103 | - private final Byte icmpType; | 1109 | + private static final short MASK = 0xff; |
| 1110 | + private final short icmpType; // The ICMP type: 8 bits | ||
| 1104 | 1111 | ||
| 1105 | /** | 1112 | /** |
| 1106 | * Constructor. | 1113 | * Constructor. |
| 1107 | * | 1114 | * |
| 1108 | - * @param icmpType the ICMP type to match | 1115 | + * @param icmpType the ICMP type to match (8 bits unsigned integer) |
| 1109 | */ | 1116 | */ |
| 1110 | - public IcmpTypeCriterion(Byte icmpType) { | 1117 | + public IcmpTypeCriterion(short icmpType) { |
| 1111 | - this.icmpType = icmpType; | 1118 | + this.icmpType = (short) (icmpType & MASK); |
| 1112 | } | 1119 | } |
| 1113 | 1120 | ||
| 1114 | @Override | 1121 | @Override |
| ... | @@ -1119,16 +1126,16 @@ public final class Criteria { | ... | @@ -1119,16 +1126,16 @@ public final class Criteria { |
| 1119 | /** | 1126 | /** |
| 1120 | * Gets the ICMP type to match. | 1127 | * Gets the ICMP type to match. |
| 1121 | * | 1128 | * |
| 1122 | - * @return the ICMP type to match | 1129 | + * @return the ICMP type to match (8 bits unsigned integer) |
| 1123 | */ | 1130 | */ |
| 1124 | - public Byte icmpType() { | 1131 | + public short icmpType() { |
| 1125 | return icmpType; | 1132 | return icmpType; |
| 1126 | } | 1133 | } |
| 1127 | 1134 | ||
| 1128 | @Override | 1135 | @Override |
| 1129 | public String toString() { | 1136 | public String toString() { |
| 1130 | return toStringHelper(type().toString()) | 1137 | return toStringHelper(type().toString()) |
| 1131 | - .add("icmpType", icmpType & 0xff).toString(); | 1138 | + .add("icmpType", icmpType).toString(); |
| 1132 | } | 1139 | } |
| 1133 | 1140 | ||
| 1134 | @Override | 1141 | @Override |
| ... | @@ -1151,18 +1158,19 @@ public final class Criteria { | ... | @@ -1151,18 +1158,19 @@ public final class Criteria { |
| 1151 | } | 1158 | } |
| 1152 | 1159 | ||
| 1153 | /** | 1160 | /** |
| 1154 | - * Implementation of ICMP code criterion. | 1161 | + * Implementation of ICMP code criterion (8 bits unsigned integer). |
| 1155 | */ | 1162 | */ |
| 1156 | public static final class IcmpCodeCriterion implements Criterion { | 1163 | public static final class IcmpCodeCriterion implements Criterion { |
| 1157 | - private final Byte icmpCode; | 1164 | + private static final short MASK = 0xff; |
| 1165 | + private final short icmpCode; // The ICMP code: 8 bits | ||
| 1158 | 1166 | ||
| 1159 | /** | 1167 | /** |
| 1160 | * Constructor. | 1168 | * Constructor. |
| 1161 | * | 1169 | * |
| 1162 | - * @param icmpCode the ICMP code to match | 1170 | + * @param icmpCode the ICMP code to match (8 bits unsigned integer) |
| 1163 | */ | 1171 | */ |
| 1164 | - public IcmpCodeCriterion(Byte icmpCode) { | 1172 | + public IcmpCodeCriterion(short icmpCode) { |
| 1165 | - this.icmpCode = icmpCode; | 1173 | + this.icmpCode = (short) (icmpCode & MASK); |
| 1166 | } | 1174 | } |
| 1167 | 1175 | ||
| 1168 | @Override | 1176 | @Override |
| ... | @@ -1173,16 +1181,16 @@ public final class Criteria { | ... | @@ -1173,16 +1181,16 @@ public final class Criteria { |
| 1173 | /** | 1181 | /** |
| 1174 | * Gets the ICMP code to match. | 1182 | * Gets the ICMP code to match. |
| 1175 | * | 1183 | * |
| 1176 | - * @return the ICMP code to match | 1184 | + * @return the ICMP code to match (8 bits unsigned integer) |
| 1177 | */ | 1185 | */ |
| 1178 | - public Byte icmpCode() { | 1186 | + public short icmpCode() { |
| 1179 | return icmpCode; | 1187 | return icmpCode; |
| 1180 | } | 1188 | } |
| 1181 | 1189 | ||
| 1182 | @Override | 1190 | @Override |
| 1183 | public String toString() { | 1191 | public String toString() { |
| 1184 | return toStringHelper(type().toString()) | 1192 | return toStringHelper(type().toString()) |
| 1185 | - .add("icmpCode", icmpCode & 0xff).toString(); | 1193 | + .add("icmpCode", icmpCode).toString(); |
| 1186 | } | 1194 | } |
| 1187 | 1195 | ||
| 1188 | @Override | 1196 | @Override |
| ... | @@ -1205,19 +1213,20 @@ public final class Criteria { | ... | @@ -1205,19 +1213,20 @@ public final class Criteria { |
| 1205 | } | 1213 | } |
| 1206 | 1214 | ||
| 1207 | /** | 1215 | /** |
| 1208 | - * Implementation of IPv6 Flow Label criterion (RFC 6437). | 1216 | + * Implementation of IPv6 Flow Label (RFC 6437) criterion (20 bits unsigned |
| 1217 | + * integer). | ||
| 1209 | */ | 1218 | */ |
| 1210 | public static final class IPv6FlowLabelCriterion implements Criterion { | 1219 | public static final class IPv6FlowLabelCriterion implements Criterion { |
| 1211 | - private static final int FLOW_LABEL_MASK = 0xfffff; | 1220 | + private static final int MASK = 0xfffff; |
| 1212 | - private final Integer flowLabel; // IPv6 flow label: 20 bits | 1221 | + private final int flowLabel; // IPv6 flow label: 20 bits |
| 1213 | 1222 | ||
| 1214 | /** | 1223 | /** |
| 1215 | * Constructor. | 1224 | * Constructor. |
| 1216 | * | 1225 | * |
| 1217 | - * @param flowLabel the IPv6 flow label to match | 1226 | + * @param flowLabel the IPv6 flow label to match (20 bits) |
| 1218 | */ | 1227 | */ |
| 1219 | - public IPv6FlowLabelCriterion(Integer flowLabel) { | 1228 | + public IPv6FlowLabelCriterion(int flowLabel) { |
| 1220 | - this.flowLabel = flowLabel & FLOW_LABEL_MASK; | 1229 | + this.flowLabel = flowLabel & MASK; |
| 1221 | } | 1230 | } |
| 1222 | 1231 | ||
| 1223 | @Override | 1232 | @Override |
| ... | @@ -1228,16 +1237,16 @@ public final class Criteria { | ... | @@ -1228,16 +1237,16 @@ public final class Criteria { |
| 1228 | /** | 1237 | /** |
| 1229 | * Gets the IPv6 flow label to match. | 1238 | * Gets the IPv6 flow label to match. |
| 1230 | * | 1239 | * |
| 1231 | - * @return the IPv6 flow label to match | 1240 | + * @return the IPv6 flow label to match (20 bits) |
| 1232 | */ | 1241 | */ |
| 1233 | - public Integer flowLabel() { | 1242 | + public int flowLabel() { |
| 1234 | return flowLabel; | 1243 | return flowLabel; |
| 1235 | } | 1244 | } |
| 1236 | 1245 | ||
| 1237 | @Override | 1246 | @Override |
| 1238 | public String toString() { | 1247 | public String toString() { |
| 1239 | return toStringHelper(type().toString()) | 1248 | return toStringHelper(type().toString()) |
| 1240 | - .add("flowLabel", flowLabel).toString(); | 1249 | + .add("flowLabel", Long.toHexString(flowLabel)).toString(); |
| 1241 | } | 1250 | } |
| 1242 | 1251 | ||
| 1243 | @Override | 1252 | @Override |
| ... | @@ -1260,18 +1269,19 @@ public final class Criteria { | ... | @@ -1260,18 +1269,19 @@ public final class Criteria { |
| 1260 | } | 1269 | } |
| 1261 | 1270 | ||
| 1262 | /** | 1271 | /** |
| 1263 | - * Implementation of ICMPv6 type criterion. | 1272 | + * Implementation of ICMPv6 type criterion (8 bits unsigned integer). |
| 1264 | */ | 1273 | */ |
| 1265 | public static final class Icmpv6TypeCriterion implements Criterion { | 1274 | public static final class Icmpv6TypeCriterion implements Criterion { |
| 1266 | - private final Byte icmpv6Type; | 1275 | + private static final short MASK = 0xff; |
| 1276 | + private final short icmpv6Type; // ICMPv6 type: 8 bits | ||
| 1267 | 1277 | ||
| 1268 | /** | 1278 | /** |
| 1269 | * Constructor. | 1279 | * Constructor. |
| 1270 | * | 1280 | * |
| 1271 | - * @param icmpv6Type the ICMPv6 type to match | 1281 | + * @param icmpv6Type the ICMPv6 type to match (8 bits unsigned integer) |
| 1272 | */ | 1282 | */ |
| 1273 | - public Icmpv6TypeCriterion(Byte icmpv6Type) { | 1283 | + public Icmpv6TypeCriterion(short icmpv6Type) { |
| 1274 | - this.icmpv6Type = icmpv6Type; | 1284 | + this.icmpv6Type = (short) (icmpv6Type & MASK); |
| 1275 | } | 1285 | } |
| 1276 | 1286 | ||
| 1277 | @Override | 1287 | @Override |
| ... | @@ -1282,16 +1292,16 @@ public final class Criteria { | ... | @@ -1282,16 +1292,16 @@ public final class Criteria { |
| 1282 | /** | 1292 | /** |
| 1283 | * Gets the ICMPv6 type to match. | 1293 | * Gets the ICMPv6 type to match. |
| 1284 | * | 1294 | * |
| 1285 | - * @return the ICMPv6 type to match | 1295 | + * @return the ICMPv6 type to match (8 bits unsigned integer) |
| 1286 | */ | 1296 | */ |
| 1287 | - public Byte icmpv6Type() { | 1297 | + public short icmpv6Type() { |
| 1288 | return icmpv6Type; | 1298 | return icmpv6Type; |
| 1289 | } | 1299 | } |
| 1290 | 1300 | ||
| 1291 | @Override | 1301 | @Override |
| 1292 | public String toString() { | 1302 | public String toString() { |
| 1293 | return toStringHelper(type().toString()) | 1303 | return toStringHelper(type().toString()) |
| 1294 | - .add("icmpv6Type", icmpv6Type & 0xff).toString(); | 1304 | + .add("icmpv6Type", icmpv6Type).toString(); |
| 1295 | } | 1305 | } |
| 1296 | 1306 | ||
| 1297 | @Override | 1307 | @Override |
| ... | @@ -1314,18 +1324,19 @@ public final class Criteria { | ... | @@ -1314,18 +1324,19 @@ public final class Criteria { |
| 1314 | } | 1324 | } |
| 1315 | 1325 | ||
| 1316 | /** | 1326 | /** |
| 1317 | - * Implementation of ICMPv6 code criterion. | 1327 | + * Implementation of ICMPv6 code criterion (8 bits unsigned integer). |
| 1318 | */ | 1328 | */ |
| 1319 | public static final class Icmpv6CodeCriterion implements Criterion { | 1329 | public static final class Icmpv6CodeCriterion implements Criterion { |
| 1320 | - private final Byte icmpv6Code; | 1330 | + private static final short MASK = 0xff; |
| 1331 | + private final short icmpv6Code; // ICMPv6 code: 8 bits | ||
| 1321 | 1332 | ||
| 1322 | /** | 1333 | /** |
| 1323 | * Constructor. | 1334 | * Constructor. |
| 1324 | * | 1335 | * |
| 1325 | - * @param icmpv6Code the ICMPv6 code to match | 1336 | + * @param icmpv6Code the ICMPv6 code to match (8 bits unsigned integer) |
| 1326 | */ | 1337 | */ |
| 1327 | - public Icmpv6CodeCriterion(Byte icmpv6Code) { | 1338 | + public Icmpv6CodeCriterion(short icmpv6Code) { |
| 1328 | - this.icmpv6Code = icmpv6Code; | 1339 | + this.icmpv6Code = (short) (icmpv6Code & MASK); |
| 1329 | } | 1340 | } |
| 1330 | 1341 | ||
| 1331 | @Override | 1342 | @Override |
| ... | @@ -1336,16 +1347,16 @@ public final class Criteria { | ... | @@ -1336,16 +1347,16 @@ public final class Criteria { |
| 1336 | /** | 1347 | /** |
| 1337 | * Gets the ICMPv6 code to match. | 1348 | * Gets the ICMPv6 code to match. |
| 1338 | * | 1349 | * |
| 1339 | - * @return the ICMPv6 code to match | 1350 | + * @return the ICMPv6 code to match (8 bits unsigned integer) |
| 1340 | */ | 1351 | */ |
| 1341 | - public Byte icmpv6Code() { | 1352 | + public short icmpv6Code() { |
| 1342 | return icmpv6Code; | 1353 | return icmpv6Code; |
| 1343 | } | 1354 | } |
| 1344 | 1355 | ||
| 1345 | @Override | 1356 | @Override |
| 1346 | public String toString() { | 1357 | public String toString() { |
| 1347 | return toStringHelper(type().toString()) | 1358 | return toStringHelper(type().toString()) |
| 1348 | - .add("icmpv6Code", icmpv6Code & 0xff).toString(); | 1359 | + .add("icmpv6Code", icmpv6Code).toString(); |
| 1349 | } | 1360 | } |
| 1350 | 1361 | ||
| 1351 | @Override | 1362 | @Override |
| ... | @@ -1484,18 +1495,19 @@ public final class Criteria { | ... | @@ -1484,18 +1495,19 @@ public final class Criteria { |
| 1484 | } | 1495 | } |
| 1485 | 1496 | ||
| 1486 | /** | 1497 | /** |
| 1487 | - * Implementation of MPLS tag criterion. | 1498 | + * Implementation of MPLS tag criterion (20 bits). |
| 1488 | */ | 1499 | */ |
| 1489 | public static final class MplsCriterion implements Criterion { | 1500 | public static final class MplsCriterion implements Criterion { |
| 1490 | - private final Integer mplsLabel; | 1501 | + private static final int MASK = 0xfffff; |
| 1502 | + private final int mplsLabel; // MPLS label: 20 bits | ||
| 1491 | 1503 | ||
| 1492 | /** | 1504 | /** |
| 1493 | * Constructor. | 1505 | * Constructor. |
| 1494 | * | 1506 | * |
| 1495 | - * @param mplsLabel the MPLS label to match | 1507 | + * @param mplsLabel the MPLS label to match (20 bits) |
| 1496 | */ | 1508 | */ |
| 1497 | - public MplsCriterion(Integer mplsLabel) { | 1509 | + public MplsCriterion(int mplsLabel) { |
| 1498 | - this.mplsLabel = mplsLabel; | 1510 | + this.mplsLabel = mplsLabel & MASK; |
| 1499 | } | 1511 | } |
| 1500 | 1512 | ||
| 1501 | @Override | 1513 | @Override |
| ... | @@ -1506,16 +1518,16 @@ public final class Criteria { | ... | @@ -1506,16 +1518,16 @@ public final class Criteria { |
| 1506 | /** | 1518 | /** |
| 1507 | * Gets the MPLS label to match. | 1519 | * Gets the MPLS label to match. |
| 1508 | * | 1520 | * |
| 1509 | - * @return the MPLS label to match | 1521 | + * @return the MPLS label to match (20 bits) |
| 1510 | */ | 1522 | */ |
| 1511 | - public Integer label() { | 1523 | + public int label() { |
| 1512 | return mplsLabel; | 1524 | return mplsLabel; |
| 1513 | } | 1525 | } |
| 1514 | 1526 | ||
| 1515 | @Override | 1527 | @Override |
| 1516 | public String toString() { | 1528 | public String toString() { |
| 1517 | return toStringHelper(type().toString()) | 1529 | return toStringHelper(type().toString()) |
| 1518 | - .add("label", mplsLabel & 0xffffffffL).toString(); | 1530 | + .add("label", Long.toHexString(mplsLabel)).toString(); |
| 1519 | } | 1531 | } |
| 1520 | 1532 | ||
| 1521 | @Override | 1533 | @Override |
| ... | @@ -1535,24 +1547,26 @@ public final class Criteria { | ... | @@ -1535,24 +1547,26 @@ public final class Criteria { |
| 1535 | } | 1547 | } |
| 1536 | return false; | 1548 | return false; |
| 1537 | } | 1549 | } |
| 1538 | - | ||
| 1539 | } | 1550 | } |
| 1540 | 1551 | ||
| 1541 | /** | 1552 | /** |
| 1542 | - * Implementation of lambda (wavelength) criterion. | 1553 | + * Implementation of lambda (wavelength) criterion (16 bits unsigned |
| 1554 | + * integer). | ||
| 1543 | */ | 1555 | */ |
| 1544 | public static final class LambdaCriterion implements Criterion { | 1556 | public static final class LambdaCriterion implements Criterion { |
| 1545 | - private final short lambda; | 1557 | + private static final int MASK = 0xffff; |
| 1558 | + private final int lambda; // Lambda value: 16 bits | ||
| 1546 | private final Type type; | 1559 | private final Type type; |
| 1547 | 1560 | ||
| 1548 | /** | 1561 | /** |
| 1549 | * Constructor. | 1562 | * Constructor. |
| 1550 | * | 1563 | * |
| 1551 | - * @param lambda the lambda (wavelength) to match | 1564 | + * @param lambda the lambda (wavelength) to match (16 bits unsigned |
| 1565 | + * integer) | ||
| 1552 | * @param type the match type. Should be Type.OCH_SIGID | 1566 | * @param type the match type. Should be Type.OCH_SIGID |
| 1553 | */ | 1567 | */ |
| 1554 | - public LambdaCriterion(short lambda, Type type) { | 1568 | + public LambdaCriterion(int lambda, Type type) { |
| 1555 | - this.lambda = lambda; | 1569 | + this.lambda = lambda & MASK; |
| 1556 | this.type = type; | 1570 | this.type = type; |
| 1557 | } | 1571 | } |
| 1558 | 1572 | ||
| ... | @@ -1564,16 +1578,16 @@ public final class Criteria { | ... | @@ -1564,16 +1578,16 @@ public final class Criteria { |
| 1564 | /** | 1578 | /** |
| 1565 | * Gets the lambda (wavelength) to match. | 1579 | * Gets the lambda (wavelength) to match. |
| 1566 | * | 1580 | * |
| 1567 | - * @return the lambda (wavelength) to match. | 1581 | + * @return the lambda (wavelength) to match (16 bits unsigned integer) |
| 1568 | */ | 1582 | */ |
| 1569 | - public Short lambda() { | 1583 | + public int lambda() { |
| 1570 | - return this.lambda; | 1584 | + return lambda; |
| 1571 | } | 1585 | } |
| 1572 | 1586 | ||
| 1573 | @Override | 1587 | @Override |
| 1574 | public String toString() { | 1588 | public String toString() { |
| 1575 | return toStringHelper(type().toString()) | 1589 | return toStringHelper(type().toString()) |
| 1576 | - .add("lambda", lambda & 0xffff).toString(); | 1590 | + .add("lambda", lambda).toString(); |
| 1577 | } | 1591 | } |
| 1578 | 1592 | ||
| 1579 | @Override | 1593 | @Override |
| ... | @@ -1596,20 +1610,23 @@ public final class Criteria { | ... | @@ -1596,20 +1610,23 @@ public final class Criteria { |
| 1596 | } | 1610 | } |
| 1597 | 1611 | ||
| 1598 | /** | 1612 | /** |
| 1599 | - * Implementation of optical signal type criterion. | 1613 | + * Implementation of optical signal type criterion (16 bits unsigned |
| 1614 | + * integer). | ||
| 1600 | */ | 1615 | */ |
| 1601 | public static final class OpticalSignalTypeCriterion implements Criterion { | 1616 | public static final class OpticalSignalTypeCriterion implements Criterion { |
| 1602 | - private final Short signalType; | 1617 | + private static final int MASK = 0xffff; |
| 1618 | + private final int signalType; // Signal type value: 16 bits | ||
| 1603 | private final Type type; | 1619 | private final Type type; |
| 1604 | 1620 | ||
| 1605 | /** | 1621 | /** |
| 1606 | * Constructor. | 1622 | * Constructor. |
| 1607 | * | 1623 | * |
| 1608 | - * @param signalType the optical signal type to match | 1624 | + * @param signalType the optical signal type to match (16 bits unsigned |
| 1625 | + * integer) | ||
| 1609 | * @param type the match type. Should be Type.OCH_SIGTYPE | 1626 | * @param type the match type. Should be Type.OCH_SIGTYPE |
| 1610 | */ | 1627 | */ |
| 1611 | - public OpticalSignalTypeCriterion(Short signalType, Type type) { | 1628 | + public OpticalSignalTypeCriterion(int signalType, Type type) { |
| 1612 | - this.signalType = signalType; | 1629 | + this.signalType = signalType & MASK; |
| 1613 | this.type = type; | 1630 | this.type = type; |
| 1614 | } | 1631 | } |
| 1615 | 1632 | ||
| ... | @@ -1623,14 +1640,14 @@ public final class Criteria { | ... | @@ -1623,14 +1640,14 @@ public final class Criteria { |
| 1623 | * | 1640 | * |
| 1624 | * @return the optical signal type to match | 1641 | * @return the optical signal type to match |
| 1625 | */ | 1642 | */ |
| 1626 | - public Short signalType() { | 1643 | + public int signalType() { |
| 1627 | - return this.signalType; | 1644 | + return signalType; |
| 1628 | } | 1645 | } |
| 1629 | 1646 | ||
| 1630 | @Override | 1647 | @Override |
| 1631 | public String toString() { | 1648 | public String toString() { |
| 1632 | return toStringHelper(type().toString()) | 1649 | return toStringHelper(type().toString()) |
| 1633 | - .add("signalType", signalType & 0xffff).toString(); | 1650 | + .add("signalType", signalType).toString(); |
| 1634 | } | 1651 | } |
| 1635 | 1652 | ||
| 1636 | @Override | 1653 | @Override | ... | ... |
| ... | @@ -63,8 +63,8 @@ public class CriteriaTest { | ... | @@ -63,8 +63,8 @@ public class CriteriaTest { |
| 63 | Criterion sameAsMatchEth1 = Criteria.matchEthSrc(mac1); | 63 | Criterion sameAsMatchEth1 = Criteria.matchEthSrc(mac1); |
| 64 | Criterion matchEth2 = Criteria.matchEthDst(mac2); | 64 | Criterion matchEth2 = Criteria.matchEthDst(mac2); |
| 65 | 65 | ||
| 66 | - short ethType1 = 1; | 66 | + int ethType1 = 1; |
| 67 | - short ethType2 = 2; | 67 | + int ethType2 = 2; |
| 68 | Criterion matchEthType1 = Criteria.matchEthType(ethType1); | 68 | Criterion matchEthType1 = Criteria.matchEthType(ethType1); |
| 69 | Criterion sameAsMatchEthType1 = Criteria.matchEthType(ethType1); | 69 | Criterion sameAsMatchEthType1 = Criteria.matchEthType(ethType1); |
| 70 | Criterion matchEthType2 = Criteria.matchEthType(ethType2); | 70 | Criterion matchEthType2 = Criteria.matchEthType(ethType2); |
| ... | @@ -95,8 +95,8 @@ public class CriteriaTest { | ... | @@ -95,8 +95,8 @@ public class CriteriaTest { |
| 95 | Criterion sameAsMatchIpEcn1 = Criteria.matchIPEcn(ipEcn1); | 95 | Criterion sameAsMatchIpEcn1 = Criteria.matchIPEcn(ipEcn1); |
| 96 | Criterion matchIpEcn2 = Criteria.matchIPEcn(ipEcn2); | 96 | Criterion matchIpEcn2 = Criteria.matchIPEcn(ipEcn2); |
| 97 | 97 | ||
| 98 | - byte protocol1 = 1; | 98 | + short protocol1 = 1; |
| 99 | - byte protocol2 = 2; | 99 | + short protocol2 = 2; |
| 100 | Criterion matchIpProtocol1 = Criteria.matchIPProtocol(protocol1); | 100 | Criterion matchIpProtocol1 = Criteria.matchIPProtocol(protocol1); |
| 101 | Criterion sameAsMatchIpProtocol1 = Criteria.matchIPProtocol(protocol1); | 101 | Criterion sameAsMatchIpProtocol1 = Criteria.matchIPProtocol(protocol1); |
| 102 | Criterion matchIpProtocol2 = Criteria.matchIPProtocol(protocol2); | 102 | Criterion matchIpProtocol2 = Criteria.matchIPProtocol(protocol2); |
| ... | @@ -116,26 +116,26 @@ public class CriteriaTest { | ... | @@ -116,26 +116,26 @@ public class CriteriaTest { |
| 116 | Criterion sameAsMatchIpv61 = Criteria.matchIPSrc(ipv61); | 116 | Criterion sameAsMatchIpv61 = Criteria.matchIPSrc(ipv61); |
| 117 | Criterion matchIpv62 = Criteria.matchIPSrc(ipv62); | 117 | Criterion matchIpv62 = Criteria.matchIPSrc(ipv62); |
| 118 | 118 | ||
| 119 | - Criterion matchTcpPort1 = Criteria.matchTcpSrc((short) 1); | 119 | + Criterion matchTcpPort1 = Criteria.matchTcpSrc(1); |
| 120 | - Criterion sameAsMatchTcpPort1 = Criteria.matchTcpSrc((short) 1); | 120 | + Criterion sameAsMatchTcpPort1 = Criteria.matchTcpSrc(1); |
| 121 | - Criterion matchTcpPort2 = Criteria.matchTcpDst((short) 2); | 121 | + Criterion matchTcpPort2 = Criteria.matchTcpDst(2); |
| 122 | 122 | ||
| 123 | - Criterion matchUdpPort1 = Criteria.matchUdpSrc((short) 1); | 123 | + Criterion matchUdpPort1 = Criteria.matchUdpSrc(1); |
| 124 | - Criterion sameAsMatchUdpPort1 = Criteria.matchUdpSrc((short) 1); | 124 | + Criterion sameAsMatchUdpPort1 = Criteria.matchUdpSrc(1); |
| 125 | - Criterion matchUdpPort2 = Criteria.matchUdpDst((short) 2); | 125 | + Criterion matchUdpPort2 = Criteria.matchUdpDst(2); |
| 126 | 126 | ||
| 127 | - Criterion matchSctpPort1 = Criteria.matchSctpSrc((short) 1); | 127 | + Criterion matchSctpPort1 = Criteria.matchSctpSrc(1); |
| 128 | - Criterion sameAsMatchSctpPort1 = Criteria.matchSctpSrc((short) 1); | 128 | + Criterion sameAsMatchSctpPort1 = Criteria.matchSctpSrc(1); |
| 129 | - Criterion matchSctpPort2 = Criteria.matchSctpDst((short) 2); | 129 | + Criterion matchSctpPort2 = Criteria.matchSctpDst(2); |
| 130 | 130 | ||
| 131 | - byte icmpType1 = 1; | 131 | + short icmpType1 = 1; |
| 132 | - byte icmpType2 = 2; | 132 | + short icmpType2 = 2; |
| 133 | Criterion matchIcmpType1 = Criteria.matchIcmpType(icmpType1); | 133 | Criterion matchIcmpType1 = Criteria.matchIcmpType(icmpType1); |
| 134 | Criterion sameAsMatchIcmpType1 = Criteria.matchIcmpType(icmpType1); | 134 | Criterion sameAsMatchIcmpType1 = Criteria.matchIcmpType(icmpType1); |
| 135 | Criterion matchIcmpType2 = Criteria.matchIcmpType(icmpType2); | 135 | Criterion matchIcmpType2 = Criteria.matchIcmpType(icmpType2); |
| 136 | 136 | ||
| 137 | - byte icmpCode1 = 1; | 137 | + short icmpCode1 = 1; |
| 138 | - byte icmpCode2 = 2; | 138 | + short icmpCode2 = 2; |
| 139 | Criterion matchIcmpCode1 = Criteria.matchIcmpCode(icmpCode1); | 139 | Criterion matchIcmpCode1 = Criteria.matchIcmpCode(icmpCode1); |
| 140 | Criterion sameAsMatchIcmpCode1 = Criteria.matchIcmpCode(icmpCode1); | 140 | Criterion sameAsMatchIcmpCode1 = Criteria.matchIcmpCode(icmpCode1); |
| 141 | Criterion matchIcmpCode2 = Criteria.matchIcmpCode(icmpCode2); | 141 | Criterion matchIcmpCode2 = Criteria.matchIcmpCode(icmpCode2); |
| ... | @@ -146,14 +146,14 @@ public class CriteriaTest { | ... | @@ -146,14 +146,14 @@ public class CriteriaTest { |
| 146 | Criterion sameAsMatchFlowLabel1 = Criteria.matchIPv6FlowLabel(flowLabel1); | 146 | Criterion sameAsMatchFlowLabel1 = Criteria.matchIPv6FlowLabel(flowLabel1); |
| 147 | Criterion matchFlowLabel2 = Criteria.matchIPv6FlowLabel(flowLabel2); | 147 | Criterion matchFlowLabel2 = Criteria.matchIPv6FlowLabel(flowLabel2); |
| 148 | 148 | ||
| 149 | - byte icmpv6Type1 = 1; | 149 | + short icmpv6Type1 = 1; |
| 150 | - byte icmpv6Type2 = 2; | 150 | + short icmpv6Type2 = 2; |
| 151 | Criterion matchIcmpv6Type1 = Criteria.matchIcmpv6Type(icmpv6Type1); | 151 | Criterion matchIcmpv6Type1 = Criteria.matchIcmpv6Type(icmpv6Type1); |
| 152 | Criterion sameAsMatchIcmpv6Type1 = Criteria.matchIcmpv6Type(icmpv6Type1); | 152 | Criterion sameAsMatchIcmpv6Type1 = Criteria.matchIcmpv6Type(icmpv6Type1); |
| 153 | Criterion matchIcmpv6Type2 = Criteria.matchIcmpv6Type(icmpv6Type2); | 153 | Criterion matchIcmpv6Type2 = Criteria.matchIcmpv6Type(icmpv6Type2); |
| 154 | 154 | ||
| 155 | - byte icmpv6Code1 = 1; | 155 | + short icmpv6Code1 = 1; |
| 156 | - byte icmpv6Code2 = 2; | 156 | + short icmpv6Code2 = 2; |
| 157 | Criterion matchIcmpv6Code1 = Criteria.matchIcmpv6Code(icmpv6Code1); | 157 | Criterion matchIcmpv6Code1 = Criteria.matchIcmpv6Code(icmpv6Code1); |
| 158 | Criterion sameAsMatchIcmpv6Code1 = Criteria.matchIcmpv6Code(icmpv6Code1); | 158 | Criterion sameAsMatchIcmpv6Code1 = Criteria.matchIcmpv6Code(icmpv6Code1); |
| 159 | Criterion matchIcmpv6Code2 = Criteria.matchIcmpv6Code(icmpv6Code2); | 159 | Criterion matchIcmpv6Code2 = Criteria.matchIcmpv6Code(icmpv6Code2); |
| ... | @@ -192,14 +192,14 @@ public class CriteriaTest { | ... | @@ -192,14 +192,14 @@ public class CriteriaTest { |
| 192 | Criterion sameAsMatchMpls1 = Criteria.matchMplsLabel(mpls1); | 192 | Criterion sameAsMatchMpls1 = Criteria.matchMplsLabel(mpls1); |
| 193 | Criterion matchMpls2 = Criteria.matchMplsLabel(mpls2); | 193 | Criterion matchMpls2 = Criteria.matchMplsLabel(mpls2); |
| 194 | 194 | ||
| 195 | - short lambda1 = 1; | 195 | + int lambda1 = 1; |
| 196 | - short lambda2 = 2; | 196 | + int lambda2 = 2; |
| 197 | Criterion matchLambda1 = Criteria.matchLambda(lambda1); | 197 | Criterion matchLambda1 = Criteria.matchLambda(lambda1); |
| 198 | Criterion sameAsMatchLambda1 = Criteria.matchLambda(lambda1); | 198 | Criterion sameAsMatchLambda1 = Criteria.matchLambda(lambda1); |
| 199 | Criterion matchLambda2 = Criteria.matchLambda(lambda2); | 199 | Criterion matchLambda2 = Criteria.matchLambda(lambda2); |
| 200 | 200 | ||
| 201 | - short signalLambda1 = 1; | 201 | + int signalLambda1 = 1; |
| 202 | - short signalLambda2 = 2; | 202 | + int signalLambda2 = 2; |
| 203 | Criterion matchSignalLambda1 = Criteria.matchOpticalSignalType(signalLambda1); | 203 | Criterion matchSignalLambda1 = Criteria.matchOpticalSignalType(signalLambda1); |
| 204 | Criterion sameAsMatchSignalLambda1 = Criteria.matchOpticalSignalType(signalLambda1); | 204 | Criterion sameAsMatchSignalLambda1 = Criteria.matchOpticalSignalType(signalLambda1); |
| 205 | Criterion matchSignalLambda2 = Criteria.matchOpticalSignalType(signalLambda2); | 205 | Criterion matchSignalLambda2 = Criteria.matchOpticalSignalType(signalLambda2); |
| ... | @@ -379,7 +379,7 @@ public class CriteriaTest { | ... | @@ -379,7 +379,7 @@ public class CriteriaTest { |
| 379 | */ | 379 | */ |
| 380 | @Test | 380 | @Test |
| 381 | public void testMatchEthTypeMethod() { | 381 | public void testMatchEthTypeMethod() { |
| 382 | - Short ethType = 12; | 382 | + int ethType = 12; |
| 383 | Criterion matchEthType = Criteria.matchEthType(ethType); | 383 | Criterion matchEthType = Criteria.matchEthType(ethType); |
| 384 | Criteria.EthTypeCriterion ethTypeCriterion = | 384 | Criteria.EthTypeCriterion ethTypeCriterion = |
| 385 | checkAndConvert(matchEthType, | 385 | checkAndConvert(matchEthType, |
| ... | @@ -606,12 +606,12 @@ public class CriteriaTest { | ... | @@ -606,12 +606,12 @@ public class CriteriaTest { |
| 606 | */ | 606 | */ |
| 607 | @Test | 607 | @Test |
| 608 | public void testMatchTcpSrcMethod() { | 608 | public void testMatchTcpSrcMethod() { |
| 609 | - Criterion matchTcpSrc = Criteria.matchTcpSrc((short) 1); | 609 | + Criterion matchTcpSrc = Criteria.matchTcpSrc(1); |
| 610 | Criteria.TcpPortCriterion tcpPortCriterion = | 610 | Criteria.TcpPortCriterion tcpPortCriterion = |
| 611 | checkAndConvert(matchTcpSrc, | 611 | checkAndConvert(matchTcpSrc, |
| 612 | Criterion.Type.TCP_SRC, | 612 | Criterion.Type.TCP_SRC, |
| 613 | Criteria.TcpPortCriterion.class); | 613 | Criteria.TcpPortCriterion.class); |
| 614 | - assertThat(tcpPortCriterion.tcpPort(), is(equalTo((short) 1))); | 614 | + assertThat(tcpPortCriterion.tcpPort(), is(equalTo(1))); |
| 615 | } | 615 | } |
| 616 | 616 | ||
| 617 | /** | 617 | /** |
| ... | @@ -619,12 +619,12 @@ public class CriteriaTest { | ... | @@ -619,12 +619,12 @@ public class CriteriaTest { |
| 619 | */ | 619 | */ |
| 620 | @Test | 620 | @Test |
| 621 | public void testMatchTcpDstMethod() { | 621 | public void testMatchTcpDstMethod() { |
| 622 | - Criterion matchTcpDst = Criteria.matchTcpDst((short) 1); | 622 | + Criterion matchTcpDst = Criteria.matchTcpDst(1); |
| 623 | Criteria.TcpPortCriterion tcpPortCriterion = | 623 | Criteria.TcpPortCriterion tcpPortCriterion = |
| 624 | checkAndConvert(matchTcpDst, | 624 | checkAndConvert(matchTcpDst, |
| 625 | Criterion.Type.TCP_DST, | 625 | Criterion.Type.TCP_DST, |
| 626 | Criteria.TcpPortCriterion.class); | 626 | Criteria.TcpPortCriterion.class); |
| 627 | - assertThat(tcpPortCriterion.tcpPort(), is(equalTo((short) 1))); | 627 | + assertThat(tcpPortCriterion.tcpPort(), is(equalTo(1))); |
| 628 | } | 628 | } |
| 629 | 629 | ||
| 630 | /** | 630 | /** |
| ... | @@ -645,12 +645,12 @@ public class CriteriaTest { | ... | @@ -645,12 +645,12 @@ public class CriteriaTest { |
| 645 | */ | 645 | */ |
| 646 | @Test | 646 | @Test |
| 647 | public void testMatchUdpSrcMethod() { | 647 | public void testMatchUdpSrcMethod() { |
| 648 | - Criterion matchUdpSrc = Criteria.matchUdpSrc((short) 1); | 648 | + Criterion matchUdpSrc = Criteria.matchUdpSrc(1); |
| 649 | Criteria.UdpPortCriterion udpPortCriterion = | 649 | Criteria.UdpPortCriterion udpPortCriterion = |
| 650 | checkAndConvert(matchUdpSrc, | 650 | checkAndConvert(matchUdpSrc, |
| 651 | Criterion.Type.UDP_SRC, | 651 | Criterion.Type.UDP_SRC, |
| 652 | Criteria.UdpPortCriterion.class); | 652 | Criteria.UdpPortCriterion.class); |
| 653 | - assertThat(udpPortCriterion.udpPort(), is(equalTo((short) 1))); | 653 | + assertThat(udpPortCriterion.udpPort(), is(equalTo(1))); |
| 654 | } | 654 | } |
| 655 | 655 | ||
| 656 | /** | 656 | /** |
| ... | @@ -658,12 +658,12 @@ public class CriteriaTest { | ... | @@ -658,12 +658,12 @@ public class CriteriaTest { |
| 658 | */ | 658 | */ |
| 659 | @Test | 659 | @Test |
| 660 | public void testMatchUdpDstMethod() { | 660 | public void testMatchUdpDstMethod() { |
| 661 | - Criterion matchUdpDst = Criteria.matchUdpDst((short) 1); | 661 | + Criterion matchUdpDst = Criteria.matchUdpDst(1); |
| 662 | Criteria.UdpPortCriterion udpPortCriterion = | 662 | Criteria.UdpPortCriterion udpPortCriterion = |
| 663 | checkAndConvert(matchUdpDst, | 663 | checkAndConvert(matchUdpDst, |
| 664 | Criterion.Type.UDP_DST, | 664 | Criterion.Type.UDP_DST, |
| 665 | Criteria.UdpPortCriterion.class); | 665 | Criteria.UdpPortCriterion.class); |
| 666 | - assertThat(udpPortCriterion.udpPort(), is(equalTo((short) 1))); | 666 | + assertThat(udpPortCriterion.udpPort(), is(equalTo(1))); |
| 667 | } | 667 | } |
| 668 | 668 | ||
| 669 | /** | 669 | /** |
| ... | @@ -684,12 +684,12 @@ public class CriteriaTest { | ... | @@ -684,12 +684,12 @@ public class CriteriaTest { |
| 684 | */ | 684 | */ |
| 685 | @Test | 685 | @Test |
| 686 | public void testMatchSctpSrcMethod() { | 686 | public void testMatchSctpSrcMethod() { |
| 687 | - Criterion matchSctpSrc = Criteria.matchSctpSrc((short) 1); | 687 | + Criterion matchSctpSrc = Criteria.matchSctpSrc(1); |
| 688 | Criteria.SctpPortCriterion sctpPortCriterion = | 688 | Criteria.SctpPortCriterion sctpPortCriterion = |
| 689 | checkAndConvert(matchSctpSrc, | 689 | checkAndConvert(matchSctpSrc, |
| 690 | Criterion.Type.SCTP_SRC, | 690 | Criterion.Type.SCTP_SRC, |
| 691 | Criteria.SctpPortCriterion.class); | 691 | Criteria.SctpPortCriterion.class); |
| 692 | - assertThat(sctpPortCriterion.sctpPort(), is(equalTo((short) 1))); | 692 | + assertThat(sctpPortCriterion.sctpPort(), is(equalTo(1))); |
| 693 | } | 693 | } |
| 694 | 694 | ||
| 695 | /** | 695 | /** |
| ... | @@ -697,12 +697,12 @@ public class CriteriaTest { | ... | @@ -697,12 +697,12 @@ public class CriteriaTest { |
| 697 | */ | 697 | */ |
| 698 | @Test | 698 | @Test |
| 699 | public void testMatchSctpDstMethod() { | 699 | public void testMatchSctpDstMethod() { |
| 700 | - Criterion matchSctpDst = Criteria.matchSctpDst((short) 1); | 700 | + Criterion matchSctpDst = Criteria.matchSctpDst(1); |
| 701 | Criteria.SctpPortCriterion sctpPortCriterion = | 701 | Criteria.SctpPortCriterion sctpPortCriterion = |
| 702 | checkAndConvert(matchSctpDst, | 702 | checkAndConvert(matchSctpDst, |
| 703 | Criterion.Type.SCTP_DST, | 703 | Criterion.Type.SCTP_DST, |
| 704 | Criteria.SctpPortCriterion.class); | 704 | Criteria.SctpPortCriterion.class); |
| 705 | - assertThat(sctpPortCriterion.sctpPort(), is(equalTo((short) 1))); | 705 | + assertThat(sctpPortCriterion.sctpPort(), is(equalTo(1))); |
| 706 | } | 706 | } |
| 707 | 707 | ||
| 708 | /** | 708 | /** |
| ... | @@ -723,7 +723,7 @@ public class CriteriaTest { | ... | @@ -723,7 +723,7 @@ public class CriteriaTest { |
| 723 | */ | 723 | */ |
| 724 | @Test | 724 | @Test |
| 725 | public void testMatchIcmpTypeMethod() { | 725 | public void testMatchIcmpTypeMethod() { |
| 726 | - Byte icmpType = 12; | 726 | + short icmpType = 12; |
| 727 | Criterion matchIcmpType = Criteria.matchIcmpType(icmpType); | 727 | Criterion matchIcmpType = Criteria.matchIcmpType(icmpType); |
| 728 | Criteria.IcmpTypeCriterion icmpTypeCriterion = | 728 | Criteria.IcmpTypeCriterion icmpTypeCriterion = |
| 729 | checkAndConvert(matchIcmpType, | 729 | checkAndConvert(matchIcmpType, |
| ... | @@ -750,7 +750,7 @@ public class CriteriaTest { | ... | @@ -750,7 +750,7 @@ public class CriteriaTest { |
| 750 | */ | 750 | */ |
| 751 | @Test | 751 | @Test |
| 752 | public void testMatchIcmpCodeMethod() { | 752 | public void testMatchIcmpCodeMethod() { |
| 753 | - Byte icmpCode = 12; | 753 | + short icmpCode = 12; |
| 754 | Criterion matchIcmpCode = Criteria.matchIcmpCode(icmpCode); | 754 | Criterion matchIcmpCode = Criteria.matchIcmpCode(icmpCode); |
| 755 | Criteria.IcmpCodeCriterion icmpCodeCriterion = | 755 | Criteria.IcmpCodeCriterion icmpCodeCriterion = |
| 756 | checkAndConvert(matchIcmpCode, | 756 | checkAndConvert(matchIcmpCode, |
| ... | @@ -777,7 +777,7 @@ public class CriteriaTest { | ... | @@ -777,7 +777,7 @@ public class CriteriaTest { |
| 777 | */ | 777 | */ |
| 778 | @Test | 778 | @Test |
| 779 | public void testMatchIPv6FlowLabelMethod() { | 779 | public void testMatchIPv6FlowLabelMethod() { |
| 780 | - Integer flowLabel = 12; | 780 | + int flowLabel = 12; |
| 781 | Criterion matchFlowLabel = Criteria.matchIPv6FlowLabel(flowLabel); | 781 | Criterion matchFlowLabel = Criteria.matchIPv6FlowLabel(flowLabel); |
| 782 | Criteria.IPv6FlowLabelCriterion flowLabelCriterion = | 782 | Criteria.IPv6FlowLabelCriterion flowLabelCriterion = |
| 783 | checkAndConvert(matchFlowLabel, | 783 | checkAndConvert(matchFlowLabel, |
| ... | @@ -804,7 +804,7 @@ public class CriteriaTest { | ... | @@ -804,7 +804,7 @@ public class CriteriaTest { |
| 804 | */ | 804 | */ |
| 805 | @Test | 805 | @Test |
| 806 | public void testMatchIcmpv6TypeMethod() { | 806 | public void testMatchIcmpv6TypeMethod() { |
| 807 | - Byte icmpv6Type = 12; | 807 | + short icmpv6Type = 12; |
| 808 | Criterion matchIcmpv6Type = Criteria.matchIcmpv6Type(icmpv6Type); | 808 | Criterion matchIcmpv6Type = Criteria.matchIcmpv6Type(icmpv6Type); |
| 809 | Criteria.Icmpv6TypeCriterion icmpv6TypeCriterion = | 809 | Criteria.Icmpv6TypeCriterion icmpv6TypeCriterion = |
| 810 | checkAndConvert(matchIcmpv6Type, | 810 | checkAndConvert(matchIcmpv6Type, |
| ... | @@ -831,7 +831,7 @@ public class CriteriaTest { | ... | @@ -831,7 +831,7 @@ public class CriteriaTest { |
| 831 | */ | 831 | */ |
| 832 | @Test | 832 | @Test |
| 833 | public void testMatchIcmpv6CodeMethod() { | 833 | public void testMatchIcmpv6CodeMethod() { |
| 834 | - Byte icmpv6Code = 12; | 834 | + short icmpv6Code = 12; |
| 835 | Criterion matchIcmpv6Code = Criteria.matchIcmpv6Code(icmpv6Code); | 835 | Criterion matchIcmpv6Code = Criteria.matchIcmpv6Code(icmpv6Code); |
| 836 | Criteria.Icmpv6CodeCriterion icmpv6CodeCriterion = | 836 | Criteria.Icmpv6CodeCriterion icmpv6CodeCriterion = |
| 837 | checkAndConvert(matchIcmpv6Code, | 837 | checkAndConvert(matchIcmpv6Code, | ... | ... |
| ... | @@ -333,12 +333,12 @@ public abstract class FlowModBuilder { | ... | @@ -333,12 +333,12 @@ public abstract class FlowModBuilder { |
| 333 | case ICMPV6_TYPE: | 333 | case ICMPV6_TYPE: |
| 334 | Icmpv6TypeCriterion icmpv6Type = (Icmpv6TypeCriterion) c; | 334 | Icmpv6TypeCriterion icmpv6Type = (Icmpv6TypeCriterion) c; |
| 335 | mBuilder.setExact(MatchField.ICMPV6_TYPE, | 335 | mBuilder.setExact(MatchField.ICMPV6_TYPE, |
| 336 | - U8.of(icmpv6Type.icmpv6Type().byteValue())); | 336 | + U8.of(icmpv6Type.icmpv6Type())); |
| 337 | break; | 337 | break; |
| 338 | case ICMPV6_CODE: | 338 | case ICMPV6_CODE: |
| 339 | Icmpv6CodeCriterion icmpv6Code = (Icmpv6CodeCriterion) c; | 339 | Icmpv6CodeCriterion icmpv6Code = (Icmpv6CodeCriterion) c; |
| 340 | mBuilder.setExact(MatchField.ICMPV6_CODE, | 340 | mBuilder.setExact(MatchField.ICMPV6_CODE, |
| 341 | - U8.of(icmpv6Code.icmpv6Code().byteValue())); | 341 | + U8.of(icmpv6Code.icmpv6Code())); |
| 342 | break; | 342 | break; |
| 343 | case IPV6_ND_TARGET: | 343 | case IPV6_ND_TARGET: |
| 344 | IPv6NDTargetAddressCriterion targetAddressCriterion = | 344 | IPv6NDTargetAddressCriterion targetAddressCriterion = |
| ... | @@ -361,19 +361,19 @@ public abstract class FlowModBuilder { | ... | @@ -361,19 +361,19 @@ public abstract class FlowModBuilder { |
| 361 | break; | 361 | break; |
| 362 | case MPLS_LABEL: | 362 | case MPLS_LABEL: |
| 363 | Criteria.MplsCriterion mp = (Criteria.MplsCriterion) c; | 363 | Criteria.MplsCriterion mp = (Criteria.MplsCriterion) c; |
| 364 | - mBuilder.setExact(MatchField.MPLS_LABEL, | 364 | + mBuilder.setExact(MatchField.MPLS_LABEL, U32.of(mp.label())); |
| 365 | - U32.of(mp.label().intValue())); | ||
| 366 | break; | 365 | break; |
| 367 | case OCH_SIGID: | 366 | case OCH_SIGID: |
| 368 | LambdaCriterion lc = (LambdaCriterion) c; | 367 | LambdaCriterion lc = (LambdaCriterion) c; |
| 369 | mBuilder.setExact(MatchField.OCH_SIGID, | 368 | mBuilder.setExact(MatchField.OCH_SIGID, |
| 370 | - new CircuitSignalID((byte) 1, (byte) 2, lc.lambda(), (short) 1)); | 369 | + new CircuitSignalID((byte) 1, (byte) 2, |
| 370 | + (short) lc.lambda(), (short) 1)); | ||
| 371 | break; | 371 | break; |
| 372 | case OCH_SIGTYPE: | 372 | case OCH_SIGTYPE: |
| 373 | Criteria.OpticalSignalTypeCriterion sc = | 373 | Criteria.OpticalSignalTypeCriterion sc = |
| 374 | (Criteria.OpticalSignalTypeCriterion) c; | 374 | (Criteria.OpticalSignalTypeCriterion) c; |
| 375 | mBuilder.setExact(MatchField.OCH_SIGTYPE, | 375 | mBuilder.setExact(MatchField.OCH_SIGTYPE, |
| 376 | - U8.of(sc.signalType())); | 376 | + U8.of((short) sc.signalType())); |
| 377 | break; | 377 | break; |
| 378 | case ARP_OP: | 378 | case ARP_OP: |
| 379 | case ARP_SHA: | 379 | case ARP_SHA: | ... | ... |
| ... | @@ -43,19 +43,17 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -43,19 +43,17 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 43 | 43 | ||
| 44 | formatMap.put(Criterion.Type.IN_PORT, new FormatInPort()); | 44 | formatMap.put(Criterion.Type.IN_PORT, new FormatInPort()); |
| 45 | formatMap.put(Criterion.Type.IN_PHY_PORT, new FormatInPort()); | 45 | formatMap.put(Criterion.Type.IN_PHY_PORT, new FormatInPort()); |
| 46 | + formatMap.put(Criterion.Type.METADATA, new FormatMetadata()); | ||
| 46 | formatMap.put(Criterion.Type.ETH_DST, new FormatEth()); | 47 | formatMap.put(Criterion.Type.ETH_DST, new FormatEth()); |
| 47 | formatMap.put(Criterion.Type.ETH_SRC, new FormatEth()); | 48 | formatMap.put(Criterion.Type.ETH_SRC, new FormatEth()); |
| 48 | - formatMap.put(Criterion.Type.IP_PROTO, new FormatIpProto()); | ||
| 49 | formatMap.put(Criterion.Type.ETH_TYPE, new FormatEthType()); | 49 | formatMap.put(Criterion.Type.ETH_TYPE, new FormatEthType()); |
| 50 | - formatMap.put(Criterion.Type.METADATA, new FormatMetadata()); | ||
| 51 | formatMap.put(Criterion.Type.VLAN_VID, new FormatVlanVid()); | 50 | formatMap.put(Criterion.Type.VLAN_VID, new FormatVlanVid()); |
| 52 | formatMap.put(Criterion.Type.VLAN_PCP, new FormatVlanPcp()); | 51 | formatMap.put(Criterion.Type.VLAN_PCP, new FormatVlanPcp()); |
| 53 | formatMap.put(Criterion.Type.IP_DSCP, new FormatIpDscp()); | 52 | formatMap.put(Criterion.Type.IP_DSCP, new FormatIpDscp()); |
| 54 | formatMap.put(Criterion.Type.IP_ECN, new FormatIpEcn()); | 53 | formatMap.put(Criterion.Type.IP_ECN, new FormatIpEcn()); |
| 54 | + formatMap.put(Criterion.Type.IP_PROTO, new FormatIpProto()); | ||
| 55 | formatMap.put(Criterion.Type.IPV4_SRC, new FormatIp()); | 55 | formatMap.put(Criterion.Type.IPV4_SRC, new FormatIp()); |
| 56 | formatMap.put(Criterion.Type.IPV4_DST, new FormatIp()); | 56 | formatMap.put(Criterion.Type.IPV4_DST, new FormatIp()); |
| 57 | - formatMap.put(Criterion.Type.IPV6_SRC, new FormatIp()); | ||
| 58 | - formatMap.put(Criterion.Type.IPV6_DST, new FormatIp()); | ||
| 59 | formatMap.put(Criterion.Type.TCP_SRC, new FormatTcp()); | 57 | formatMap.put(Criterion.Type.TCP_SRC, new FormatTcp()); |
| 60 | formatMap.put(Criterion.Type.TCP_DST, new FormatTcp()); | 58 | formatMap.put(Criterion.Type.TCP_DST, new FormatTcp()); |
| 61 | formatMap.put(Criterion.Type.UDP_SRC, new FormatUdp()); | 59 | formatMap.put(Criterion.Type.UDP_SRC, new FormatUdp()); |
| ... | @@ -64,6 +62,8 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -64,6 +62,8 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 64 | formatMap.put(Criterion.Type.SCTP_DST, new FormatSctp()); | 62 | formatMap.put(Criterion.Type.SCTP_DST, new FormatSctp()); |
| 65 | formatMap.put(Criterion.Type.ICMPV4_TYPE, new FormatIcmpV4Type()); | 63 | formatMap.put(Criterion.Type.ICMPV4_TYPE, new FormatIcmpV4Type()); |
| 66 | formatMap.put(Criterion.Type.ICMPV4_CODE, new FormatIcmpV4Code()); | 64 | formatMap.put(Criterion.Type.ICMPV4_CODE, new FormatIcmpV4Code()); |
| 65 | + formatMap.put(Criterion.Type.IPV6_SRC, new FormatIp()); | ||
| 66 | + formatMap.put(Criterion.Type.IPV6_DST, new FormatIp()); | ||
| 67 | formatMap.put(Criterion.Type.IPV6_FLABEL, new FormatIpV6FLabel()); | 67 | formatMap.put(Criterion.Type.IPV6_FLABEL, new FormatIpV6FLabel()); |
| 68 | formatMap.put(Criterion.Type.ICMPV6_TYPE, new FormatIcmpV6Type()); | 68 | formatMap.put(Criterion.Type.ICMPV6_TYPE, new FormatIcmpV6Type()); |
| 69 | formatMap.put(Criterion.Type.ICMPV6_CODE, new FormatIcmpV6Code()); | 69 | formatMap.put(Criterion.Type.ICMPV6_CODE, new FormatIcmpV6Code()); |
| ... | @@ -73,21 +73,20 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -73,21 +73,20 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 73 | formatMap.put(Criterion.Type.MPLS_LABEL, new FormatMplsLabel()); | 73 | formatMap.put(Criterion.Type.MPLS_LABEL, new FormatMplsLabel()); |
| 74 | formatMap.put(Criterion.Type.OCH_SIGID, new FormatOchSigId()); | 74 | formatMap.put(Criterion.Type.OCH_SIGID, new FormatOchSigId()); |
| 75 | formatMap.put(Criterion.Type.OCH_SIGTYPE, new FormatOchSigType()); | 75 | formatMap.put(Criterion.Type.OCH_SIGTYPE, new FormatOchSigType()); |
| 76 | - formatMap.put(Criterion.Type.MPLS_LABEL, new FormatMplsLabel()); | ||
| 77 | 76 | ||
| 78 | // Currently unimplemented | 77 | // Currently unimplemented |
| 79 | formatMap.put(Criterion.Type.ARP_OP, new FormatUnknown()); | 78 | formatMap.put(Criterion.Type.ARP_OP, new FormatUnknown()); |
| 80 | - formatMap.put(Criterion.Type.ARP_SHA, new FormatUnknown()); | ||
| 81 | formatMap.put(Criterion.Type.ARP_SPA, new FormatUnknown()); | 79 | formatMap.put(Criterion.Type.ARP_SPA, new FormatUnknown()); |
| 82 | - formatMap.put(Criterion.Type.ARP_THA, new FormatUnknown()); | ||
| 83 | formatMap.put(Criterion.Type.ARP_TPA, new FormatUnknown()); | 80 | formatMap.put(Criterion.Type.ARP_TPA, new FormatUnknown()); |
| 81 | + formatMap.put(Criterion.Type.ARP_SHA, new FormatUnknown()); | ||
| 82 | + formatMap.put(Criterion.Type.ARP_THA, new FormatUnknown()); | ||
| 84 | formatMap.put(Criterion.Type.MPLS_TC, new FormatUnknown()); | 83 | formatMap.put(Criterion.Type.MPLS_TC, new FormatUnknown()); |
| 85 | formatMap.put(Criterion.Type.MPLS_BOS, new FormatUnknown()); | 84 | formatMap.put(Criterion.Type.MPLS_BOS, new FormatUnknown()); |
| 86 | formatMap.put(Criterion.Type.PBB_ISID, new FormatUnknown()); | 85 | formatMap.put(Criterion.Type.PBB_ISID, new FormatUnknown()); |
| 87 | - formatMap.put(Criterion.Type.PBB_UCA, new FormatUnknown()); | ||
| 88 | formatMap.put(Criterion.Type.TUNNEL_ID, new FormatUnknown()); | 86 | formatMap.put(Criterion.Type.TUNNEL_ID, new FormatUnknown()); |
| 89 | formatMap.put(Criterion.Type.IPV6_EXTHDR, new FormatUnknown()); | 87 | formatMap.put(Criterion.Type.IPV6_EXTHDR, new FormatUnknown()); |
| 90 | formatMap.put(Criterion.Type.UNASSIGNED_40, new FormatUnknown()); | 88 | formatMap.put(Criterion.Type.UNASSIGNED_40, new FormatUnknown()); |
| 89 | + formatMap.put(Criterion.Type.PBB_UCA, new FormatUnknown()); | ||
| 91 | formatMap.put(Criterion.Type.TCP_FLAGS, new FormatUnknown()); | 90 | formatMap.put(Criterion.Type.TCP_FLAGS, new FormatUnknown()); |
| 92 | formatMap.put(Criterion.Type.ACTSET_OUTPUT, new FormatUnknown()); | 91 | formatMap.put(Criterion.Type.ACTSET_OUTPUT, new FormatUnknown()); |
| 93 | formatMap.put(Criterion.Type.PACKET_TYPE, new FormatUnknown()); | 92 | formatMap.put(Criterion.Type.PACKET_TYPE, new FormatUnknown()); |
| ... | @@ -112,20 +111,20 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -112,20 +111,20 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 112 | } | 111 | } |
| 113 | } | 112 | } |
| 114 | 113 | ||
| 115 | - private static class FormatEth implements CriterionTypeFormatter { | 114 | + private static class FormatMetadata implements CriterionTypeFormatter { |
| 116 | @Override | 115 | @Override |
| 117 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | 116 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { |
| 118 | - final Criteria.EthCriterion ethCriterion = (Criteria.EthCriterion) criterion; | 117 | + final Criteria.MetadataCriterion metadataCriterion = |
| 119 | - return root.put("mac", ethCriterion.mac().toString()); | 118 | + (Criteria.MetadataCriterion) criterion; |
| 119 | + return root.put("metadata", metadataCriterion.metadata()); | ||
| 120 | } | 120 | } |
| 121 | } | 121 | } |
| 122 | 122 | ||
| 123 | - private static class FormatIpProto implements CriterionTypeFormatter { | 123 | + private static class FormatEth implements CriterionTypeFormatter { |
| 124 | @Override | 124 | @Override |
| 125 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | 125 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { |
| 126 | - final Criteria.IPProtocolCriterion iPProtocolCriterion = | 126 | + final Criteria.EthCriterion ethCriterion = (Criteria.EthCriterion) criterion; |
| 127 | - (Criteria.IPProtocolCriterion) criterion; | 127 | + return root.put("mac", ethCriterion.mac().toString()); |
| 128 | - return root.put("protocol", iPProtocolCriterion.protocol()); | ||
| 129 | } | 128 | } |
| 130 | } | 129 | } |
| 131 | 130 | ||
| ... | @@ -138,15 +137,6 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -138,15 +137,6 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 138 | } | 137 | } |
| 139 | } | 138 | } |
| 140 | 139 | ||
| 141 | - private static class FormatMetadata implements CriterionTypeFormatter { | ||
| 142 | - @Override | ||
| 143 | - public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | ||
| 144 | - final Criteria.MetadataCriterion metadataCriterion = | ||
| 145 | - (Criteria.MetadataCriterion) criterion; | ||
| 146 | - return root.put("metadata", metadataCriterion.metadata()); | ||
| 147 | - } | ||
| 148 | - } | ||
| 149 | - | ||
| 150 | private static class FormatVlanVid implements CriterionTypeFormatter { | 140 | private static class FormatVlanVid implements CriterionTypeFormatter { |
| 151 | @Override | 141 | @Override |
| 152 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | 142 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { |
| ... | @@ -183,6 +173,15 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -183,6 +173,15 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 183 | } | 173 | } |
| 184 | } | 174 | } |
| 185 | 175 | ||
| 176 | + private static class FormatIpProto implements CriterionTypeFormatter { | ||
| 177 | + @Override | ||
| 178 | + public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | ||
| 179 | + final Criteria.IPProtocolCriterion iPProtocolCriterion = | ||
| 180 | + (Criteria.IPProtocolCriterion) criterion; | ||
| 181 | + return root.put("protocol", iPProtocolCriterion.protocol()); | ||
| 182 | + } | ||
| 183 | + } | ||
| 184 | + | ||
| 186 | private static class FormatIp implements CriterionTypeFormatter { | 185 | private static class FormatIp implements CriterionTypeFormatter { |
| 187 | @Override | 186 | @Override |
| 188 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | 187 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { |
| ... | @@ -196,7 +195,7 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -196,7 +195,7 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 196 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | 195 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { |
| 197 | final Criteria.TcpPortCriterion tcpPortCriterion = | 196 | final Criteria.TcpPortCriterion tcpPortCriterion = |
| 198 | (Criteria.TcpPortCriterion) criterion; | 197 | (Criteria.TcpPortCriterion) criterion; |
| 199 | - return root.put("tcpPort", tcpPortCriterion.tcpPort().byteValue()); | 198 | + return root.put("tcpPort", tcpPortCriterion.tcpPort()); |
| 200 | } | 199 | } |
| 201 | } | 200 | } |
| 202 | 201 | ||
| ... | @@ -205,7 +204,7 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -205,7 +204,7 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 205 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | 204 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { |
| 206 | final Criteria.UdpPortCriterion udpPortCriterion = | 205 | final Criteria.UdpPortCriterion udpPortCriterion = |
| 207 | (Criteria.UdpPortCriterion) criterion; | 206 | (Criteria.UdpPortCriterion) criterion; |
| 208 | - return root.put("udpPort", udpPortCriterion.udpPort().byteValue()); | 207 | + return root.put("udpPort", udpPortCriterion.udpPort()); |
| 209 | } | 208 | } |
| 210 | } | 209 | } |
| 211 | 210 | ||
| ... | @@ -214,8 +213,7 @@ public final class CriterionCodec extends JsonCodec<Criterion> { | ... | @@ -214,8 +213,7 @@ public final class CriterionCodec extends JsonCodec<Criterion> { |
| 214 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { | 213 | public ObjectNode formatCriterion(ObjectNode root, Criterion criterion) { |
| 215 | final Criteria.SctpPortCriterion sctpPortCriterion = | 214 | final Criteria.SctpPortCriterion sctpPortCriterion = |
| 216 | (Criteria.SctpPortCriterion) criterion; | 215 | (Criteria.SctpPortCriterion) criterion; |
| 217 | - return root.put("sctpPort", | 216 | + return root.put("sctpPort", sctpPortCriterion.sctpPort()); |
| 218 | - sctpPortCriterion.sctpPort().byteValue()); | ||
| 219 | } | 217 | } |
| 220 | } | 218 | } |
| 221 | 219 | ... | ... |
| ... | @@ -134,10 +134,10 @@ public class CriterionCodecTest { | ... | @@ -134,10 +134,10 @@ public class CriterionCodecTest { |
| 134 | */ | 134 | */ |
| 135 | @Test | 135 | @Test |
| 136 | public void matchEthTypeTest() { | 136 | public void matchEthTypeTest() { |
| 137 | - Criterion criterion = Criteria.matchEthType((short) 3); | 137 | + Criterion criterion = Criteria.matchEthType((short) 0x8844); |
| 138 | ObjectNode result = criterionCodec.encode(criterion, context); | 138 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 139 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 139 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 140 | - assertThat(result.get("ethType").asInt(), is(3)); | 140 | + assertThat(result.get("ethType").asInt(), is(0x8844)); |
| 141 | } | 141 | } |
| 142 | 142 | ||
| 143 | /** | 143 | /** |
| ... | @@ -156,10 +156,10 @@ public class CriterionCodecTest { | ... | @@ -156,10 +156,10 @@ public class CriterionCodecTest { |
| 156 | */ | 156 | */ |
| 157 | @Test | 157 | @Test |
| 158 | public void matchVlanPcpTest() { | 158 | public void matchVlanPcpTest() { |
| 159 | - Criterion criterion = Criteria.matchVlanPcp((byte) 4); | 159 | + Criterion criterion = Criteria.matchVlanPcp((byte) 7); |
| 160 | ObjectNode result = criterionCodec.encode(criterion, context); | 160 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 161 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 161 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 162 | - assertThat(result.get("priority").asInt(), is(4)); | 162 | + assertThat(result.get("priority").asInt(), is(7)); |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | /** | 165 | /** |
| ... | @@ -167,10 +167,10 @@ public class CriterionCodecTest { | ... | @@ -167,10 +167,10 @@ public class CriterionCodecTest { |
| 167 | */ | 167 | */ |
| 168 | @Test | 168 | @Test |
| 169 | public void matchIPDscpTest() { | 169 | public void matchIPDscpTest() { |
| 170 | - Criterion criterion = Criteria.matchIPDscp((byte) 5); | 170 | + Criterion criterion = Criteria.matchIPDscp((byte) 63); |
| 171 | ObjectNode result = criterionCodec.encode(criterion, context); | 171 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 172 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 172 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 173 | - assertThat(result.get("ipDscp").asInt(), is(5)); | 173 | + assertThat(result.get("ipDscp").asInt(), is(63)); |
| 174 | } | 174 | } |
| 175 | 175 | ||
| 176 | /** | 176 | /** |
| ... | @@ -178,10 +178,10 @@ public class CriterionCodecTest { | ... | @@ -178,10 +178,10 @@ public class CriterionCodecTest { |
| 178 | */ | 178 | */ |
| 179 | @Test | 179 | @Test |
| 180 | public void matchIPEcnTest() { | 180 | public void matchIPEcnTest() { |
| 181 | - Criterion criterion = Criteria.matchIPEcn((byte) 2); | 181 | + Criterion criterion = Criteria.matchIPEcn((byte) 7); |
| 182 | ObjectNode result = criterionCodec.encode(criterion, context); | 182 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 183 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 183 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 184 | - assertThat(result.get("ipEcn").asInt(), is(2)); | 184 | + assertThat(result.get("ipEcn").asInt(), is(7)); |
| 185 | } | 185 | } |
| 186 | 186 | ||
| 187 | /** | 187 | /** |
| ... | @@ -189,10 +189,10 @@ public class CriterionCodecTest { | ... | @@ -189,10 +189,10 @@ public class CriterionCodecTest { |
| 189 | */ | 189 | */ |
| 190 | @Test | 190 | @Test |
| 191 | public void matchIPProtocolTest() { | 191 | public void matchIPProtocolTest() { |
| 192 | - Criterion criterion = Criteria.matchIPProtocol((byte) 7); | 192 | + Criterion criterion = Criteria.matchIPProtocol((byte) 250); |
| 193 | ObjectNode result = criterionCodec.encode(criterion, context); | 193 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 194 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 194 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 195 | - assertThat(result.get("protocol").asInt(), is(7)); | 195 | + assertThat(result.get("protocol").asInt(), is(250)); |
| 196 | } | 196 | } |
| 197 | 197 | ||
| 198 | /** | 198 | /** |
| ... | @@ -222,10 +222,10 @@ public class CriterionCodecTest { | ... | @@ -222,10 +222,10 @@ public class CriterionCodecTest { |
| 222 | */ | 222 | */ |
| 223 | @Test | 223 | @Test |
| 224 | public void matchTcpSrcTest() { | 224 | public void matchTcpSrcTest() { |
| 225 | - Criterion criterion = Criteria.matchTcpSrc((short) 22); | 225 | + Criterion criterion = Criteria.matchTcpSrc((short) 40000); |
| 226 | ObjectNode result = criterionCodec.encode(criterion, context); | 226 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 227 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 227 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 228 | - assertThat(result.get("tcpPort").asInt(), is(22)); | 228 | + assertThat(result.get("tcpPort").asInt(), is(40000)); |
| 229 | } | 229 | } |
| 230 | 230 | ||
| 231 | /** | 231 | /** |
| ... | @@ -233,10 +233,10 @@ public class CriterionCodecTest { | ... | @@ -233,10 +233,10 @@ public class CriterionCodecTest { |
| 233 | */ | 233 | */ |
| 234 | @Test | 234 | @Test |
| 235 | public void matchTcpDstTest() { | 235 | public void matchTcpDstTest() { |
| 236 | - Criterion criterion = Criteria.matchTcpDst((short) 22); | 236 | + Criterion criterion = Criteria.matchTcpDst((short) 40000); |
| 237 | ObjectNode result = criterionCodec.encode(criterion, context); | 237 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 238 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 238 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 239 | - assertThat(result.get("tcpPort").asInt(), is(22)); | 239 | + assertThat(result.get("tcpPort").asInt(), is(40000)); |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | /** | 242 | /** |
| ... | @@ -244,10 +244,10 @@ public class CriterionCodecTest { | ... | @@ -244,10 +244,10 @@ public class CriterionCodecTest { |
| 244 | */ | 244 | */ |
| 245 | @Test | 245 | @Test |
| 246 | public void matchUdpSrcTest() { | 246 | public void matchUdpSrcTest() { |
| 247 | - Criterion criterion = Criteria.matchUdpSrc((short) 22); | 247 | + Criterion criterion = Criteria.matchUdpSrc((short) 40000); |
| 248 | ObjectNode result = criterionCodec.encode(criterion, context); | 248 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 249 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 249 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 250 | - assertThat(result.get("udpPort").asInt(), is(22)); | 250 | + assertThat(result.get("udpPort").asInt(), is(40000)); |
| 251 | } | 251 | } |
| 252 | 252 | ||
| 253 | /** | 253 | /** |
| ... | @@ -255,10 +255,10 @@ public class CriterionCodecTest { | ... | @@ -255,10 +255,10 @@ public class CriterionCodecTest { |
| 255 | */ | 255 | */ |
| 256 | @Test | 256 | @Test |
| 257 | public void matchUdpDstTest() { | 257 | public void matchUdpDstTest() { |
| 258 | - Criterion criterion = Criteria.matchUdpDst((short) 22); | 258 | + Criterion criterion = Criteria.matchUdpDst((short) 40000); |
| 259 | ObjectNode result = criterionCodec.encode(criterion, context); | 259 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 260 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 260 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 261 | - assertThat(result.get("udpPort").asInt(), is(22)); | 261 | + assertThat(result.get("udpPort").asInt(), is(40000)); |
| 262 | } | 262 | } |
| 263 | 263 | ||
| 264 | /** | 264 | /** |
| ... | @@ -266,10 +266,10 @@ public class CriterionCodecTest { | ... | @@ -266,10 +266,10 @@ public class CriterionCodecTest { |
| 266 | */ | 266 | */ |
| 267 | @Test | 267 | @Test |
| 268 | public void matchSctpSrcTest() { | 268 | public void matchSctpSrcTest() { |
| 269 | - Criterion criterion = Criteria.matchSctpSrc((short) 22); | 269 | + Criterion criterion = Criteria.matchSctpSrc((short) 40000); |
| 270 | ObjectNode result = criterionCodec.encode(criterion, context); | 270 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 271 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 271 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 272 | - assertThat(result.get("sctpPort").asInt(), is(22)); | 272 | + assertThat(result.get("sctpPort").asInt(), is(40000)); |
| 273 | } | 273 | } |
| 274 | 274 | ||
| 275 | /** | 275 | /** |
| ... | @@ -277,10 +277,10 @@ public class CriterionCodecTest { | ... | @@ -277,10 +277,10 @@ public class CriterionCodecTest { |
| 277 | */ | 277 | */ |
| 278 | @Test | 278 | @Test |
| 279 | public void matchSctpDstTest() { | 279 | public void matchSctpDstTest() { |
| 280 | - Criterion criterion = Criteria.matchSctpDst((short) 22); | 280 | + Criterion criterion = Criteria.matchSctpDst((short) 40000); |
| 281 | ObjectNode result = criterionCodec.encode(criterion, context); | 281 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 282 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 282 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 283 | - assertThat(result.get("sctpPort").asInt(), is(22)); | 283 | + assertThat(result.get("sctpPort").asInt(), is(40000)); |
| 284 | } | 284 | } |
| 285 | 285 | ||
| 286 | /** | 286 | /** |
| ... | @@ -288,10 +288,10 @@ public class CriterionCodecTest { | ... | @@ -288,10 +288,10 @@ public class CriterionCodecTest { |
| 288 | */ | 288 | */ |
| 289 | @Test | 289 | @Test |
| 290 | public void matchIcmpTypeTest() { | 290 | public void matchIcmpTypeTest() { |
| 291 | - Criterion criterion = Criteria.matchIcmpType((byte) 6); | 291 | + Criterion criterion = Criteria.matchIcmpType((byte) 250); |
| 292 | ObjectNode result = criterionCodec.encode(criterion, context); | 292 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 293 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 293 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 294 | - assertThat(result.get("icmpType").asInt(), is(6)); | 294 | + assertThat(result.get("icmpType").asInt(), is(250)); |
| 295 | } | 295 | } |
| 296 | 296 | ||
| 297 | /** | 297 | /** |
| ... | @@ -299,10 +299,10 @@ public class CriterionCodecTest { | ... | @@ -299,10 +299,10 @@ public class CriterionCodecTest { |
| 299 | */ | 299 | */ |
| 300 | @Test | 300 | @Test |
| 301 | public void matchIcmpCodeTest() { | 301 | public void matchIcmpCodeTest() { |
| 302 | - Criterion criterion = Criteria.matchIcmpCode((byte) 6); | 302 | + Criterion criterion = Criteria.matchIcmpCode((byte) 250); |
| 303 | ObjectNode result = criterionCodec.encode(criterion, context); | 303 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 304 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 304 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 305 | - assertThat(result.get("icmpCode").asInt(), is(6)); | 305 | + assertThat(result.get("icmpCode").asInt(), is(250)); |
| 306 | } | 306 | } |
| 307 | 307 | ||
| 308 | /** | 308 | /** |
| ... | @@ -332,10 +332,10 @@ public class CriterionCodecTest { | ... | @@ -332,10 +332,10 @@ public class CriterionCodecTest { |
| 332 | */ | 332 | */ |
| 333 | @Test | 333 | @Test |
| 334 | public void matchIPv6FlowLabelTest() { | 334 | public void matchIPv6FlowLabelTest() { |
| 335 | - Criterion criterion = Criteria.matchIPv6FlowLabel(7); | 335 | + Criterion criterion = Criteria.matchIPv6FlowLabel(0xffffe); |
| 336 | ObjectNode result = criterionCodec.encode(criterion, context); | 336 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 337 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 337 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 338 | - assertThat(result.get("flowLabel").asInt(), is(7)); | 338 | + assertThat(result.get("flowLabel").asInt(), is(0xffffe)); |
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | /** | 341 | /** |
| ... | @@ -343,10 +343,10 @@ public class CriterionCodecTest { | ... | @@ -343,10 +343,10 @@ public class CriterionCodecTest { |
| 343 | */ | 343 | */ |
| 344 | @Test | 344 | @Test |
| 345 | public void matchIcmpv6TypeTest() { | 345 | public void matchIcmpv6TypeTest() { |
| 346 | - Criterion criterion = Criteria.matchIcmpv6Type((byte) 15); | 346 | + Criterion criterion = Criteria.matchIcmpv6Type((byte) 250); |
| 347 | ObjectNode result = criterionCodec.encode(criterion, context); | 347 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 348 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 348 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 349 | - assertThat(result.get("icmpv6Type").asInt(), is(15)); | 349 | + assertThat(result.get("icmpv6Type").asInt(), is(250)); |
| 350 | } | 350 | } |
| 351 | 351 | ||
| 352 | /** | 352 | /** |
| ... | @@ -354,10 +354,10 @@ public class CriterionCodecTest { | ... | @@ -354,10 +354,10 @@ public class CriterionCodecTest { |
| 354 | */ | 354 | */ |
| 355 | @Test | 355 | @Test |
| 356 | public void matchIcmpv6CodeTest() { | 356 | public void matchIcmpv6CodeTest() { |
| 357 | - Criterion criterion = Criteria.matchIcmpv6Code((byte) 17); | 357 | + Criterion criterion = Criteria.matchIcmpv6Code((byte) 250); |
| 358 | ObjectNode result = criterionCodec.encode(criterion, context); | 358 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 359 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 359 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 360 | - assertThat(result.get("icmpv6Code").asInt(), is(17)); | 360 | + assertThat(result.get("icmpv6Code").asInt(), is(250)); |
| 361 | } | 361 | } |
| 362 | 362 | ||
| 363 | /** | 363 | /** |
| ... | @@ -400,10 +400,10 @@ public class CriterionCodecTest { | ... | @@ -400,10 +400,10 @@ public class CriterionCodecTest { |
| 400 | */ | 400 | */ |
| 401 | @Test | 401 | @Test |
| 402 | public void matchMplsLabelTest() { | 402 | public void matchMplsLabelTest() { |
| 403 | - Criterion criterion = Criteria.matchMplsLabel(88); | 403 | + Criterion criterion = Criteria.matchMplsLabel(0xffffe); |
| 404 | ObjectNode result = criterionCodec.encode(criterion, context); | 404 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 405 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 405 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 406 | - assertThat(result.get("label").asInt(), is(88)); | 406 | + assertThat(result.get("label").asInt(), is(0xffffe)); |
| 407 | } | 407 | } |
| 408 | 408 | ||
| 409 | /** | 409 | /** |
| ... | @@ -411,10 +411,10 @@ public class CriterionCodecTest { | ... | @@ -411,10 +411,10 @@ public class CriterionCodecTest { |
| 411 | */ | 411 | */ |
| 412 | @Test | 412 | @Test |
| 413 | public void matchLambdaTest() { | 413 | public void matchLambdaTest() { |
| 414 | - Criterion criterion = Criteria.matchLambda((short) 9); | 414 | + Criterion criterion = Criteria.matchLambda((short) 40000); |
| 415 | ObjectNode result = criterionCodec.encode(criterion, context); | 415 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 416 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 416 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 417 | - assertThat(result.get("lambda").asInt(), is(9)); | 417 | + assertThat(result.get("lambda").asInt(), is(40000)); |
| 418 | } | 418 | } |
| 419 | 419 | ||
| 420 | /** | 420 | /** |
| ... | @@ -422,10 +422,10 @@ public class CriterionCodecTest { | ... | @@ -422,10 +422,10 @@ public class CriterionCodecTest { |
| 422 | */ | 422 | */ |
| 423 | @Test | 423 | @Test |
| 424 | public void matchOpticalSignalTypeTest() { | 424 | public void matchOpticalSignalTypeTest() { |
| 425 | - Criterion criterion = Criteria.matchOpticalSignalType((short) 11); | 425 | + Criterion criterion = Criteria.matchOpticalSignalType((short) 40000); |
| 426 | ObjectNode result = criterionCodec.encode(criterion, context); | 426 | ObjectNode result = criterionCodec.encode(criterion, context); |
| 427 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); | 427 | assertThat(result.get("type").textValue(), is(criterion.type().toString())); |
| 428 | - assertThat(result.get("signalType").asInt(), is(11)); | 428 | + assertThat(result.get("signalType").asInt(), is(40000)); |
| 429 | } | 429 | } |
| 430 | 430 | ||
| 431 | } | 431 | } | ... | ... |
| ... | @@ -84,7 +84,8 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -84,7 +84,8 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 84 | case ETH_TYPE: | 84 | case ETH_TYPE: |
| 85 | final Criteria.EthTypeCriterion ethTypeCriterion = | 85 | final Criteria.EthTypeCriterion ethTypeCriterion = |
| 86 | (Criteria.EthTypeCriterion) criterion; | 86 | (Criteria.EthTypeCriterion) criterion; |
| 87 | - final String ethType = ethTypeCriterion.ethType().toString(); | 87 | + final String ethType = |
| 88 | + Long.toHexString(ethTypeCriterion.ethType()); | ||
| 88 | final String jsonEthType = jsonCriterion.get("ethType").textValue(); | 89 | final String jsonEthType = jsonCriterion.get("ethType").textValue(); |
| 89 | if (!ethType.equals(jsonEthType)) { | 90 | if (!ethType.equals(jsonEthType)) { |
| 90 | description.appendText("ethType was " + jsonEthType); | 91 | description.appendText("ethType was " + jsonEthType); |
| ... | @@ -139,10 +140,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -139,10 +140,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 139 | case IP_PROTO: | 140 | case IP_PROTO: |
| 140 | final Criteria.IPProtocolCriterion iPProtocolCriterion = | 141 | final Criteria.IPProtocolCriterion iPProtocolCriterion = |
| 141 | (Criteria.IPProtocolCriterion) criterion; | 142 | (Criteria.IPProtocolCriterion) criterion; |
| 142 | - final byte protocol = iPProtocolCriterion.protocol(); | 143 | + final short protocol = iPProtocolCriterion.protocol(); |
| 143 | - final byte jsonProtocol = (byte) jsonCriterion.get("protocol").shortValue(); | 144 | + final short jsonProtocol = jsonCriterion.get("protocol").shortValue(); |
| 144 | if (protocol != jsonProtocol) { | 145 | if (protocol != jsonProtocol) { |
| 145 | - description.appendText("protocol was " + Byte.toString(jsonProtocol)); | 146 | + description.appendText("protocol was " + Short.toString(jsonProtocol)); |
| 146 | return false; | 147 | return false; |
| 147 | } | 148 | } |
| 148 | break; | 149 | break; |
| ... | @@ -165,10 +166,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -165,10 +166,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 165 | case TCP_DST: | 166 | case TCP_DST: |
| 166 | final Criteria.TcpPortCriterion tcpPortCriterion = | 167 | final Criteria.TcpPortCriterion tcpPortCriterion = |
| 167 | (Criteria.TcpPortCriterion) criterion; | 168 | (Criteria.TcpPortCriterion) criterion; |
| 168 | - final short tcpPort = tcpPortCriterion.tcpPort(); | 169 | + final int tcpPort = tcpPortCriterion.tcpPort(); |
| 169 | - final short jsonTcpPort = jsonCriterion.get("tcpPort").shortValue(); | 170 | + final int jsonTcpPort = jsonCriterion.get("tcpPort").intValue(); |
| 170 | if (tcpPort != jsonTcpPort) { | 171 | if (tcpPort != jsonTcpPort) { |
| 171 | - description.appendText("tcp port was " + Short.toString(jsonTcpPort)); | 172 | + description.appendText("tcp port was " + Integer.toString(jsonTcpPort)); |
| 172 | return false; | 173 | return false; |
| 173 | } | 174 | } |
| 174 | break; | 175 | break; |
| ... | @@ -177,10 +178,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -177,10 +178,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 177 | case UDP_DST: | 178 | case UDP_DST: |
| 178 | final Criteria.UdpPortCriterion udpPortCriterion = | 179 | final Criteria.UdpPortCriterion udpPortCriterion = |
| 179 | (Criteria.UdpPortCriterion) criterion; | 180 | (Criteria.UdpPortCriterion) criterion; |
| 180 | - final short udpPort = udpPortCriterion.udpPort(); | 181 | + final int udpPort = udpPortCriterion.udpPort(); |
| 181 | - final short jsonUdpPort = jsonCriterion.get("udpPort").shortValue(); | 182 | + final int jsonUdpPort = jsonCriterion.get("udpPort").intValue(); |
| 182 | if (udpPort != jsonUdpPort) { | 183 | if (udpPort != jsonUdpPort) { |
| 183 | - description.appendText("udp port was " + Short.toString(jsonUdpPort)); | 184 | + description.appendText("udp port was " + Integer.toString(jsonUdpPort)); |
| 184 | return false; | 185 | return false; |
| 185 | } | 186 | } |
| 186 | break; | 187 | break; |
| ... | @@ -189,10 +190,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -189,10 +190,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 189 | case SCTP_DST: | 190 | case SCTP_DST: |
| 190 | final Criteria.SctpPortCriterion sctpPortCriterion = | 191 | final Criteria.SctpPortCriterion sctpPortCriterion = |
| 191 | (Criteria.SctpPortCriterion) criterion; | 192 | (Criteria.SctpPortCriterion) criterion; |
| 192 | - final short sctpPort = sctpPortCriterion.sctpPort(); | 193 | + final int sctpPort = sctpPortCriterion.sctpPort(); |
| 193 | - final short jsonSctpPort = jsonCriterion.get("sctpPort").shortValue(); | 194 | + final int jsonSctpPort = jsonCriterion.get("sctpPort").intValue(); |
| 194 | if (sctpPort != jsonSctpPort) { | 195 | if (sctpPort != jsonSctpPort) { |
| 195 | - description.appendText("sctp port was " + Short.toString(jsonSctpPort)); | 196 | + description.appendText("sctp port was " + Integer.toString(jsonSctpPort)); |
| 196 | return false; | 197 | return false; |
| 197 | } | 198 | } |
| 198 | break; | 199 | break; |
| ... | @@ -200,10 +201,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -200,10 +201,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 200 | case ICMPV4_TYPE: | 201 | case ICMPV4_TYPE: |
| 201 | final Criteria.IcmpTypeCriterion icmpTypeCriterion = | 202 | final Criteria.IcmpTypeCriterion icmpTypeCriterion = |
| 202 | (Criteria.IcmpTypeCriterion) criterion; | 203 | (Criteria.IcmpTypeCriterion) criterion; |
| 203 | - final byte icmpType = icmpTypeCriterion.icmpType(); | 204 | + final short icmpType = icmpTypeCriterion.icmpType(); |
| 204 | - final byte jsonIcmpType = (byte) jsonCriterion.get("icmpType").shortValue(); | 205 | + final short jsonIcmpType = jsonCriterion.get("icmpType").shortValue(); |
| 205 | if (icmpType != jsonIcmpType) { | 206 | if (icmpType != jsonIcmpType) { |
| 206 | - description.appendText("icmp type was " + Byte.toString(jsonIcmpType)); | 207 | + description.appendText("icmp type was " + Short.toString(jsonIcmpType)); |
| 207 | return false; | 208 | return false; |
| 208 | } | 209 | } |
| 209 | break; | 210 | break; |
| ... | @@ -211,10 +212,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -211,10 +212,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 211 | case ICMPV4_CODE: | 212 | case ICMPV4_CODE: |
| 212 | final Criteria.IcmpCodeCriterion icmpCodeCriterion = | 213 | final Criteria.IcmpCodeCriterion icmpCodeCriterion = |
| 213 | (Criteria.IcmpCodeCriterion) criterion; | 214 | (Criteria.IcmpCodeCriterion) criterion; |
| 214 | - final byte icmpCode = icmpCodeCriterion.icmpCode(); | 215 | + final short icmpCode = icmpCodeCriterion.icmpCode(); |
| 215 | - final byte jsonIcmpCode = (byte) jsonCriterion.get("icmpCode").shortValue(); | 216 | + final short jsonIcmpCode = jsonCriterion.get("icmpCode").shortValue(); |
| 216 | if (icmpCode != jsonIcmpCode) { | 217 | if (icmpCode != jsonIcmpCode) { |
| 217 | - description.appendText("icmp code was " + Byte.toString(jsonIcmpCode)); | 218 | + description.appendText("icmp code was " + Short.toString(jsonIcmpCode)); |
| 218 | return false; | 219 | return false; |
| 219 | } | 220 | } |
| 220 | break; | 221 | break; |
| ... | @@ -233,10 +234,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -233,10 +234,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 233 | case ICMPV6_TYPE: | 234 | case ICMPV6_TYPE: |
| 234 | final Criteria.Icmpv6TypeCriterion icmpv6TypeCriterion = | 235 | final Criteria.Icmpv6TypeCriterion icmpv6TypeCriterion = |
| 235 | (Criteria.Icmpv6TypeCriterion) criterion; | 236 | (Criteria.Icmpv6TypeCriterion) criterion; |
| 236 | - final byte icmpv6Type = icmpv6TypeCriterion.icmpv6Type(); | 237 | + final short icmpv6Type = icmpv6TypeCriterion.icmpv6Type(); |
| 237 | - final byte jsonIcmpv6Type = (byte) jsonCriterion.get("icmpv6Type").shortValue(); | 238 | + final short jsonIcmpv6Type = jsonCriterion.get("icmpv6Type").shortValue(); |
| 238 | if (icmpv6Type != jsonIcmpv6Type) { | 239 | if (icmpv6Type != jsonIcmpv6Type) { |
| 239 | - description.appendText("icmpv6 type was " + Byte.toString(jsonIcmpv6Type)); | 240 | + description.appendText("icmpv6 type was " + Short.toString(jsonIcmpv6Type)); |
| 240 | return false; | 241 | return false; |
| 241 | } | 242 | } |
| 242 | break; | 243 | break; |
| ... | @@ -244,10 +245,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -244,10 +245,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 244 | case ICMPV6_CODE: | 245 | case ICMPV6_CODE: |
| 245 | final Criteria.Icmpv6CodeCriterion icmpv6CodeCriterion = | 246 | final Criteria.Icmpv6CodeCriterion icmpv6CodeCriterion = |
| 246 | (Criteria.Icmpv6CodeCriterion) criterion; | 247 | (Criteria.Icmpv6CodeCriterion) criterion; |
| 247 | - final byte icmpv6Code = icmpv6CodeCriterion.icmpv6Code(); | 248 | + final short icmpv6Code = icmpv6CodeCriterion.icmpv6Code(); |
| 248 | - final byte jsonIcmpv6Code = (byte) jsonCriterion.get("icmpv6Code").shortValue(); | 249 | + final short jsonIcmpv6Code = jsonCriterion.get("icmpv6Code").shortValue(); |
| 249 | if (icmpv6Code != jsonIcmpv6Code) { | 250 | if (icmpv6Code != jsonIcmpv6Code) { |
| 250 | - description.appendText("icmpv6 code was " + Byte.toString(jsonIcmpv6Code)); | 251 | + description.appendText("icmpv6 code was " + Short.toString(jsonIcmpv6Code)); |
| 251 | return false; | 252 | return false; |
| 252 | } | 253 | } |
| 253 | break; | 254 | break; |
| ... | @@ -296,10 +297,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -296,10 +297,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 296 | case OCH_SIGID: | 297 | case OCH_SIGID: |
| 297 | final Criteria.LambdaCriterion lambdaCriterion = | 298 | final Criteria.LambdaCriterion lambdaCriterion = |
| 298 | (Criteria.LambdaCriterion) criterion; | 299 | (Criteria.LambdaCriterion) criterion; |
| 299 | - final short lambda = lambdaCriterion.lambda(); | 300 | + final int lambda = lambdaCriterion.lambda(); |
| 300 | - final short jsonLambda = jsonCriterion.get("lambda").shortValue(); | 301 | + final int jsonLambda = jsonCriterion.get("lambda").intValue(); |
| 301 | if (lambda != jsonLambda) { | 302 | if (lambda != jsonLambda) { |
| 302 | - description.appendText("lambda was " + Short.toString(lambda)); | 303 | + description.appendText("lambda was " + Integer.toString(lambda)); |
| 303 | return false; | 304 | return false; |
| 304 | } | 305 | } |
| 305 | break; | 306 | break; |
| ... | @@ -307,10 +308,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo | ... | @@ -307,10 +308,10 @@ public final class CriterionJsonMatcher extends TypeSafeDiagnosingMatcher<JsonNo |
| 307 | case OCH_SIGTYPE: | 308 | case OCH_SIGTYPE: |
| 308 | final Criteria.OpticalSignalTypeCriterion opticalSignalTypeCriterion = | 309 | final Criteria.OpticalSignalTypeCriterion opticalSignalTypeCriterion = |
| 309 | (Criteria.OpticalSignalTypeCriterion) criterion; | 310 | (Criteria.OpticalSignalTypeCriterion) criterion; |
| 310 | - final short signalType = opticalSignalTypeCriterion.signalType(); | 311 | + final int signalType = opticalSignalTypeCriterion.signalType(); |
| 311 | - final short jsonSignalType = jsonCriterion.get("signalType").shortValue(); | 312 | + final int jsonSignalType = jsonCriterion.get("signalType").intValue(); |
| 312 | if (signalType != jsonSignalType) { | 313 | if (signalType != jsonSignalType) { |
| 313 | - description.appendText("signal type was " + Short.toString(signalType)); | 314 | + description.appendText("signal type was " + Integer.toString(signalType)); |
| 314 | return false; | 315 | return false; |
| 315 | } | 316 | } |
| 316 | break; | 317 | break; | ... | ... |
-
Please register or login to post a comment