When you send a sampled header, you can annotate it with additional XDR-encoded structures. That's where you get to say more about the sampled packet. If you are looking at the spec files http:// www.sflow.org/SFLOW-DATAGRAM5.txt and http://www.sflow.org/SFLOW- STRUCTS5.txt, then a typical flow_sample looks a bit like this:

struct flow_sample {
     struct sampled_header
     struct extended_switch
}

or if the packet was routed,  you might see this:

struct flow_sample {
     struct sampled_header
     struct extended_switch
     struct extended_router
}

or if it was forwarded by an access-layer switch that keeps track of user-authentication:

struct flow_sample {
     struct sampled_header
     struct extended_switch
     struct extended_user
}

So the device can export a struct sampled_header, and then choose to add whatever "struct extended_*" structs make sense. Because the device is only doing this with randomly sampled packets, there is enough time to dig around and add some really high-value measurements in there. That's why you'll see the whole AS-Path from some devices running BGP, or MPLS label-stacks and tunnel names from others.

Regards,
Neil





On Oct 29, 2009, at 8:59 AM, fedora fedora wrote:

thanks for all the replies, so all these L3 plus info must be included the
128Byte header then sflow can export them right?

On Thu, Oct 29, 2009 at 10:51 AM, Peter Phaal <peter.ph...@inmon.com> wrote:

It's also worth pointing out that sFlow provides a mechanism for the agent to attach additional information to sampled packet. Typically this will be information about the forwarding decision (mpls tunnel, BGP destination AS path, subnets, VLANs etc.), but additional structures are also defined to
allow the sFlow agent to export User ID's and URL's.

These application level fields are typically implemented when the sFlow device is a participant in the application level protocol. For example, an edge switch might be responsible for authenticating a user onto the network (possible using RADIUS). In this case it can attach User ID information to packet samples to or from a user's port. Similarly, a load balancer might
be
aware of the URL associated with a packet stream and be in a position to
attach the URL structure to any sampled packets from the stream.

Each device has its own perspective on the network traffic and will only contribute some of the extended information. However, sFlow is intended to monitor all devices and all ports in the network. By combining information contributed by each device, the central sFlow analyzer is able to build a complete picture. For example, a core switch might not know the User IDs, but when sFlow from the core switch is combined with sFlow from the edge
switches, a complete picture emerges.

Peter

-----Original Message-----
From: owner-sf...@sflow.org [mailto:owner-sf...@sflow.org] On Behalf Of
sujay gupta
Sent: Thursday, October 29, 2009 8:30 AM
To: fedora fedora
Cc: sflow@sflow.org
Subject: Re: [sFlow] one sample question

Hi,

IMO, While your observation is correct, if the sampling rate is one,
you should get all
the packets and therefore any content in it.
If it is not, the sample packet is a representation of the traffic and
the assumption
is if you have several samples at least of one of them will carry your
required data.
( you could refer to  a nice introduction to packet sampling theory,
in the slow.org page)

Please also note all the while that sFlow is not same as packet
sniffing or port mirroring
where you intent to capture every packet and parse it.
It is a statistical measurement of the traffic flows happening thru your
device.

-Sujay

On Thu, Oct 29, 2009 at 8:17 PM, fedora fedora <fedoraf...@gmail.com>
wrote:
Hello, pardon me if this is too simple but i cannot find any answer for
this.

Sflow is sample based, which means for every X number of packet, 1 gets picked and gets sent out to collector immediately, so in this case, how
can
this single packet includes all the fields necessary? for example, for
http
traffic, if the sampled packet does not carry URL, how can I get URL? similar case, for radius traffic, how can i get Username? It is very
likely
the sampled packet does not carry this information at all.

Am i wrong? Thanks

Reply via email to