Package net.i2p.router.transport.udp
Class PacketBuilder
java.lang.Object
net.i2p.router.transport.udp.PacketBuilder
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Class for passing multiple fragments to buildPacket() -
Field Summary
Modifier and TypeFieldDescriptionstatic final int
one byte fieldstatic final int
not including acks.static final int
4 byte msg ID + 3 byte fragment infostatic final int
if no extended options or rekey data, which we don't support = 37static final int
IPv4 onlystatic final int
static final int
74static final int
94(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
For debugging and stats only - does not go out on the wire.(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
(package private) static final int
static final int
Same for IPv4 and IPv6 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic int
getMaxAdditionalFragmentSize
(PeerState peer, int numFragments, int curDataSize) Will a packet to 'peer' that already has 'numFragments' fragments totalling 'curDataSize' bytes fit another fragment of size 'newFragSize' ?? This doesn't leave anything for acks.
-
Field Details
-
TYPE_FIRST
static final int TYPE_FIRSTFor debugging and stats only - does not go out on the wire. These are chosen to be higher than the highest I2NP message type, as a data packet is set to the underlying I2NP message type.- See Also:
-
TYPE_ACK
static final int TYPE_ACK- See Also:
-
TYPE_PUNCH
static final int TYPE_PUNCH- See Also:
-
TYPE_RESP
static final int TYPE_RESP- See Also:
-
TYPE_INTRO
static final int TYPE_INTRO- See Also:
-
TYPE_RREQ
static final int TYPE_RREQ- See Also:
-
TYPE_TCB
static final int TYPE_TCB- See Also:
-
TYPE_TBC
static final int TYPE_TBC- See Also:
-
TYPE_TTA
static final int TYPE_TTA- See Also:
-
TYPE_TFA
static final int TYPE_TFA- See Also:
-
TYPE_CONF
static final int TYPE_CONF- See Also:
-
TYPE_SREQ
static final int TYPE_SREQ- See Also:
-
TYPE_CREAT
static final int TYPE_CREAT- See Also:
-
HEADER_SIZE
public static final int HEADER_SIZEif no extended options or rekey data, which we don't support = 37- See Also:
-
FRAGMENT_HEADER_SIZE
public static final int FRAGMENT_HEADER_SIZE4 byte msg ID + 3 byte fragment info- See Also:
-
DATA_HEADER_SIZE
public static final int DATA_HEADER_SIZEnot including acks. 46- See Also:
-
IP_HEADER_SIZE
public static final int IP_HEADER_SIZEIPv4 only- See Also:
-
UDP_HEADER_SIZE
public static final int UDP_HEADER_SIZESame for IPv4 and IPv6- See Also:
-
MIN_DATA_PACKET_OVERHEAD
public static final int MIN_DATA_PACKET_OVERHEAD74- See Also:
-
IPV6_HEADER_SIZE
public static final int IPV6_HEADER_SIZE- See Also:
-
MIN_IPV6_DATA_PACKET_OVERHEAD
public static final int MIN_IPV6_DATA_PACKET_OVERHEAD94- See Also:
-
ABSOLUTE_MAX_ACKS
public static final int ABSOLUTE_MAX_ACKSone byte field- See Also:
-
PRIORITY_HIGH
static final int PRIORITY_HIGH- See Also:
-
-
Constructor Details
-
PacketBuilder
PacketBuilder()
-
-
Method Details
-
getMaxAdditionalFragmentSize
Will a packet to 'peer' that already has 'numFragments' fragments totalling 'curDataSize' bytes fit another fragment of size 'newFragSize' ?? This doesn't leave anything for acks.- Parameters:
numFragments
- >= 1- Since:
- 0.9.16
-