|
@@ -33,139 +33,140 @@ type ProcNetstat struct {
|
|
}
|
|
}
|
|
|
|
|
|
type TcpExt struct { // nolint:revive
|
|
type TcpExt struct { // nolint:revive
|
|
- SyncookiesSent float64
|
|
|
|
- SyncookiesRecv float64
|
|
|
|
- SyncookiesFailed float64
|
|
|
|
- EmbryonicRsts float64
|
|
|
|
- PruneCalled float64
|
|
|
|
- RcvPruned float64
|
|
|
|
- OfoPruned float64
|
|
|
|
- OutOfWindowIcmps float64
|
|
|
|
- LockDroppedIcmps float64
|
|
|
|
- ArpFilter float64
|
|
|
|
- TW float64
|
|
|
|
- TWRecycled float64
|
|
|
|
- TWKilled float64
|
|
|
|
- PAWSActive float64
|
|
|
|
- PAWSEstab float64
|
|
|
|
- DelayedACKs float64
|
|
|
|
- DelayedACKLocked float64
|
|
|
|
- DelayedACKLost float64
|
|
|
|
- ListenOverflows float64
|
|
|
|
- ListenDrops float64
|
|
|
|
- TCPHPHits float64
|
|
|
|
- TCPPureAcks float64
|
|
|
|
- TCPHPAcks float64
|
|
|
|
- TCPRenoRecovery float64
|
|
|
|
- TCPSackRecovery float64
|
|
|
|
- TCPSACKReneging float64
|
|
|
|
- TCPSACKReorder float64
|
|
|
|
- TCPRenoReorder float64
|
|
|
|
- TCPTSReorder float64
|
|
|
|
- TCPFullUndo float64
|
|
|
|
- TCPPartialUndo float64
|
|
|
|
- TCPDSACKUndo float64
|
|
|
|
- TCPLossUndo float64
|
|
|
|
- TCPLostRetransmit float64
|
|
|
|
- TCPRenoFailures float64
|
|
|
|
- TCPSackFailures float64
|
|
|
|
- TCPLossFailures float64
|
|
|
|
- TCPFastRetrans float64
|
|
|
|
- TCPSlowStartRetrans float64
|
|
|
|
- TCPTimeouts float64
|
|
|
|
- TCPLossProbes float64
|
|
|
|
- TCPLossProbeRecovery float64
|
|
|
|
- TCPRenoRecoveryFail float64
|
|
|
|
- TCPSackRecoveryFail float64
|
|
|
|
- TCPRcvCollapsed float64
|
|
|
|
- TCPDSACKOldSent float64
|
|
|
|
- TCPDSACKOfoSent float64
|
|
|
|
- TCPDSACKRecv float64
|
|
|
|
- TCPDSACKOfoRecv float64
|
|
|
|
- TCPAbortOnData float64
|
|
|
|
- TCPAbortOnClose float64
|
|
|
|
- TCPAbortOnMemory float64
|
|
|
|
- TCPAbortOnTimeout float64
|
|
|
|
- TCPAbortOnLinger float64
|
|
|
|
- TCPAbortFailed float64
|
|
|
|
- TCPMemoryPressures float64
|
|
|
|
- TCPMemoryPressuresChrono float64
|
|
|
|
- TCPSACKDiscard float64
|
|
|
|
- TCPDSACKIgnoredOld float64
|
|
|
|
- TCPDSACKIgnoredNoUndo float64
|
|
|
|
- TCPSpuriousRTOs float64
|
|
|
|
- TCPMD5NotFound float64
|
|
|
|
- TCPMD5Unexpected float64
|
|
|
|
- TCPMD5Failure float64
|
|
|
|
- TCPSackShifted float64
|
|
|
|
- TCPSackMerged float64
|
|
|
|
- TCPSackShiftFallback float64
|
|
|
|
- TCPBacklogDrop float64
|
|
|
|
- PFMemallocDrop float64
|
|
|
|
- TCPMinTTLDrop float64
|
|
|
|
- TCPDeferAcceptDrop float64
|
|
|
|
- IPReversePathFilter float64
|
|
|
|
- TCPTimeWaitOverflow float64
|
|
|
|
- TCPReqQFullDoCookies float64
|
|
|
|
- TCPReqQFullDrop float64
|
|
|
|
- TCPRetransFail float64
|
|
|
|
- TCPRcvCoalesce float64
|
|
|
|
- TCPOFOQueue float64
|
|
|
|
- TCPOFODrop float64
|
|
|
|
- TCPOFOMerge float64
|
|
|
|
- TCPChallengeACK float64
|
|
|
|
- TCPSYNChallenge float64
|
|
|
|
- TCPFastOpenActive float64
|
|
|
|
- TCPFastOpenActiveFail float64
|
|
|
|
- TCPFastOpenPassive float64
|
|
|
|
- TCPFastOpenPassiveFail float64
|
|
|
|
- TCPFastOpenListenOverflow float64
|
|
|
|
- TCPFastOpenCookieReqd float64
|
|
|
|
- TCPFastOpenBlackhole float64
|
|
|
|
- TCPSpuriousRtxHostQueues float64
|
|
|
|
- BusyPollRxPackets float64
|
|
|
|
- TCPAutoCorking float64
|
|
|
|
- TCPFromZeroWindowAdv float64
|
|
|
|
- TCPToZeroWindowAdv float64
|
|
|
|
- TCPWantZeroWindowAdv float64
|
|
|
|
- TCPSynRetrans float64
|
|
|
|
- TCPOrigDataSent float64
|
|
|
|
- TCPHystartTrainDetect float64
|
|
|
|
- TCPHystartTrainCwnd float64
|
|
|
|
- TCPHystartDelayDetect float64
|
|
|
|
- TCPHystartDelayCwnd float64
|
|
|
|
- TCPACKSkippedSynRecv float64
|
|
|
|
- TCPACKSkippedPAWS float64
|
|
|
|
- TCPACKSkippedSeq float64
|
|
|
|
- TCPACKSkippedFinWait2 float64
|
|
|
|
- TCPACKSkippedTimeWait float64
|
|
|
|
- TCPACKSkippedChallenge float64
|
|
|
|
- TCPWinProbe float64
|
|
|
|
- TCPKeepAlive float64
|
|
|
|
- TCPMTUPFail float64
|
|
|
|
- TCPMTUPSuccess float64
|
|
|
|
- TCPWqueueTooBig float64
|
|
|
|
|
|
+ SyncookiesSent *float64
|
|
|
|
+ SyncookiesRecv *float64
|
|
|
|
+ SyncookiesFailed *float64
|
|
|
|
+ EmbryonicRsts *float64
|
|
|
|
+ PruneCalled *float64
|
|
|
|
+ RcvPruned *float64
|
|
|
|
+ OfoPruned *float64
|
|
|
|
+ OutOfWindowIcmps *float64
|
|
|
|
+ LockDroppedIcmps *float64
|
|
|
|
+ ArpFilter *float64
|
|
|
|
+ TW *float64
|
|
|
|
+ TWRecycled *float64
|
|
|
|
+ TWKilled *float64
|
|
|
|
+ PAWSActive *float64
|
|
|
|
+ PAWSEstab *float64
|
|
|
|
+ DelayedACKs *float64
|
|
|
|
+ DelayedACKLocked *float64
|
|
|
|
+ DelayedACKLost *float64
|
|
|
|
+ ListenOverflows *float64
|
|
|
|
+ ListenDrops *float64
|
|
|
|
+ TCPHPHits *float64
|
|
|
|
+ TCPPureAcks *float64
|
|
|
|
+ TCPHPAcks *float64
|
|
|
|
+ TCPRenoRecovery *float64
|
|
|
|
+ TCPSackRecovery *float64
|
|
|
|
+ TCPSACKReneging *float64
|
|
|
|
+ TCPSACKReorder *float64
|
|
|
|
+ TCPRenoReorder *float64
|
|
|
|
+ TCPTSReorder *float64
|
|
|
|
+ TCPFullUndo *float64
|
|
|
|
+ TCPPartialUndo *float64
|
|
|
|
+ TCPDSACKUndo *float64
|
|
|
|
+ TCPLossUndo *float64
|
|
|
|
+ TCPLostRetransmit *float64
|
|
|
|
+ TCPRenoFailures *float64
|
|
|
|
+ TCPSackFailures *float64
|
|
|
|
+ TCPLossFailures *float64
|
|
|
|
+ TCPFastRetrans *float64
|
|
|
|
+ TCPSlowStartRetrans *float64
|
|
|
|
+ TCPTimeouts *float64
|
|
|
|
+ TCPLossProbes *float64
|
|
|
|
+ TCPLossProbeRecovery *float64
|
|
|
|
+ TCPRenoRecoveryFail *float64
|
|
|
|
+ TCPSackRecoveryFail *float64
|
|
|
|
+ TCPRcvCollapsed *float64
|
|
|
|
+ TCPDSACKOldSent *float64
|
|
|
|
+ TCPDSACKOfoSent *float64
|
|
|
|
+ TCPDSACKRecv *float64
|
|
|
|
+ TCPDSACKOfoRecv *float64
|
|
|
|
+ TCPAbortOnData *float64
|
|
|
|
+ TCPAbortOnClose *float64
|
|
|
|
+ TCPAbortOnMemory *float64
|
|
|
|
+ TCPAbortOnTimeout *float64
|
|
|
|
+ TCPAbortOnLinger *float64
|
|
|
|
+ TCPAbortFailed *float64
|
|
|
|
+ TCPMemoryPressures *float64
|
|
|
|
+ TCPMemoryPressuresChrono *float64
|
|
|
|
+ TCPSACKDiscard *float64
|
|
|
|
+ TCPDSACKIgnoredOld *float64
|
|
|
|
+ TCPDSACKIgnoredNoUndo *float64
|
|
|
|
+ TCPSpuriousRTOs *float64
|
|
|
|
+ TCPMD5NotFound *float64
|
|
|
|
+ TCPMD5Unexpected *float64
|
|
|
|
+ TCPMD5Failure *float64
|
|
|
|
+ TCPSackShifted *float64
|
|
|
|
+ TCPSackMerged *float64
|
|
|
|
+ TCPSackShiftFallback *float64
|
|
|
|
+ TCPBacklogDrop *float64
|
|
|
|
+ PFMemallocDrop *float64
|
|
|
|
+ TCPMinTTLDrop *float64
|
|
|
|
+ TCPDeferAcceptDrop *float64
|
|
|
|
+ IPReversePathFilter *float64
|
|
|
|
+ TCPTimeWaitOverflow *float64
|
|
|
|
+ TCPReqQFullDoCookies *float64
|
|
|
|
+ TCPReqQFullDrop *float64
|
|
|
|
+ TCPRetransFail *float64
|
|
|
|
+ TCPRcvCoalesce *float64
|
|
|
|
+ TCPRcvQDrop *float64
|
|
|
|
+ TCPOFOQueue *float64
|
|
|
|
+ TCPOFODrop *float64
|
|
|
|
+ TCPOFOMerge *float64
|
|
|
|
+ TCPChallengeACK *float64
|
|
|
|
+ TCPSYNChallenge *float64
|
|
|
|
+ TCPFastOpenActive *float64
|
|
|
|
+ TCPFastOpenActiveFail *float64
|
|
|
|
+ TCPFastOpenPassive *float64
|
|
|
|
+ TCPFastOpenPassiveFail *float64
|
|
|
|
+ TCPFastOpenListenOverflow *float64
|
|
|
|
+ TCPFastOpenCookieReqd *float64
|
|
|
|
+ TCPFastOpenBlackhole *float64
|
|
|
|
+ TCPSpuriousRtxHostQueues *float64
|
|
|
|
+ BusyPollRxPackets *float64
|
|
|
|
+ TCPAutoCorking *float64
|
|
|
|
+ TCPFromZeroWindowAdv *float64
|
|
|
|
+ TCPToZeroWindowAdv *float64
|
|
|
|
+ TCPWantZeroWindowAdv *float64
|
|
|
|
+ TCPSynRetrans *float64
|
|
|
|
+ TCPOrigDataSent *float64
|
|
|
|
+ TCPHystartTrainDetect *float64
|
|
|
|
+ TCPHystartTrainCwnd *float64
|
|
|
|
+ TCPHystartDelayDetect *float64
|
|
|
|
+ TCPHystartDelayCwnd *float64
|
|
|
|
+ TCPACKSkippedSynRecv *float64
|
|
|
|
+ TCPACKSkippedPAWS *float64
|
|
|
|
+ TCPACKSkippedSeq *float64
|
|
|
|
+ TCPACKSkippedFinWait2 *float64
|
|
|
|
+ TCPACKSkippedTimeWait *float64
|
|
|
|
+ TCPACKSkippedChallenge *float64
|
|
|
|
+ TCPWinProbe *float64
|
|
|
|
+ TCPKeepAlive *float64
|
|
|
|
+ TCPMTUPFail *float64
|
|
|
|
+ TCPMTUPSuccess *float64
|
|
|
|
+ TCPWqueueTooBig *float64
|
|
}
|
|
}
|
|
|
|
|
|
type IpExt struct { // nolint:revive
|
|
type IpExt struct { // nolint:revive
|
|
- InNoRoutes float64
|
|
|
|
- InTruncatedPkts float64
|
|
|
|
- InMcastPkts float64
|
|
|
|
- OutMcastPkts float64
|
|
|
|
- InBcastPkts float64
|
|
|
|
- OutBcastPkts float64
|
|
|
|
- InOctets float64
|
|
|
|
- OutOctets float64
|
|
|
|
- InMcastOctets float64
|
|
|
|
- OutMcastOctets float64
|
|
|
|
- InBcastOctets float64
|
|
|
|
- OutBcastOctets float64
|
|
|
|
- InCsumErrors float64
|
|
|
|
- InNoECTPkts float64
|
|
|
|
- InECT1Pkts float64
|
|
|
|
- InECT0Pkts float64
|
|
|
|
- InCEPkts float64
|
|
|
|
- ReasmOverlaps float64
|
|
|
|
|
|
+ InNoRoutes *float64
|
|
|
|
+ InTruncatedPkts *float64
|
|
|
|
+ InMcastPkts *float64
|
|
|
|
+ OutMcastPkts *float64
|
|
|
|
+ InBcastPkts *float64
|
|
|
|
+ OutBcastPkts *float64
|
|
|
|
+ InOctets *float64
|
|
|
|
+ OutOctets *float64
|
|
|
|
+ InMcastOctets *float64
|
|
|
|
+ OutMcastOctets *float64
|
|
|
|
+ InBcastOctets *float64
|
|
|
|
+ OutBcastOctets *float64
|
|
|
|
+ InCsumErrors *float64
|
|
|
|
+ InNoECTPkts *float64
|
|
|
|
+ InECT1Pkts *float64
|
|
|
|
+ InECT0Pkts *float64
|
|
|
|
+ InCEPkts *float64
|
|
|
|
+ ReasmOverlaps *float64
|
|
}
|
|
}
|
|
|
|
|
|
func (p Proc) Netstat() (ProcNetstat, error) {
|
|
func (p Proc) Netstat() (ProcNetstat, error) {
|
|
@@ -174,14 +175,14 @@ func (p Proc) Netstat() (ProcNetstat, error) {
|
|
if err != nil {
|
|
if err != nil {
|
|
return ProcNetstat{PID: p.PID}, err
|
|
return ProcNetstat{PID: p.PID}, err
|
|
}
|
|
}
|
|
- procNetstat, err := parseNetstat(bytes.NewReader(data), filename)
|
|
|
|
|
|
+ procNetstat, err := parseProcNetstat(bytes.NewReader(data), filename)
|
|
procNetstat.PID = p.PID
|
|
procNetstat.PID = p.PID
|
|
return procNetstat, err
|
|
return procNetstat, err
|
|
}
|
|
}
|
|
|
|
|
|
-// parseNetstat parses the metrics from proc/<pid>/net/netstat file
|
|
|
|
|
|
+// parseProcNetstat parses the metrics from proc/<pid>/net/netstat file
|
|
// and returns a ProcNetstat structure.
|
|
// and returns a ProcNetstat structure.
|
|
-func parseNetstat(r io.Reader, fileName string) (ProcNetstat, error) {
|
|
|
|
|
|
+func parseProcNetstat(r io.Reader, fileName string) (ProcNetstat, error) {
|
|
var (
|
|
var (
|
|
scanner = bufio.NewScanner(r)
|
|
scanner = bufio.NewScanner(r)
|
|
procNetstat = ProcNetstat{}
|
|
procNetstat = ProcNetstat{}
|
|
@@ -208,230 +209,232 @@ func parseNetstat(r io.Reader, fileName string) (ProcNetstat, error) {
|
|
case "TcpExt":
|
|
case "TcpExt":
|
|
switch key {
|
|
switch key {
|
|
case "SyncookiesSent":
|
|
case "SyncookiesSent":
|
|
- procNetstat.TcpExt.SyncookiesSent = value
|
|
|
|
|
|
+ procNetstat.TcpExt.SyncookiesSent = &value
|
|
case "SyncookiesRecv":
|
|
case "SyncookiesRecv":
|
|
- procNetstat.TcpExt.SyncookiesRecv = value
|
|
|
|
|
|
+ procNetstat.TcpExt.SyncookiesRecv = &value
|
|
case "SyncookiesFailed":
|
|
case "SyncookiesFailed":
|
|
- procNetstat.TcpExt.SyncookiesFailed = value
|
|
|
|
|
|
+ procNetstat.TcpExt.SyncookiesFailed = &value
|
|
case "EmbryonicRsts":
|
|
case "EmbryonicRsts":
|
|
- procNetstat.TcpExt.EmbryonicRsts = value
|
|
|
|
|
|
+ procNetstat.TcpExt.EmbryonicRsts = &value
|
|
case "PruneCalled":
|
|
case "PruneCalled":
|
|
- procNetstat.TcpExt.PruneCalled = value
|
|
|
|
|
|
+ procNetstat.TcpExt.PruneCalled = &value
|
|
case "RcvPruned":
|
|
case "RcvPruned":
|
|
- procNetstat.TcpExt.RcvPruned = value
|
|
|
|
|
|
+ procNetstat.TcpExt.RcvPruned = &value
|
|
case "OfoPruned":
|
|
case "OfoPruned":
|
|
- procNetstat.TcpExt.OfoPruned = value
|
|
|
|
|
|
+ procNetstat.TcpExt.OfoPruned = &value
|
|
case "OutOfWindowIcmps":
|
|
case "OutOfWindowIcmps":
|
|
- procNetstat.TcpExt.OutOfWindowIcmps = value
|
|
|
|
|
|
+ procNetstat.TcpExt.OutOfWindowIcmps = &value
|
|
case "LockDroppedIcmps":
|
|
case "LockDroppedIcmps":
|
|
- procNetstat.TcpExt.LockDroppedIcmps = value
|
|
|
|
|
|
+ procNetstat.TcpExt.LockDroppedIcmps = &value
|
|
case "ArpFilter":
|
|
case "ArpFilter":
|
|
- procNetstat.TcpExt.ArpFilter = value
|
|
|
|
|
|
+ procNetstat.TcpExt.ArpFilter = &value
|
|
case "TW":
|
|
case "TW":
|
|
- procNetstat.TcpExt.TW = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TW = &value
|
|
case "TWRecycled":
|
|
case "TWRecycled":
|
|
- procNetstat.TcpExt.TWRecycled = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TWRecycled = &value
|
|
case "TWKilled":
|
|
case "TWKilled":
|
|
- procNetstat.TcpExt.TWKilled = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TWKilled = &value
|
|
case "PAWSActive":
|
|
case "PAWSActive":
|
|
- procNetstat.TcpExt.PAWSActive = value
|
|
|
|
|
|
+ procNetstat.TcpExt.PAWSActive = &value
|
|
case "PAWSEstab":
|
|
case "PAWSEstab":
|
|
- procNetstat.TcpExt.PAWSEstab = value
|
|
|
|
|
|
+ procNetstat.TcpExt.PAWSEstab = &value
|
|
case "DelayedACKs":
|
|
case "DelayedACKs":
|
|
- procNetstat.TcpExt.DelayedACKs = value
|
|
|
|
|
|
+ procNetstat.TcpExt.DelayedACKs = &value
|
|
case "DelayedACKLocked":
|
|
case "DelayedACKLocked":
|
|
- procNetstat.TcpExt.DelayedACKLocked = value
|
|
|
|
|
|
+ procNetstat.TcpExt.DelayedACKLocked = &value
|
|
case "DelayedACKLost":
|
|
case "DelayedACKLost":
|
|
- procNetstat.TcpExt.DelayedACKLost = value
|
|
|
|
|
|
+ procNetstat.TcpExt.DelayedACKLost = &value
|
|
case "ListenOverflows":
|
|
case "ListenOverflows":
|
|
- procNetstat.TcpExt.ListenOverflows = value
|
|
|
|
|
|
+ procNetstat.TcpExt.ListenOverflows = &value
|
|
case "ListenDrops":
|
|
case "ListenDrops":
|
|
- procNetstat.TcpExt.ListenDrops = value
|
|
|
|
|
|
+ procNetstat.TcpExt.ListenDrops = &value
|
|
case "TCPHPHits":
|
|
case "TCPHPHits":
|
|
- procNetstat.TcpExt.TCPHPHits = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPHPHits = &value
|
|
case "TCPPureAcks":
|
|
case "TCPPureAcks":
|
|
- procNetstat.TcpExt.TCPPureAcks = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPPureAcks = &value
|
|
case "TCPHPAcks":
|
|
case "TCPHPAcks":
|
|
- procNetstat.TcpExt.TCPHPAcks = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPHPAcks = &value
|
|
case "TCPRenoRecovery":
|
|
case "TCPRenoRecovery":
|
|
- procNetstat.TcpExt.TCPRenoRecovery = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPRenoRecovery = &value
|
|
case "TCPSackRecovery":
|
|
case "TCPSackRecovery":
|
|
- procNetstat.TcpExt.TCPSackRecovery = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSackRecovery = &value
|
|
case "TCPSACKReneging":
|
|
case "TCPSACKReneging":
|
|
- procNetstat.TcpExt.TCPSACKReneging = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSACKReneging = &value
|
|
case "TCPSACKReorder":
|
|
case "TCPSACKReorder":
|
|
- procNetstat.TcpExt.TCPSACKReorder = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSACKReorder = &value
|
|
case "TCPRenoReorder":
|
|
case "TCPRenoReorder":
|
|
- procNetstat.TcpExt.TCPRenoReorder = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPRenoReorder = &value
|
|
case "TCPTSReorder":
|
|
case "TCPTSReorder":
|
|
- procNetstat.TcpExt.TCPTSReorder = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPTSReorder = &value
|
|
case "TCPFullUndo":
|
|
case "TCPFullUndo":
|
|
- procNetstat.TcpExt.TCPFullUndo = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFullUndo = &value
|
|
case "TCPPartialUndo":
|
|
case "TCPPartialUndo":
|
|
- procNetstat.TcpExt.TCPPartialUndo = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPPartialUndo = &value
|
|
case "TCPDSACKUndo":
|
|
case "TCPDSACKUndo":
|
|
- procNetstat.TcpExt.TCPDSACKUndo = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPDSACKUndo = &value
|
|
case "TCPLossUndo":
|
|
case "TCPLossUndo":
|
|
- procNetstat.TcpExt.TCPLossUndo = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPLossUndo = &value
|
|
case "TCPLostRetransmit":
|
|
case "TCPLostRetransmit":
|
|
- procNetstat.TcpExt.TCPLostRetransmit = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPLostRetransmit = &value
|
|
case "TCPRenoFailures":
|
|
case "TCPRenoFailures":
|
|
- procNetstat.TcpExt.TCPRenoFailures = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPRenoFailures = &value
|
|
case "TCPSackFailures":
|
|
case "TCPSackFailures":
|
|
- procNetstat.TcpExt.TCPSackFailures = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSackFailures = &value
|
|
case "TCPLossFailures":
|
|
case "TCPLossFailures":
|
|
- procNetstat.TcpExt.TCPLossFailures = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPLossFailures = &value
|
|
case "TCPFastRetrans":
|
|
case "TCPFastRetrans":
|
|
- procNetstat.TcpExt.TCPFastRetrans = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastRetrans = &value
|
|
case "TCPSlowStartRetrans":
|
|
case "TCPSlowStartRetrans":
|
|
- procNetstat.TcpExt.TCPSlowStartRetrans = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSlowStartRetrans = &value
|
|
case "TCPTimeouts":
|
|
case "TCPTimeouts":
|
|
- procNetstat.TcpExt.TCPTimeouts = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPTimeouts = &value
|
|
case "TCPLossProbes":
|
|
case "TCPLossProbes":
|
|
- procNetstat.TcpExt.TCPLossProbes = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPLossProbes = &value
|
|
case "TCPLossProbeRecovery":
|
|
case "TCPLossProbeRecovery":
|
|
- procNetstat.TcpExt.TCPLossProbeRecovery = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPLossProbeRecovery = &value
|
|
case "TCPRenoRecoveryFail":
|
|
case "TCPRenoRecoveryFail":
|
|
- procNetstat.TcpExt.TCPRenoRecoveryFail = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPRenoRecoveryFail = &value
|
|
case "TCPSackRecoveryFail":
|
|
case "TCPSackRecoveryFail":
|
|
- procNetstat.TcpExt.TCPSackRecoveryFail = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSackRecoveryFail = &value
|
|
case "TCPRcvCollapsed":
|
|
case "TCPRcvCollapsed":
|
|
- procNetstat.TcpExt.TCPRcvCollapsed = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPRcvCollapsed = &value
|
|
case "TCPDSACKOldSent":
|
|
case "TCPDSACKOldSent":
|
|
- procNetstat.TcpExt.TCPDSACKOldSent = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPDSACKOldSent = &value
|
|
case "TCPDSACKOfoSent":
|
|
case "TCPDSACKOfoSent":
|
|
- procNetstat.TcpExt.TCPDSACKOfoSent = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPDSACKOfoSent = &value
|
|
case "TCPDSACKRecv":
|
|
case "TCPDSACKRecv":
|
|
- procNetstat.TcpExt.TCPDSACKRecv = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPDSACKRecv = &value
|
|
case "TCPDSACKOfoRecv":
|
|
case "TCPDSACKOfoRecv":
|
|
- procNetstat.TcpExt.TCPDSACKOfoRecv = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPDSACKOfoRecv = &value
|
|
case "TCPAbortOnData":
|
|
case "TCPAbortOnData":
|
|
- procNetstat.TcpExt.TCPAbortOnData = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPAbortOnData = &value
|
|
case "TCPAbortOnClose":
|
|
case "TCPAbortOnClose":
|
|
- procNetstat.TcpExt.TCPAbortOnClose = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPAbortOnClose = &value
|
|
case "TCPDeferAcceptDrop":
|
|
case "TCPDeferAcceptDrop":
|
|
- procNetstat.TcpExt.TCPDeferAcceptDrop = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPDeferAcceptDrop = &value
|
|
case "IPReversePathFilter":
|
|
case "IPReversePathFilter":
|
|
- procNetstat.TcpExt.IPReversePathFilter = value
|
|
|
|
|
|
+ procNetstat.TcpExt.IPReversePathFilter = &value
|
|
case "TCPTimeWaitOverflow":
|
|
case "TCPTimeWaitOverflow":
|
|
- procNetstat.TcpExt.TCPTimeWaitOverflow = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPTimeWaitOverflow = &value
|
|
case "TCPReqQFullDoCookies":
|
|
case "TCPReqQFullDoCookies":
|
|
- procNetstat.TcpExt.TCPReqQFullDoCookies = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPReqQFullDoCookies = &value
|
|
case "TCPReqQFullDrop":
|
|
case "TCPReqQFullDrop":
|
|
- procNetstat.TcpExt.TCPReqQFullDrop = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPReqQFullDrop = &value
|
|
case "TCPRetransFail":
|
|
case "TCPRetransFail":
|
|
- procNetstat.TcpExt.TCPRetransFail = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPRetransFail = &value
|
|
case "TCPRcvCoalesce":
|
|
case "TCPRcvCoalesce":
|
|
- procNetstat.TcpExt.TCPRcvCoalesce = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPRcvCoalesce = &value
|
|
|
|
+ case "TCPRcvQDrop":
|
|
|
|
+ procNetstat.TcpExt.TCPRcvQDrop = &value
|
|
case "TCPOFOQueue":
|
|
case "TCPOFOQueue":
|
|
- procNetstat.TcpExt.TCPOFOQueue = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPOFOQueue = &value
|
|
case "TCPOFODrop":
|
|
case "TCPOFODrop":
|
|
- procNetstat.TcpExt.TCPOFODrop = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPOFODrop = &value
|
|
case "TCPOFOMerge":
|
|
case "TCPOFOMerge":
|
|
- procNetstat.TcpExt.TCPOFOMerge = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPOFOMerge = &value
|
|
case "TCPChallengeACK":
|
|
case "TCPChallengeACK":
|
|
- procNetstat.TcpExt.TCPChallengeACK = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPChallengeACK = &value
|
|
case "TCPSYNChallenge":
|
|
case "TCPSYNChallenge":
|
|
- procNetstat.TcpExt.TCPSYNChallenge = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSYNChallenge = &value
|
|
case "TCPFastOpenActive":
|
|
case "TCPFastOpenActive":
|
|
- procNetstat.TcpExt.TCPFastOpenActive = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastOpenActive = &value
|
|
case "TCPFastOpenActiveFail":
|
|
case "TCPFastOpenActiveFail":
|
|
- procNetstat.TcpExt.TCPFastOpenActiveFail = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastOpenActiveFail = &value
|
|
case "TCPFastOpenPassive":
|
|
case "TCPFastOpenPassive":
|
|
- procNetstat.TcpExt.TCPFastOpenPassive = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastOpenPassive = &value
|
|
case "TCPFastOpenPassiveFail":
|
|
case "TCPFastOpenPassiveFail":
|
|
- procNetstat.TcpExt.TCPFastOpenPassiveFail = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastOpenPassiveFail = &value
|
|
case "TCPFastOpenListenOverflow":
|
|
case "TCPFastOpenListenOverflow":
|
|
- procNetstat.TcpExt.TCPFastOpenListenOverflow = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastOpenListenOverflow = &value
|
|
case "TCPFastOpenCookieReqd":
|
|
case "TCPFastOpenCookieReqd":
|
|
- procNetstat.TcpExt.TCPFastOpenCookieReqd = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastOpenCookieReqd = &value
|
|
case "TCPFastOpenBlackhole":
|
|
case "TCPFastOpenBlackhole":
|
|
- procNetstat.TcpExt.TCPFastOpenBlackhole = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFastOpenBlackhole = &value
|
|
case "TCPSpuriousRtxHostQueues":
|
|
case "TCPSpuriousRtxHostQueues":
|
|
- procNetstat.TcpExt.TCPSpuriousRtxHostQueues = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSpuriousRtxHostQueues = &value
|
|
case "BusyPollRxPackets":
|
|
case "BusyPollRxPackets":
|
|
- procNetstat.TcpExt.BusyPollRxPackets = value
|
|
|
|
|
|
+ procNetstat.TcpExt.BusyPollRxPackets = &value
|
|
case "TCPAutoCorking":
|
|
case "TCPAutoCorking":
|
|
- procNetstat.TcpExt.TCPAutoCorking = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPAutoCorking = &value
|
|
case "TCPFromZeroWindowAdv":
|
|
case "TCPFromZeroWindowAdv":
|
|
- procNetstat.TcpExt.TCPFromZeroWindowAdv = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPFromZeroWindowAdv = &value
|
|
case "TCPToZeroWindowAdv":
|
|
case "TCPToZeroWindowAdv":
|
|
- procNetstat.TcpExt.TCPToZeroWindowAdv = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPToZeroWindowAdv = &value
|
|
case "TCPWantZeroWindowAdv":
|
|
case "TCPWantZeroWindowAdv":
|
|
- procNetstat.TcpExt.TCPWantZeroWindowAdv = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPWantZeroWindowAdv = &value
|
|
case "TCPSynRetrans":
|
|
case "TCPSynRetrans":
|
|
- procNetstat.TcpExt.TCPSynRetrans = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPSynRetrans = &value
|
|
case "TCPOrigDataSent":
|
|
case "TCPOrigDataSent":
|
|
- procNetstat.TcpExt.TCPOrigDataSent = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPOrigDataSent = &value
|
|
case "TCPHystartTrainDetect":
|
|
case "TCPHystartTrainDetect":
|
|
- procNetstat.TcpExt.TCPHystartTrainDetect = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPHystartTrainDetect = &value
|
|
case "TCPHystartTrainCwnd":
|
|
case "TCPHystartTrainCwnd":
|
|
- procNetstat.TcpExt.TCPHystartTrainCwnd = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPHystartTrainCwnd = &value
|
|
case "TCPHystartDelayDetect":
|
|
case "TCPHystartDelayDetect":
|
|
- procNetstat.TcpExt.TCPHystartDelayDetect = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPHystartDelayDetect = &value
|
|
case "TCPHystartDelayCwnd":
|
|
case "TCPHystartDelayCwnd":
|
|
- procNetstat.TcpExt.TCPHystartDelayCwnd = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPHystartDelayCwnd = &value
|
|
case "TCPACKSkippedSynRecv":
|
|
case "TCPACKSkippedSynRecv":
|
|
- procNetstat.TcpExt.TCPACKSkippedSynRecv = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPACKSkippedSynRecv = &value
|
|
case "TCPACKSkippedPAWS":
|
|
case "TCPACKSkippedPAWS":
|
|
- procNetstat.TcpExt.TCPACKSkippedPAWS = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPACKSkippedPAWS = &value
|
|
case "TCPACKSkippedSeq":
|
|
case "TCPACKSkippedSeq":
|
|
- procNetstat.TcpExt.TCPACKSkippedSeq = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPACKSkippedSeq = &value
|
|
case "TCPACKSkippedFinWait2":
|
|
case "TCPACKSkippedFinWait2":
|
|
- procNetstat.TcpExt.TCPACKSkippedFinWait2 = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPACKSkippedFinWait2 = &value
|
|
case "TCPACKSkippedTimeWait":
|
|
case "TCPACKSkippedTimeWait":
|
|
- procNetstat.TcpExt.TCPACKSkippedTimeWait = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPACKSkippedTimeWait = &value
|
|
case "TCPACKSkippedChallenge":
|
|
case "TCPACKSkippedChallenge":
|
|
- procNetstat.TcpExt.TCPACKSkippedChallenge = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPACKSkippedChallenge = &value
|
|
case "TCPWinProbe":
|
|
case "TCPWinProbe":
|
|
- procNetstat.TcpExt.TCPWinProbe = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPWinProbe = &value
|
|
case "TCPKeepAlive":
|
|
case "TCPKeepAlive":
|
|
- procNetstat.TcpExt.TCPKeepAlive = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPKeepAlive = &value
|
|
case "TCPMTUPFail":
|
|
case "TCPMTUPFail":
|
|
- procNetstat.TcpExt.TCPMTUPFail = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPMTUPFail = &value
|
|
case "TCPMTUPSuccess":
|
|
case "TCPMTUPSuccess":
|
|
- procNetstat.TcpExt.TCPMTUPSuccess = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPMTUPSuccess = &value
|
|
case "TCPWqueueTooBig":
|
|
case "TCPWqueueTooBig":
|
|
- procNetstat.TcpExt.TCPWqueueTooBig = value
|
|
|
|
|
|
+ procNetstat.TcpExt.TCPWqueueTooBig = &value
|
|
}
|
|
}
|
|
case "IpExt":
|
|
case "IpExt":
|
|
switch key {
|
|
switch key {
|
|
case "InNoRoutes":
|
|
case "InNoRoutes":
|
|
- procNetstat.IpExt.InNoRoutes = value
|
|
|
|
|
|
+ procNetstat.IpExt.InNoRoutes = &value
|
|
case "InTruncatedPkts":
|
|
case "InTruncatedPkts":
|
|
- procNetstat.IpExt.InTruncatedPkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.InTruncatedPkts = &value
|
|
case "InMcastPkts":
|
|
case "InMcastPkts":
|
|
- procNetstat.IpExt.InMcastPkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.InMcastPkts = &value
|
|
case "OutMcastPkts":
|
|
case "OutMcastPkts":
|
|
- procNetstat.IpExt.OutMcastPkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.OutMcastPkts = &value
|
|
case "InBcastPkts":
|
|
case "InBcastPkts":
|
|
- procNetstat.IpExt.InBcastPkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.InBcastPkts = &value
|
|
case "OutBcastPkts":
|
|
case "OutBcastPkts":
|
|
- procNetstat.IpExt.OutBcastPkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.OutBcastPkts = &value
|
|
case "InOctets":
|
|
case "InOctets":
|
|
- procNetstat.IpExt.InOctets = value
|
|
|
|
|
|
+ procNetstat.IpExt.InOctets = &value
|
|
case "OutOctets":
|
|
case "OutOctets":
|
|
- procNetstat.IpExt.OutOctets = value
|
|
|
|
|
|
+ procNetstat.IpExt.OutOctets = &value
|
|
case "InMcastOctets":
|
|
case "InMcastOctets":
|
|
- procNetstat.IpExt.InMcastOctets = value
|
|
|
|
|
|
+ procNetstat.IpExt.InMcastOctets = &value
|
|
case "OutMcastOctets":
|
|
case "OutMcastOctets":
|
|
- procNetstat.IpExt.OutMcastOctets = value
|
|
|
|
|
|
+ procNetstat.IpExt.OutMcastOctets = &value
|
|
case "InBcastOctets":
|
|
case "InBcastOctets":
|
|
- procNetstat.IpExt.InBcastOctets = value
|
|
|
|
|
|
+ procNetstat.IpExt.InBcastOctets = &value
|
|
case "OutBcastOctets":
|
|
case "OutBcastOctets":
|
|
- procNetstat.IpExt.OutBcastOctets = value
|
|
|
|
|
|
+ procNetstat.IpExt.OutBcastOctets = &value
|
|
case "InCsumErrors":
|
|
case "InCsumErrors":
|
|
- procNetstat.IpExt.InCsumErrors = value
|
|
|
|
|
|
+ procNetstat.IpExt.InCsumErrors = &value
|
|
case "InNoECTPkts":
|
|
case "InNoECTPkts":
|
|
- procNetstat.IpExt.InNoECTPkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.InNoECTPkts = &value
|
|
case "InECT1Pkts":
|
|
case "InECT1Pkts":
|
|
- procNetstat.IpExt.InECT1Pkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.InECT1Pkts = &value
|
|
case "InECT0Pkts":
|
|
case "InECT0Pkts":
|
|
- procNetstat.IpExt.InECT0Pkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.InECT0Pkts = &value
|
|
case "InCEPkts":
|
|
case "InCEPkts":
|
|
- procNetstat.IpExt.InCEPkts = value
|
|
|
|
|
|
+ procNetstat.IpExt.InCEPkts = &value
|
|
case "ReasmOverlaps":
|
|
case "ReasmOverlaps":
|
|
- procNetstat.IpExt.ReasmOverlaps = value
|
|
|
|
|
|
+ procNetstat.IpExt.ReasmOverlaps = &value
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|