Skip to content

Commit e4ddee6

Browse files
authored
network: allow icmp code 16 in firewall rules (#3468)
This allows for icmp code range 0-16. Type 9 Router advertisement reference: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml#icmp-parameters-codes-9/#table-icmp-parameters-ext-classes Fixes #3349 Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>
1 parent f1614aa commit e4ddee6

File tree

3 files changed

+5
-5
lines changed

3 files changed

+5
-5
lines changed

server/src/main/java/com/cloud/network/vpc/NetworkACLServiceImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ protected void validateIcmpTypeAndCode(NetworkACLItemVO networkACLItemVO) {
545545
}
546546
if (icmpCode != null) {
547547
if (icmpCode.longValue() != -1 && !NetUtils.validateIcmpCode(icmpCode.longValue())) {
548-
throw new InvalidParameterValueException(String.format("Invalid icmp code [%d]. It should belong to [0-15] range and can be defined when icmpType belongs to [0-40] range", icmpCode));
548+
throw new InvalidParameterValueException(String.format("Invalid icmp code [%d]. It should belong to [0-16] range and can be defined when icmpType belongs to [0-40] range", icmpCode));
549549
}
550550
}
551551
}

server/src/test/java/com/cloud/network/vpc/NetworkACLServiceImplTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,7 @@ public void validateIcmpTypeAndCodeTestIcmpTypeNegativeOneAndIcmpCodeNegativeOne
685685
@Test(expected = InvalidParameterValueException.class)
686686
public void validateIcmpTypeAndCodeTestIcmpTypeValidAndIcmpCodeInvalid() {
687687
Mockito.when(networkAclItemVoMock.getIcmpType()).thenReturn(255);
688-
Mockito.when(networkAclItemVoMock.getIcmpCode()).thenReturn(16);
688+
Mockito.when(networkAclItemVoMock.getIcmpCode()).thenReturn(17);
689689

690690
networkAclServiceImpl.validateIcmpTypeAndCode(networkAclItemVoMock);
691691
}

utils/src/main/java/com/cloud/utils/net/NetUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1215,9 +1215,9 @@ public static boolean validateIcmpType(final long icmpType) {
12151215

12161216
public static boolean validateIcmpCode(final long icmpCode) {
12171217

1218-
//Source - http://www.erg.abdn.ac.uk/~gorry/course/inet-pages/icmp-code.html
1219-
if (!(icmpCode >= 0 && icmpCode <= 15)) {
1220-
s_logger.warn("Icmp code should be within 0-15 range");
1218+
// Reference: https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml#icmp-parameters-codes-9/#table-icmp-parameters-ext-classes
1219+
if (!(icmpCode >= 0 && icmpCode <= 16)) {
1220+
s_logger.warn("Icmp code should be within 0-16 range");
12211221
return false;
12221222
}
12231223

0 commit comments

Comments
 (0)