MCPcopy Create free account
hub / github.com/prometheus/procfs / parseConntrackStatEntry

Function parseConntrackStatEntry

net_conntrackstat.go:86–118  ·  view source on GitHub ↗

Parses a ConntrackStatEntry from given array of fields.

(fields []string)

Source from the content-addressed store, hash-verified

84
85// Parses a ConntrackStatEntry from given array of fields.
86func parseConntrackStatEntry(fields []string) (*ConntrackStatEntry, error) {
87 entries, err := parsers.ParseHexUint64s(fields)
88 if err != nil {
89 return nil, fmt.Errorf("%w: Cannot parse entry: %d: %w", ErrFileParse, entries, err)
90 }
91 numEntries := len(entries)
92 if numEntries < 16 || numEntries > 17 {
93 return nil,
94 fmt.Errorf("%w: invalid conntrackstat entry, invalid number of fields: %d", ErrFileParse, numEntries)
95 }
96
97 stats := &ConntrackStatEntry{
98 Entries: *entries[0],
99 Searched: *entries[1],
100 Found: *entries[2],
101 New: *entries[3],
102 Invalid: *entries[4],
103 Ignore: *entries[5],
104 Delete: *entries[6],
105 DeleteList: *entries[7],
106 Insert: *entries[8],
107 InsertFailed: *entries[9],
108 Drop: *entries[10],
109 EarlyDrop: *entries[11],
110 }
111
112 // Ignore missing search_restart on Linux < 2.6.35.
113 if numEntries == 17 {
114 stats.SearchRestart = *entries[16]
115 }
116
117 return stats, nil
118}

Callers 1

parseConntrackStatFunction · 0.85

Calls 1

ParseHexUint64sFunction · 0.92

Tested by

no test coverage detected