There are some common pitfalls to avoid even in the low-level sampling, so feel free to ping me if you have any doubts.

(For example, if you are queueing the samples for processing later then make sure you use a low priority queue: separate from the queue you use for critical events like spanning tree updates. Include a snapshot of the relevant "samplePool" counter with each sample if you can, and bear in mind that you need to know what happened to that sampled packet in order to fill in all the fields (e.g. output port/ vlan, or dropped by ACL). That may affect where you choose to sample. The only configuration options that make sense are ingress-sampling on all ports, egress-sampling on all ports, or bidirectional-sampling on some or all ports.)

Neil Mckee
www.inmon.com


On Sep 4, 2009, at 6:28 PM, Justin Pettit <jpet...@nicira.com> wrote:

Terrific! Thank you very much. This will make it much easier to add sFlow to the project. When we have an implementation working, we'll definitely take you up on your offer to help us test it.

By the way, I've already updated the bullet point on our project page to say "sFlow(R)" to keep up our end of the license. ;-)

Thanks again!

--Justin


On Sep 4, 2009, at 4:02 PM, Neil McKee wrote:

Justin,

Please accept this email as written confirmation that you may use and adapt the source code for the InMon Virtual Probe (http://inmon.com/products/virtual-probe/index.php ) for the implementation of an sFlow agent in the "Open vSwitch" project (http://openvswitch.org/) under the terms of the sFlow License (http://www.sflow.org/developers/licensing.php).

Neil McKee
Director
InMon Corp.


On Aug 28, 2009, at 10:38 PM, Neil Mckee wrote:

The sFlow SNMP MIB, while very useful, is optional. It can be ignored for now.

The only counter-block you really need is the "generic" one, which exports the basic MIB-II ifTable counters as a single snapshot. I can see that this might be awkward because these counters must be updated with every packet, in the fast-path. Still, you'll probably be expected to provide them eventually one way or another.

The simplest sampling implementation is usually to have just one packet-sampler for the whole switch, and the critical path there is just to decrement the countdown to the next sample, so that part is not going to slow you down at all. I guess it's just a question of figuring out the best way to queue the samples for processing in user-space.

There are patents involved, yes, but the main sFlow license should not be an obstacle (http://www.sflow.org/developers/licensing.php ). The license you were looking at was specific to the virtual probe implementation. I'll check what we need to do to, but it looks like it's probably enough for me to say in writing that you are welcome to use that code as long as you conform to the main sFlow license. You'll probably rewrite the code anyway :). Our main goal in putting it out there was just to say "wow, look how easy this is".

regards,
Neil


On Aug 28, 2009, at 6:23 PM, Justin Pettit wrote:

Hi, Neil. Thanks for the information! We'd like to add native support, but there are a few things that would need to be done:

- sFlow uses SNMP to communicate between the collector and agents, and we do not yet have support for SNMP.

- For packet sampling, we'd need to make some modifications to the protocol used to communicate with the datapath (in addition to changes in the kernel and userspace).

- For counter sampling, we'd need to keep track of a lot more information than we currently do.

Luckily, none of these technical issues are hard. Our biggest concern has been related to licensing and patents, since this is an open source project. Does InMon claim any patents or licensing restrictions over projects that implement RFC 3176?

The Virtual Switch Probe looks like a neat program and should work with the current version of Open vSwitch. However, clause 1 (b) in the license agreement that prevents using it for any commercial purposes seems a bit worrying.

--Justin


On Aug 28, 2009, at 5:17 PM, Neil McKee wrote:

Hello all,

I saw you had sFlow on your list of features that are "under development", so I thought I would offer to help if I can. If you're just getting started, the source code linked from this page might help:

http://inmon.com/products/virtual-probe/index.php

(It the C source code to an sFlow agent designed to connect to a virtual SPAN port using libpcap).

If you already have something running, then I'd be happy to help with the testing.

Neil McKee
InMon Corp.


_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss_openvswitch.org



_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss_openvswitch.org

Reply via email to