Follow Slashdot stories on Twitter

 



Forgot your password?
typodupeerror
×

Comment Re:How can you have a software defined network? (Score 0) 75

That is bullshit. Here is a guy that benchmarked the Intel X520 10G NIC that wrote a small piece titled "Packet I/O Performance on a low-end desktop": http://shader.kaist.edu/packetshader/io_engine/benchmark/i3.html [kaist.edu]

His echo service manages to do between 10 and 18 Gbit/s of traffic even at packet size of 60 bytes. And there is plenty of optimizations he could do to improve on that. The NIC supports CPU core affinity so he could have the load spread on multiple cores. The memory bandwidth issue could have been solved with NUMA. But even without really trying we are hitting the required response time on desktop hardware.

That's without data ever being accessed from userspace, no protocol stack, average packet size being half of the maximum, and there is a good possibility that the measurements are wrong, because then it would be easier to implement the whole switch by just stuffing multiple CPU cores into the device, and the whole problem would not exist.

The simple fact is that after the packet has been transferred over the 10G link it will go through a PCI Express (x8) bus and be processed by the Linux OS - the same OS that you earlier claimed to be running on the control plane of the switches designed by your company. The only difference here is that I would probably get a faster system CPU than would be in your hardware.

Actually in that driver it was not processed by anything -- copying is performed while in kernel. Data is mapped to userspace-accessible memory but userspace does not even touch it, everything happens in kernel, with network stack being completely bypassed. The only thing less relevant (but perfectly suitable for a switch if it was indeed that fast) would be forwarding done entirely in interrupt handlers.

Another important question is, it's still unknown what the latency of that thing is -- with enough buffers it can get very high, and we did not even take into account all the delays in hardware, sitting in the queues in the switches that forward them over the management network.

As to the blocking issue, only packets from the same (new) flow would be queued.

Except there is no new flow because it will be only created after the controller will produce a rule to identify it, so any packet may belong to it. And there is a matter of somehow expiring old rules based on lack of traffic that matches them. This works very well when the whole NAT or load balancing can be reduced to predefined static mapping with a hash. What is done already with managed switches, even cheap ones. There is no benefit in making fancy controllers do that.

Also given that protocols like TCP do not just suddenly burst out 10G of packets

But protocols like UDP (and convoluted monstrosities on top of them with multiple dependent mappings, like SIP), do.

, the next packet following the initial SYN packet is not likely to arrive before the SYN has been processed by both switch and controller and forwarded long ago.

Except there may be a DoS in progress that fakes those packets. On a host, you can have an algorithm that prevents them from eating your memory, so only real mappings (with both sides completing the handshake) end up being persistent. On a switch you have no way to implement such an algorithm because it does not fit into rules you can define by your protocol, what means, either your simple switch has to become a router, or it will not be able to provide such functionality without falling a victim to a simple SYN flood.

And again packets to other destinations will not be blocked while we wait for the controller and somehow I get the impression that you think they would.

There is also a matter of number of rules, size of internal RAM in ASICs that contains them (and it's a different kind of RAM, not cheap and not large, think CPU cache), and time that it takes to update it. All for nothing because CPU in the switch can do the same, better, without any "globally standardized" formats for rule-passing protocol, without data ever showing up on management interfaces, without any of those hare-brained schemes. As I said, there is a place for standardization of switch ASIC control, and it will be a great way to make open source firmware for high-end switches and routers feasible. But then the standard should not be crippled or shoehorned into a management protocol that is supposed to work over the network.

Comment Re:How can you have a software defined network? (Score 0) 75

So you are saying my estimate of 200 ns delay is wrong? Give me your own calculations.

This would work if data was transmitted instantly and there were no packets. 200ns round trip latency can be only achieved if network interface on the controller that can handle ten million packets per second. Network cards can only do 1-2 millions, and this does not count latency caused by a network stack of a general-purpose OS on the controller, and any delays in the switches along the way.

Yes the incoming packet is in a queue while the switch waits for response from the controller. That response can be there within 200 ns. In the meantime the switch is not blocked from processing further packets.

It is blocked because it does not yet have a rule that will determine the processing of any packet that follows, so any packet may happen to match it, and have to sit in the queue until the new rule arrives from the controller.

A 200 ns delay on the first packet in a flow of packets is so little that is barely measurable. You will be dealing with delays much larger than that simply because you want to send out a packet on a port that is already busy transmitting.

Switches always delay packets -- this is what queues are for. In this case, however, any packet that has to be processed by a controller means instant blocking of the input queue, something that network switch designers avoid like the plague. And just imagine what will happen if the response will be lost and everyone will wait for timeout and re-transmit. The loss of traffic will make those large routers look cheap in comparison.

Comment Re:Still Short-sighted (Score 0) 237

Design can not be tested. Only implementation can be tested, and testing does not resuce the stupidity of people that work on the project, it just catches most glaring mistakes and worst brain farts. If the programmer writes buggy code, it will be still buggy after passing tests -- except if he is stupid or dishonest enough, he will be able to cover up bugs by writing workarounds for tested scenarios.

Comment Re:Still Short-sighted (Score 0) 237

Agreed. For more than one reason, and from personal experience. I've had both, a crew of code monkeys and a small but incredibly efficient team of well paid but also very good programmers. To say that the latter were vastly outperforming the former (for less money in total, too) is an understatement.

That means, they work on the project that is already reduced to the worthless state, likely due to your inept management.

LOOK EVERYONE, shit programmers and shit managers are coming out of their closets!

Comment Re:In theory, theory and practice are the same... (Score 0) 237

I agree with you, in theory. But, in order for that 10x-100x to be achieved, conditions have to be conducive. It's like starting up that 600mph car to make a record run on the salt flats. If things are right, you can achieve phenomenal results. But, things usually aren't that optimal, and in a suboptimal environment, your gifted driver will be much less able to distinguish themselves from a merely good driver.

This is completely wrong.

Bad environment at work hurts everyone, however good programmer remains being good programmer until the point when project is so bad, it is worthless no matter who and how works on it.

Having watched things play out many times over a (eek) long career, I've observed that it's fairly rare that skill and opportunity coincide. If you find yourself in such a position, revel in it, as it probably will not last.

That's because you are a shit programmer who drags everyone down.

Comment Re:How can you have a software defined network? (Score 0) 75

This however does not necessary make the controller any faster reacting.

Of course, it does. Latency of a PCI Express connection is negligible compared to any network interface. Properly organized DMA can perform multiple transfers, and get decisions from the local CPU while the packet is waiting in the queue.

Many switches only have limited bandwidth between data plane and control plane. It is assumed that most of the brunt work will be done in the data plane and that any work that needs to go through control will have higher latency and less bandwidth.

The problem is not bandwidth, it's latency. A tiny fraction of packets are supposed to reach CPU to trigger protocol-based decisions for their forwarding. However the decision (without data, no need to transfer it back if it's already queued) must come back fast. PCI Express can do that. Local DMA-capable bus interface to built-in core can do that. Management Ethernet to another device, passed through other switches can't no matter how fast it is.

It is this property that makes it possible to move the control plane out of the chassis.
Is it perfect? No but it is a good start.

It's not a start. It's a start and the end because once standard like this is implemented, it's set in stone, and requires rebuilding ASIC to add anything. It's completely inflexible, and designed for convenience of software developers, not extensibility. Once there are devices with first version of the protocol, everyone will have to support it forever, and can only add a completely different protocol that only new devices will understand.

Comment Re:How can you have a software defined network? (Score 0) 75

It will basically do anything routers can do in the data plane without querying a controller

And once this will be all implemented, it will become yet another implementation of a router.

I fail to see by what property you can call the above for "stateless". On the contrary it is a little programming language with state updates such as counters, timers and queue lengths and the ability to make decisions based on those.

And once it is all implemented, you will have a router, except all control is done in a limited "language", and it will have to control resources (queues, tables that now correspond to rules, not just physical ports) that will require ASIC and FPGA chips not unlike those used in expensive routers. It won't be cheaper or better, or more flexible -- in fact, it will cement the state of technology and protocol support at the moment this "standard" was created and provide no method for extension other than asking controller before deciding forwarding for each new address.

I recognize your belief that the controller software should run an a CPU in the same chassis as the data plane.

And then the design that relies on fixed-format exchange between controller and "dumb" switch is pointless, because router/switch implementations will have to accommodate new features, new hardware, and passing new kinds of protocols with appropriate kinds of QoS.

Comment Re:How can you have a software defined network? (Score 0) 75

Router is supposed to be able to generate and keep state of groups of protocol sessions (sometimes individual sessions), make decisions about forwarding and queuing immediately on the packet's arrival, maintain multiple queues with different limits of delay, etc. It is not allowed to forward traffic to the admin's iPhone for NAT, QoS, tunneling, load balancing, etc. -- it has to implement their logic locally.

On top of that it may have external logic that reacts to major changes in traffic statistics or changes in network topology/connectivity, and those may be implemented externally, however that's not all the router control logic does. As I have mentioned before, nothing is really saved by moving processors around, as switch still needs one, and once it has a processor, that processor can do everything remote controller would ever do, except without low reliability and enormous latency that comes with any form of a remote controller.

It's true that in its simplest form routing can be implemented as stateless filtering, header rewriting and switching, however those devices exist already, and they did not replace routers.

Comment Re:For once, I agree (Score 0) 368

If you have your own fire department, healthcare system, and will supply them at your own expense to everyone affected by a fire caused by your improperly wired kitchen, and you and everyone in your family are willing to kill themselves if someone will die in that fire or be electrocuted? I guess, why not...

Slashdot Top Deals

"Imitation is the sincerest form of television." -- The New Mighty Mouse

Working...