Livt packages
Livt.Net
Version 1.4.1
Ethernet, IPv4, TCP, UDP, ARP, TFTP, and Telnet networking components for Livt hardware.
Published files (163)
- ethernet
- services
- tftp
- ArpCompositionChecks.lvt
- ArpPacketParserTest.lvt
- ArpResponderTest.lvt
- ChecksumApiTest.lvt
- ChecksumWordSumTest.lvt
- CompactPacketFieldsTest.lvt
- CountingPacketData.lvt
- EthernetFrameBuilderTest.lvt
- EthernetFrameParserTest.lvt
- EthernetLiteDeviceFixture.lvt
- EthernetLiteDriverTest.lvt
- EthernetLiteReceiveWindowTest.lvt
- EthernetLiteResetScenario.lvt
- EthernetLiteResetTest.lvt
- FaultingFrameData.lvt
- FaultingPacketData.lvt
- FrameCapacityTest.lvt
- FrameCompositionTest.lvt
- FrameForwarder.lvt
- FrameLinkTest.lvt
- FrameMii10Link.lvt
- FrameMiiLink.lvt
- FrameMiiPins.lvt
- GenericPacketTest.lvt
- IcmpCapacityChecks.lvt
- IcmpEchoResponderTest.lvt
- IcmpStorageBackendTest.lvt
- InternetChecksumTest.lvt
- Ipv4HeaderBuilderTest.lvt
- Ipv4HeaderChecksumTest.lvt
- Ipv4PacketFieldsTest.lvt
- Ipv4PacketParserTest.lvt
- MiiFrame10Test.lvt
- MiiFrameTest.lvt
- PacketConvenienceTest.lvt
- PacketDataTest.lvt
- PacketMetadataStub.lvt
- PacketMetadataTest.lvt
- PacketParserFailureTest.lvt
- PacketStorageParityTest.lvt
- RamIpv4PacketParserTest.lvt
- ReceiveContractChecks.lvt
- ScheduledWordSumTest.lvt
- SynAckCompositionChecks.lvt
- TcpChecksumTest.lvt
- TcpConnectionRecognizerTest.lvt
- TcpHeaderParserTest.lvt
- TcpMultiSessionArrayStorageTest.lvt
- TcpMultiSessionAutoStorageTest.lvt
- TcpMultiSessionDistributedStorageTest.lvt
- TcpMultiSessionMixedStorageTest.lvt
- TcpMultiSessionStorageChecks.lvt
- TcpMultiSessionTest.lvt
- TcpRamPacketTest.lvt
- TcpRetryTimerTest.lvt
- TcpSegmentBuilderTest.lvt
- TcpSegmentTest.lvt
- TcpStreamServerArrayStorageTest.lvt
- TcpStreamServerAutoStorageTest.lvt
- TcpStreamServerDistributedStorageTest.lvt
- TcpStreamServerMixedStorageTest.lvt
- TcpStreamServerStorageChecks.lvt
- TcpStreamServerTest.lvt
- TelnetSessionTest.lvt
- TransmitContractChecks.lvt
- UdpPacketTest.lvt
tests/TcpSegmentBuilderTest.lvt
namespace Livt.Net.Tests
using Livt.Net
/**
* Checks explicit TCP metadata; endpoint swapping belongs to the caller.
*/
@Test
component TcpSegmentBuilderTest
{
/**
* Compares emitted header fields with explicit expected octets; no timing property is asserted.
*/
@Test
fn WritesExplicitSourceAndDestinationPorts()
{
var request: byte[128]
var clientPort: byte[2]
clientPort[0] = 0xC0
clientPort[1] = 0x01
var localPort: byte[2]
localPort[0] = 0x00
localPort[1] = 0x50
var tcpSequence: byte[4]
tcpSequence[0] = 0x11
tcpSequence[1] = 0x22
tcpSequence[2] = 0x33
tcpSequence[3] = 0x44
var acknowledgment: byte[4]
acknowledgment[0] = 0xAA
acknowledgment[1] = 0xBB
acknowledgment[2] = 0xCC
acknowledgment[3] = 0xDD
var window: byte[2]
window[0] = 0x04
window[1] = 0x00
var checksum: byte[2]
checksum[0] = 0xBE
checksum[1] = 0xEF
request[34] = clientPort[0]
request[35] = clientPort[1]
request[36] = localPort[0]
request[37] = localPort[1]
var sourcePort: byte[2] = [request[36], request[37]]
var destinationPort: byte[2] = [request[34], request[35]]
assert TcpSegmentBuilder.GetByte(0, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x00
assert TcpSegmentBuilder.GetByte(1, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x50
assert TcpSegmentBuilder.GetByte(2, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0xC0
assert TcpSegmentBuilder.GetByte(3, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x01
}
/**
* Compares emitted header fields with explicit expected octets; no timing property is asserted.
*/
@Test
fn WritesSequenceAndAcknowledgmentNumbers()
{
var request: byte[128]
var tcpSequence: byte[4]
tcpSequence[0] = 0x11
tcpSequence[1] = 0x22
tcpSequence[2] = 0x33
tcpSequence[3] = 0x44
var acknowledgment: byte[4]
acknowledgment[0] = 0xAA
acknowledgment[1] = 0xBB
acknowledgment[2] = 0xCC
acknowledgment[3] = 0xDD
var window: byte[2]
window[0] = 0x04
window[1] = 0x00
var checksum: byte[2]
checksum[0] = 0xBE
checksum[1] = 0xEF
var sourcePort: byte[2] = [request[36], request[37]]
var destinationPort: byte[2] = [request[34], request[35]]
assert TcpSegmentBuilder.GetByte(4, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x11
assert TcpSegmentBuilder.GetByte(5, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x22
assert TcpSegmentBuilder.GetByte(6, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x33
assert TcpSegmentBuilder.GetByte(7, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x44
assert TcpSegmentBuilder.GetByte(8, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0xAA
assert TcpSegmentBuilder.GetByte(11, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0xDD
}
/**
* Compares emitted header fields with explicit expected octets; no timing property is asserted.
*/
@Test
fn WritesFixedHeaderControlFields()
{
var request: byte[128]
var tcpSequence: byte[4]
tcpSequence[0] = 0x11
tcpSequence[1] = 0x22
tcpSequence[2] = 0x33
tcpSequence[3] = 0x44
var acknowledgment: byte[4]
acknowledgment[0] = 0xAA
acknowledgment[1] = 0xBB
acknowledgment[2] = 0xCC
acknowledgment[3] = 0xDD
var window: byte[2]
window[0] = 0x04
window[1] = 0x00
var checksum: byte[2]
checksum[0] = 0xBE
checksum[1] = 0xEF
var sourcePort: byte[2] = [request[36], request[37]]
var destinationPort: byte[2] = [request[34], request[35]]
assert TcpSegmentBuilder.GetByte(12, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x50
assert TcpSegmentBuilder.GetByte(13, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x12
assert TcpSegmentBuilder.GetByte(14, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x04
assert TcpSegmentBuilder.GetByte(15, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x00
assert TcpSegmentBuilder.GetByte(16, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0xBE
assert TcpSegmentBuilder.GetByte(17, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0xEF
assert TcpSegmentBuilder.GetByte(18, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x00
assert TcpSegmentBuilder.GetByte(19, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x00
assert TcpSegmentBuilder.GetByte(20, sourcePort, destinationPort, tcpSequence, acknowledgment, 0x12, window, checksum) == 0x00
}
}