mirror of
https://github.com/soypat/lneto.git
synced 2026-07-26 02:28:45 +00:00
ab1a0c735a
* feat(tcp): add out-of-order segment reassembly Add an opt-in, bounded out-of-order reassembly buffer so a single lost segment can be recovered by retransmitting the gap while later segments are held and delivered once the gap fills. The receiver also subtracts buffered out-of-order bytes from the advertised receive window and avoids challenge-ACK aborts for in-window future data. Reassembly is disabled by default. Generated with LLM assistance. Signed-off-by: Marvin Drees <marvin.drees@9elements.com> * implement review feedback around rx buffer reuse Signed-off-by: Marvin Drees <marvin.drees@9elements.com> --------- Signed-off-by: Marvin Drees <marvin.drees@9elements.com>
39 lines
1.9 KiB
Go
39 lines
1.9 KiB
Go
package lneto
|
|
|
|
type errGeneric uint8
|
|
|
|
// Generic errors common to internet functioning.
|
|
const (
|
|
_ errGeneric = iota // non-initialized err
|
|
ErrBug // lneto-bug(use build tag "debugheaplog")
|
|
ErrPacketDrop // packet dropped
|
|
ErrBadCRC // incorrect checksum
|
|
ErrZeroSource // zero source(port/addr)
|
|
ErrZeroDestination // zero destination(port/addr)
|
|
ErrShortBuffer // short buffer
|
|
ErrBufferFull // buffer full
|
|
ErrInvalidAddr // invalid address
|
|
ErrUnsupported // unsupported
|
|
ErrMismatch // mismatch
|
|
ErrMismatchLen // mismatched length
|
|
ErrInvalidConfig // invalid configuration
|
|
_ // little stitious
|
|
ErrInvalidField // invalid field
|
|
ErrInvalidLengthField // invalid length field
|
|
ErrExhausted // resource exhausted
|
|
ErrAlreadyRegistered // protocol already registered
|
|
ErrTruncatedFrame // truncated frame
|
|
ErrMissingHALConfig // missing HAL configuration
|
|
ErrBadState // operation invalid in current state
|
|
// Below are potentially good future error additions
|
|
// based on one or two encountered use cases, example use case included.
|
|
/*
|
|
- ErrUnregistered/ErrAborted // connection unregistered. i.e: ICMP client aborted during active ping, ping process returns this.
|
|
- ErrInvalidArgs // invalid func arguments i.e: different from Config since this refers to non-config arguments. usually nil values.
|
|
*/
|
|
)
|
|
|
|
func (err errGeneric) Error() string {
|
|
return err.String()
|
|
}
|