Compare commits

..
Author SHA1 Message Date
Leency 5139f994c4 kernel/network: fix ARP remove on devices other than 0
Check kernel codestyle / Check kernel codestyle (pull_request) Successful in 21s
Test PR / Build (ru_RU) (pull_request) Successful in 1m55s
Test PR / Build (es_ES) (pull_request) Successful in 2m0s
Test PR / Build (en_US) (pull_request) Successful in 2m4s
arp_api .remove forgot the per-device table offset, so it deleted
from device 0's table and shifted device 1's entries into it.
2026-09-30 08:42:55 +03:00
4 changed files with 10 additions and 17 deletions

No files matched your search

+4 -2
View File
@@ -688,10 +688,12 @@ arp_api:
; ecx = # entry
cmp ecx, [ARP_entries + eax]
jae .error
imul ecx, sizeof.ARP_entry
lea esi, [ARP_table + ecx]
mov edi, eax
shr edi, 2
mov esi, edi
imul esi, sizeof.ARP_entry*ARP_TABLE_SIZE
imul ecx, sizeof.ARP_entry
lea esi, [ARP_table + esi + ecx]
call arp_del_entry
ret
+1 -1
View File
@@ -72,7 +72,7 @@ TCP_time_rtt_default = 5 ; default Round Trip Time (3,2s)
TCP_time_srtt_default = 0 ;
TCP_time_max_idle = 8*TCP_time_keep_interval ; FIXME
TCP_time_connect = 1000 ; in 1/100s (default=10s)
TCP_time_connect = 300 ; in 1/100s (default=3s)
; timer constants
TCP_max_rxtshift = 12 ; max retransmissions waiting for ACK
+1 -2
View File
@@ -399,7 +399,6 @@ endl
bswap eax
mov [ebx + TCP_SOCKET.ts_val], eax
lodsd ; timestamp echo reply
bswap eax
mov [ebx + TCP_SOCKET.ts_ecr], eax
or [temp_bits], TCP_BIT_TIMESTAMP
@@ -979,7 +978,7 @@ endl
inc [ebx + TCP_SOCKET.t_dupacks]
cmp [ebx + TCP_SOCKET.t_dupacks], TCP_re_xmit_thresh
jb .ack_processed
jb .dup_ack_complete
ja .another_lost
DEBUGF DEBUG_NETWORK_VERBOSE, "TCP_input: Re-transmitting lost segment\n"
+4 -12
View File
@@ -391,14 +391,8 @@ endl
jz .no_timestamp
.timestamp:
push ebx
mov ebx, [eax + TCP_SOCKET.ts_recent]
bswap ebx
xchg ebx, [esp] ; TSecr
push ebx
mov ebx, [timer_ticks]
bswap ebx
xchg ebx, [esp] ; TSval
pushd 0
pushd [timer_ticks]
pushd TCP_OPT_NOP + TCP_OPT_NOP shl 8 + TCP_OPT_TIMESTAMP shl 16 + 10 shl 24
add di, 12
@@ -419,12 +413,10 @@ endl
; check if we don't exceed the max segment size
add esi, edi ; total TCP segment size
mov ebx, [eax + TCP_SOCKET.t_maxseg]
add ebx, sizeof.TCP_header ; MSS does not count the header
cmp esi, ebx
cmp esi, [eax + TCP_SOCKET.t_maxseg]
jbe .no_overflow
mov esi, ebx
mov esi, [eax + TCP_SOCKET.t_maxseg]
or [temp_bits], TCP_BIT_SENDALOT
.no_overflow: