Skip to content

Commit 7cb07a8

Browse files
committed
Add new logical level - IpPayload
IpPacket consists of IpHeader and IpPayload. IpHeader can be IPv4 or IPv6. IpPayload can be TCP, UDP, ICMP, etc. Earlier we inherited each IP Packet type directly from IpPacket.
1 parent 8483b58 commit 7cb07a8

110 files changed

Lines changed: 834 additions & 768 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/main/java/com/github/hirsivaja/ip/IpPacket.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
public sealed interface IpPacket extends EthernetPayload permits Ipv4Packet, Ipv6Packet {
1515
Logger logger = Logger.getLogger("IpPacket");
1616
IpHeader header();
17+
IpPayload payload();
1718

1819
@Override
1920
default byte[] toBytes() {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.github.hirsivaja.ip;
2+
3+
import com.github.hirsivaja.ip.ipv4.Ipv4Payload;
4+
import com.github.hirsivaja.ip.ipv6.Ipv6Payload;
5+
6+
import java.nio.ByteBuffer;
7+
8+
public sealed interface IpPayload permits Ipv4Payload, Ipv6Payload {
9+
void encode(ByteBuffer out);
10+
int length();
11+
}

src/main/java/com/github/hirsivaja/ip/icmp/AddressMaskReply.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void encode(ByteBuffer out) {
1313

1414
@Override
1515
public int length() {
16-
return BASE_LEN + 8;
16+
return 8;
1717
}
1818

1919
public static IcmpMessage decode(ByteBuffer in) {

src/main/java/com/github/hirsivaja/ip/icmp/AddressMaskRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ public void encode(ByteBuffer out) {
1313

1414
@Override
1515
public int length() {
16-
return BASE_LEN + 8;
16+
return 8;
1717
}
1818

1919
public static IcmpMessage decode(ByteBuffer in) {

src/main/java/com/github/hirsivaja/ip/icmp/DestinationUnreachable.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void encode(ByteBuffer out) {
1616

1717
@Override
1818
public int length() {
19-
return BASE_LEN + 4 + payload.array().length;
19+
return 4 + payload.array().length;
2020
}
2121

2222
public static IcmpMessage decode(ByteBuffer in, IcmpCode code) {

src/main/java/com/github/hirsivaja/ip/icmp/EchoReply.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public void encode(ByteBuffer out) {
1717

1818
@Override
1919
public int length() {
20-
return BASE_LEN + 4 + payload.array().length;
20+
return 4 + payload.array().length;
2121
}
2222

2323
public static IcmpMessage decode(ByteBuffer in) {

src/main/java/com/github/hirsivaja/ip/icmp/EchoRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void encode(ByteBuffer out) {
1818

1919
@Override
2020
public int length() {
21-
return BASE_LEN + 4 + payload.array().length;
21+
return 4 + payload.array().length;
2222
}
2323

2424
public static IcmpMessage decode(ByteBuffer in) {

src/main/java/com/github/hirsivaja/ip/icmp/ExtendedEchoReply.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public void encode(ByteBuffer out) {
3131

3232
@Override
3333
public int length() {
34-
return BASE_LEN + 4;
34+
return 4;
3535
}
3636

3737
public static IcmpMessage decode(ByteBuffer in, IcmpCode code) {

src/main/java/com/github/hirsivaja/ip/icmp/ExtendedEchoRequest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void encode(ByteBuffer out) {
2424

2525
@Override
2626
public int length() {
27-
return BASE_LEN + 4 + extension.array().length;
27+
return 4 + extension.array().length;
2828
}
2929

3030
public static IcmpMessage decode(ByteBuffer in) {

src/main/java/com/github/hirsivaja/ip/icmp/GenericIcmpMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void encode(ByteBuffer out) {
1616

1717
@Override
1818
public int length() {
19-
return BASE_LEN + payload.array().length;
19+
return payload.array().length;
2020
}
2121

2222
public static IcmpMessage decode(ByteBuffer in, IcmpType type, IcmpCode code) {

0 commit comments

Comments
 (0)