mirror of
https://github.com/vishvananda/netlink.git
synced 2025-10-04 15:32:44 +08:00
Allow building on non-linux machine
This commit is contained in:

committed by
Alessandro Boch

parent
a67bebfcc8
commit
77e4d032a0
@@ -1,3 +1,5 @@
|
|||||||
|
// +build linux
|
||||||
|
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
66
tcp.go
66
tcp.go
@@ -16,3 +16,69 @@ const (
|
|||||||
TCP_NEW_SYN_REC
|
TCP_NEW_SYN_REC
|
||||||
TCP_MAX_STATES
|
TCP_MAX_STATES
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type TCPInfo struct {
|
||||||
|
State uint8
|
||||||
|
Ca_state uint8
|
||||||
|
Retransmits uint8
|
||||||
|
Probes uint8
|
||||||
|
Backoff uint8
|
||||||
|
Options uint8
|
||||||
|
Snd_wscale uint8 // no uint4
|
||||||
|
Rcv_wscale uint8
|
||||||
|
Delivery_rate_app_limited uint8
|
||||||
|
Fastopen_client_fail uint8
|
||||||
|
Rto uint32
|
||||||
|
Ato uint32
|
||||||
|
Snd_mss uint32
|
||||||
|
Rcv_mss uint32
|
||||||
|
Unacked uint32
|
||||||
|
Sacked uint32
|
||||||
|
Lost uint32
|
||||||
|
Retrans uint32
|
||||||
|
Fackets uint32
|
||||||
|
Last_data_sent uint32
|
||||||
|
Last_ack_sent uint32
|
||||||
|
Last_data_recv uint32
|
||||||
|
Last_ack_recv uint32
|
||||||
|
Pmtu uint32
|
||||||
|
Rcv_ssthresh uint32
|
||||||
|
Rtt uint32
|
||||||
|
Rttvar uint32
|
||||||
|
Snd_ssthresh uint32
|
||||||
|
Snd_cwnd uint32
|
||||||
|
Advmss uint32
|
||||||
|
Reordering uint32
|
||||||
|
Rcv_rtt uint32
|
||||||
|
Rcv_space uint32
|
||||||
|
Total_retrans uint32
|
||||||
|
Pacing_rate uint64
|
||||||
|
Max_pacing_rate uint64
|
||||||
|
Bytes_acked uint64 /* RFC4898 tcpEStatsAppHCThruOctetsAcked */
|
||||||
|
Bytes_received uint64 /* RFC4898 tcpEStatsAppHCThruOctetsReceived */
|
||||||
|
Segs_out uint32 /* RFC4898 tcpEStatsPerfSegsOut */
|
||||||
|
Segs_in uint32 /* RFC4898 tcpEStatsPerfSegsIn */
|
||||||
|
Notsent_bytes uint32
|
||||||
|
Min_rtt uint32
|
||||||
|
Data_segs_in uint32 /* RFC4898 tcpEStatsDataSegsIn */
|
||||||
|
Data_segs_out uint32 /* RFC4898 tcpEStatsDataSegsOut */
|
||||||
|
Delivery_rate uint64
|
||||||
|
Busy_time uint64 /* Time (usec) busy sending data */
|
||||||
|
Rwnd_limited uint64 /* Time (usec) limited by receive window */
|
||||||
|
Sndbuf_limited uint64 /* Time (usec) limited by send buffer */
|
||||||
|
Delivered uint32
|
||||||
|
Delivered_ce uint32
|
||||||
|
Bytes_sent uint64 /* RFC4898 tcpEStatsPerfHCDataOctetsOut */
|
||||||
|
Bytes_retrans uint64 /* RFC4898 tcpEStatsPerfOctetsRetrans */
|
||||||
|
Dsack_dups uint32 /* RFC4898 tcpEStatsStackDSACKDups */
|
||||||
|
Reord_seen uint32 /* reordering events seen */
|
||||||
|
Rcv_ooopack uint32 /* Out-of-order packets received */
|
||||||
|
Snd_wnd uint32 /* peer's advertised receive window after * scaling (bytes) */
|
||||||
|
}
|
||||||
|
|
||||||
|
type TCPBBRInfo struct {
|
||||||
|
BBRBW uint64
|
||||||
|
BBRMinRTT uint32
|
||||||
|
BBRPacingGain uint32
|
||||||
|
BBRCwndGain uint32
|
||||||
|
}
|
||||||
|
66
tcp_linux.go
66
tcp_linux.go
@@ -10,65 +10,6 @@ const (
|
|||||||
tcpBBRInfoLen = 20
|
tcpBBRInfoLen = 20
|
||||||
)
|
)
|
||||||
|
|
||||||
type TCPInfo struct {
|
|
||||||
State uint8
|
|
||||||
Ca_state uint8
|
|
||||||
Retransmits uint8
|
|
||||||
Probes uint8
|
|
||||||
Backoff uint8
|
|
||||||
Options uint8
|
|
||||||
Snd_wscale uint8 // no uint4
|
|
||||||
Rcv_wscale uint8
|
|
||||||
Delivery_rate_app_limited uint8
|
|
||||||
Fastopen_client_fail uint8
|
|
||||||
Rto uint32
|
|
||||||
Ato uint32
|
|
||||||
Snd_mss uint32
|
|
||||||
Rcv_mss uint32
|
|
||||||
Unacked uint32
|
|
||||||
Sacked uint32
|
|
||||||
Lost uint32
|
|
||||||
Retrans uint32
|
|
||||||
Fackets uint32
|
|
||||||
Last_data_sent uint32
|
|
||||||
Last_ack_sent uint32
|
|
||||||
Last_data_recv uint32
|
|
||||||
Last_ack_recv uint32
|
|
||||||
Pmtu uint32
|
|
||||||
Rcv_ssthresh uint32
|
|
||||||
Rtt uint32
|
|
||||||
Rttvar uint32
|
|
||||||
Snd_ssthresh uint32
|
|
||||||
Snd_cwnd uint32
|
|
||||||
Advmss uint32
|
|
||||||
Reordering uint32
|
|
||||||
Rcv_rtt uint32
|
|
||||||
Rcv_space uint32
|
|
||||||
Total_retrans uint32
|
|
||||||
Pacing_rate uint64
|
|
||||||
Max_pacing_rate uint64
|
|
||||||
Bytes_acked uint64 /* RFC4898 tcpEStatsAppHCThruOctetsAcked */
|
|
||||||
Bytes_received uint64 /* RFC4898 tcpEStatsAppHCThruOctetsReceived */
|
|
||||||
Segs_out uint32 /* RFC4898 tcpEStatsPerfSegsOut */
|
|
||||||
Segs_in uint32 /* RFC4898 tcpEStatsPerfSegsIn */
|
|
||||||
Notsent_bytes uint32
|
|
||||||
Min_rtt uint32
|
|
||||||
Data_segs_in uint32 /* RFC4898 tcpEStatsDataSegsIn */
|
|
||||||
Data_segs_out uint32 /* RFC4898 tcpEStatsDataSegsOut */
|
|
||||||
Delivery_rate uint64
|
|
||||||
Busy_time uint64 /* Time (usec) busy sending data */
|
|
||||||
Rwnd_limited uint64 /* Time (usec) limited by receive window */
|
|
||||||
Sndbuf_limited uint64 /* Time (usec) limited by send buffer */
|
|
||||||
Delivered uint32
|
|
||||||
Delivered_ce uint32
|
|
||||||
Bytes_sent uint64 /* RFC4898 tcpEStatsPerfHCDataOctetsOut */
|
|
||||||
Bytes_retrans uint64 /* RFC4898 tcpEStatsPerfOctetsRetrans */
|
|
||||||
Dsack_dups uint32 /* RFC4898 tcpEStatsStackDSACKDups */
|
|
||||||
Reord_seen uint32 /* reordering events seen */
|
|
||||||
Rcv_ooopack uint32 /* Out-of-order packets received */
|
|
||||||
Snd_wnd uint32 /* peer's advertised receive window after * scaling (bytes) */
|
|
||||||
}
|
|
||||||
|
|
||||||
func checkDeserErr(err error) error {
|
func checkDeserErr(err error) error {
|
||||||
if err == io.EOF {
|
if err == io.EOF {
|
||||||
return nil
|
return nil
|
||||||
@@ -397,13 +338,6 @@ func (t *TCPInfo) deserialize(b []byte) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
type TCPBBRInfo struct {
|
|
||||||
BBRBW uint64
|
|
||||||
BBRMinRTT uint32
|
|
||||||
BBRPacingGain uint32
|
|
||||||
BBRCwndGain uint32
|
|
||||||
}
|
|
||||||
|
|
||||||
func (t *TCPBBRInfo) deserialize(b []byte) error {
|
func (t *TCPBBRInfo) deserialize(b []byte) error {
|
||||||
if len(b) != tcpBBRInfoLen {
|
if len(b) != tcpBBRInfoLen {
|
||||||
return errors.New("Invalid length")
|
return errors.New("Invalid length")
|
||||||
|
Reference in New Issue
Block a user