Increase seq when sending fins
This commit is contained in:
@@ -94,7 +94,7 @@ def ip_to_hex(ip: str) -> int:
|
|||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
# @cocotb.test()
|
@cocotb.test()
|
||||||
async def test_irl(dut):
|
async def test_irl(dut):
|
||||||
tb = TB(dut)
|
tb = TB(dut)
|
||||||
|
|
||||||
@@ -270,11 +270,19 @@ async def test_irl(dut):
|
|||||||
|
|
||||||
await tb.mii_phy.rx.send(GmiiFrame.from_payload(tcp_fin.build()))
|
await tb.mii_phy.rx.send(GmiiFrame.from_payload(tcp_fin.build()))
|
||||||
|
|
||||||
|
tb.log.info("Expecting to get ACK from DUT")
|
||||||
|
|
||||||
ip_packet = await read_tcp_from_dut()
|
ip_packet = await read_tcp_from_dut()
|
||||||
|
|
||||||
t.send(ip_packet)
|
t.send(ip_packet)
|
||||||
|
|
||||||
tb.log.info("Expecting to send last ACK here")
|
tb.log.info("Expecting to get FINACK from DUT")
|
||||||
|
|
||||||
|
ip_packet = await read_tcp_from_dut()
|
||||||
|
|
||||||
|
t.send(ip_packet)
|
||||||
|
|
||||||
|
tb.log.info("Expecting to get ACK from host")
|
||||||
|
|
||||||
while True:
|
while True:
|
||||||
pkt = t.recv()
|
pkt = t.recv()
|
||||||
@@ -455,4 +463,4 @@ async def test_close(dut):
|
|||||||
tb.log.info("Sending packet to host")
|
tb.log.info("Sending packet to host")
|
||||||
t.send(ip_packet)
|
t.send(ip_packet)
|
||||||
|
|
||||||
await Timer(Decimal(CLK_PERIOD_NS * 10000), units='ns')
|
await Timer(Decimal(CLK_PERIOD_NS * 20000), units='ns')
|
||||||
@@ -54,6 +54,7 @@ always_comb begin
|
|||||||
if (i_flags == 8'h11) begin
|
if (i_flags == 8'h11) begin
|
||||||
rx_msg_next = RX_MSG_RECV_FIN;
|
rx_msg_next = RX_MSG_RECV_FIN;
|
||||||
rx_msg_valid_next = '1;
|
rx_msg_valid_next = '1;
|
||||||
|
ack_num_next = i_seq_number + 1;
|
||||||
end
|
end
|
||||||
|
|
||||||
if (i_flags == 8'h10) begin
|
if (i_flags == 8'h10) begin
|
||||||
|
|||||||
@@ -126,7 +126,9 @@ always_comb begin
|
|||||||
WAIT_CLOSE: begin
|
WAIT_CLOSE: begin
|
||||||
o_tx_ctrl = TX_CTRL_SEND_FIN;
|
o_tx_ctrl = TX_CTRL_SEND_FIN;
|
||||||
o_tx_ctrl_valid = '1;
|
o_tx_ctrl_valid = '1;
|
||||||
tcp_state_next = LAST_ACK;
|
if (i_tx_ctrl_ack) begin // we should be doing this other places too...
|
||||||
|
tcp_state_next = LAST_ACK;
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
LAST_ACK: begin
|
LAST_ACK: begin
|
||||||
|
|||||||
@@ -130,7 +130,7 @@ always_comb begin
|
|||||||
|
|
||||||
if (i_packet_done) begin
|
if (i_packet_done) begin
|
||||||
state_next = IDLE;
|
state_next = IDLE;
|
||||||
seq_num_next = seq_num + s_axis_len;
|
seq_num_next = seq_num + 1;
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
endcase
|
endcase
|
||||||
|
|||||||
Reference in New Issue
Block a user