sFlow - Making the Network Visible

Developer Information

Licensing Objectives

Specifications

sFlow Developer Tools

Search sFlow.org
sFlow Errata

This document provides a list of errata that apply to published sFlow specification documents.


sFlow Version 5, page 28, Input/output port Examples, says:

 0x40000001  packet discarded because of ACL.

It should say:

 0x40000102  packet discarded because of ACL.

sFlow Version 5, page 37, Extended Switch Data, says:

struct extended_switch {
   unsigned int src_vlan;     /* The 802.1Q VLAN id of incoming frame */
   unsigned int src_priority; /* The 802.1p priority of incoming frame */
   unsigned int dst_vlan;     /* The 802.1Q VLAN id of outgoing frame */
   unsigned int dst_priority; /* The 802.1p priority of outgoing frame */
}

It should say:

struct extended_switch {
   unsigned int src_vlan;     /* The 802.1Q VLAN id of incoming frame,
                                 0xffffffff if unknown */
   unsigned int src_priority; /* The 802.1p priority of incoming frame,
                                 0xffffffff if unknown */
   unsigned int dst_vlan;     /* The 802.1Q VLAN id of outgoing frame,
                                 0xffffffff if unknown */
   unsigned int dst_priority; /* The 802.1p priority of outgoing frame,
                                 0xffffffff if unknown */
}

sFlow Version 5, page 29, flow_sample says:

struct flow_sample {
   unsigned int sequence_number;  /* Incremented with each flow sample
                                     generated by this source_id.

It should say:

struct flow_sample {
   unsigned int sequence_number;  /* Incremented with each flow sample
                                     generated by this sFlow Instance.

sFlow Version 5, page 30, counters_sample says:

struct counters_sample {
   unsigned int sequence_number;   /* Incremented with each counter sample
                                      generated by this source_id

It should say:

struct counters_sample {
   unsigned int sequence_number;   /* Incremented with each counter sample
                                      generated by this sFlow Instance.

sFlow Version 5, page 31, flow_sample_expanded says:

struct flow_sample_expanded {
   unsigned int sequence_number;  /* Incremented with each flow sample
                                     generated by this source_id.

It should say:

struct flow_sample_expanded {
   unsigned int sequence_number;  /* Incremented with each flow sample
                                     generated by this sFlow Instance.

sFlow Version 5, page 32, counters_sample_expanded says:

struct counters_sample_expanded {
   unsigned int sequence_number;   /* Incremented with each counter sample
                                      generated by this source_id

It should say:

struct counters_sample_expanded {
   unsigned int sequence_number;   /* Incremented with each counter sample
                                      generated by this sFlow Instance.

sFlow Version 5, page 7, Counter Sampling says:

(see sFlowCounterSamplingInterval in SFLOW MIB).

It should say:

(see sFlowCpInterval in SFLOW MIB).

sFlow Version 5, page 22, sFlowCpInterval says:

The agent is permitted to have minimum and maximum allowable
values for the counter polling interval. A minimum interval
lets the agent designer set an upper bound on the overhead
associated with polling, and a maximum interval may be the
result of implementation restrictions (such as counter size).
In addition not all values between the maximum and minimum may
be realizable as the sampling interval (again because of
implementation considerations).

When the sampling rate is set the agent is free to adjust the
value so that it lies between the maximum and minimum values
and has the closest achievable value.

When read, the agent must return the actual sampling interval
it will be using (after the adjustments previously described).
The sampling algorithm must converge so that over time the
number of packets sampled approaches 1/Nth of the total number
of packets in the monitored flows."

It should say:

The agent is permitted to have minimum and maximum allowable
values for the counter polling interval. A minimum interval
lets the agent designer set an upper bound on the overhead
associated with polling, and a maximum interval may be the
result of implementation restrictions (such as counter size).
In addition not all values between the maximum and minimum may
be realizable as the polling interval (again because of
implementation considerations).

When read, the agent must return the actual polling interval
it will be using (after the adjustments previously described)."

sFlow Version 5, page 38, extended_router says:

struct extended_router {
   next_hop nexthop;            /* IP address of next hop router */

It should say:

struct extended_router {
   next_hop nexthop;            /* IP address of immediate next hop router */

sFlow Host Structures, page 8, host_descr says:

opaque uuid<16>;   /* 16 bytes binary UUID, empty if unknown */

It should say:

opaque uuid[16];  /* 16 byte binary UUID, all zeros if unknown */

sFlow Host Structures, page 12, virt_disk_io says:

unsigned hyper available;  /* remaining free bytes */

It should say:

unsigned hyper physical; /* physical size in bytes of the container of the backing image */

sFlow Host Structures, page 11, comment says:

/* Virtual Domain CPU statistics */
/* See libvirt, struct virtDomainInfo */

It should say:

/* Virtual Domain CPU statistics */
/* See libvirt, struct virDomainInfo */

sFlow Host Structures, page 11, comment says:

/* Virtual Domain Memory statistics */
/* See libvirt, struct virtDomainInfo */

It should say:

/* Virtual Domain Memory statistics */
/* See libvirt, struct virDomainInfo */

sFlow Host Structures, page 11, comment says:

/* Virtual Domain Disk statistics */
/* See libvirt, struct virtDomainBlockInfo */
/* See libvirt, struct virtDomainBlockStatsStruct */

It should say:

/* Virtual Domain Disk statistics */
/* See libvirt, struct virDomainBlockInfo */
/* See libvirt, struct virDomainBlockStatsStruct */

sFlow Host Structures, page 12, comment says:

/* Virtual Domain Network statistics */
/* See libvirt, struct virtDomainInterfaceStatsStruct */

It should say:

/* Virtual Domain Network statistics */
/* See libvirt, struct virDomainInterfaceStatsStruct */