MCPcopy Create free account
hub / github.com/Edgio/vflow / sfHeaderDecode

Method sfHeaderDecode

sflow/decoder.go:137–182  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

135}
136
137func (d *SFDecoder) sfHeaderDecode() (*SFDatagram, error) {
138 var (
139 datagram = &SFDatagram{}
140 ipLen = 4
141 err error
142 )
143
144 if err = read(d.reader, &datagram.Version); err != nil {
145 return nil, err
146 }
147
148 if datagram.Version != 5 {
149 return nil, errSFVersionNotSupport
150 }
151
152 if err = read(d.reader, &datagram.IPVersion); err != nil {
153 return nil, err
154 }
155
156 // read the agent ip address
157 if datagram.IPVersion == 2 {
158 ipLen = 16
159 }
160 buff := make([]byte, ipLen)
161 if _, err = d.reader.Read(buff); err != nil {
162 return nil, err
163 }
164 datagram.IPAddress = buff
165
166 if err = read(d.reader, &datagram.AgentSubID); err != nil {
167 return nil, err
168 }
169 if err = read(d.reader, &datagram.SequenceNo); err != nil {
170 return nil, err
171 }
172 if err = read(d.reader, &datagram.SysUpTime); err != nil {
173 return nil, err
174 }
175 if err = read(d.reader, &datagram.SamplesNo); err != nil {
176 return nil, err
177 }
178
179 datagram.ColTime = time.Now().Unix()
180
181 return datagram, nil
182}
183
184func (d *SFDecoder) getSampleInfo() (uint32, uint32, error) {
185 var (

Callers 2

SFDecodeMethod · 0.95
TestSFHeaderDecodeFunction · 0.95

Calls 2

readFunction · 0.85
ReadMethod · 0.80

Tested by 1

TestSFHeaderDecodeFunction · 0.76