Extreme Packet Capture, Star Trek Style (Part 2)


Our approach to technology defines who we are, as individuals and groups. The groups could be companies, countries or a species, regardless the technology we employ demonstrates our origins, and our roots. The Klingons are a fictional race of warriors and hunters who pride themselves on war ships with camouflage cloaking, strong defensive shields and superior maneuverability. In contrast the fictional Federation is collection of races whose focus is on exploration. Their star charts, scientific scanners, and fast charging photon based phasers offer a unique contrast to the Klingon's much slower & less efficient particle beam disrupters.

The same holds true for packet capture solutions. Our company, Myricom, designed our product in collaboration with a government agency interested in network security. One of the key design criteria was the replacement of an already existing method with one that bypassed the operating system so lossless packet capture at wire-rate could be achieved. The process of capturing network packets is transparent to the end user application, and they are stored in memory via a user space or kernel space driver. This technique enables our product to support over a dozen existing applications right out of the box. Another vendor designed their capture product for the financial market where saving the market data to disk for later analysis is critically important. Both of these approaches fit perfectly for the problems they solve, but one is more versatile. 

In part one I promised to wrap up this series by talking about injection and sample code, so let's begin. Injection is simply taking packets in memory and putting them onto the ethernet. Where FastStack Sniffer10G differentiates itself from other approaches is that it has total control over the network interface, with nothing between it and the wire. Therefore when you capture packets, you can modify the contents if you like, and then inject them back onto the wire without anyone being the wiser. Most security appliances do just this, they act as a man in the middle, a guard who looks at everything and only lets in, our out if you're really careful, things that are acceptable. Since Sniffer10G is an in-memory solution this can be sustained at wire-rate provided your man-in-the-middle code is pretty tight, and you leverage multiple queues for processing traffic in parallel. There is no transparent way to offer injection so you need to use the  Application Programming Interface (API), but several useful sample programs are included, with source.

The sample programs provided that do injection are: snf_pktgen, snf_replay, and snf_bridge. The snf_pktgen is just what it's name implies a simple packet generator. You can tell snf_pktgen what packet size to use, how many packets to send (or infinite) and the number of concurrent parallel threads to use to send them. It will make a best effort to pack the wire full of packets with the size you provided. Similar to that we have snf_replay which will play back a sequence of packets already constructed to the ethernet. Here you pass snf_replay the file name that contains the packets. An optional packet rate (undocumented for various reasons). Another option to read the whole packet file into memory prior to writing it to the ethernet. Also optional insertion of a vlan tag for those packets without tags. The number of times to replay the file to the ethernet, and the number of threads you'd like transmitting concurrently. Finally, we have snf_bridge, I've not personally used this one. With snf_bridge you define the port to use for capture and injection (they can be different), the number of in memory rings to use, and the cpu binding mask. The you can specify the number of packets to forward before exiting. The number of times to retry forwarding a packet before dropping it. The amount of time to wait between capture & injection, in milliseconds. Finally, the option to reflect non UDP and TCP packets to the network device. All of these sample programs, and several more, are available in the /opt/snf/bin/tests directory in binary form and /opt/snf/share/examples directory as source code.

So Federation, Romulan, or Myricom, a clear problem statement, and the tool box we bring to the table defines the products we build and the solutions we offer. Unless of course you're Captain Kirk, who prefers when possible to redefine the problem into something that he can solve with the resources at hand. If you ever want to chat packet capture please don't hesitate to flip open your communicator and ring me up, 919-389-5064.
Comments

Extreme Packet Capture, Star Trek Style (Part 1)

At one point or another we've all watched Trek. From Scotty yelling "I'm giving it all she's got cap'n" to Picard's "Make it so." We love the mix of humanity & technology. Like Scotty, most techies get excited by the thought of pushing their own skills & systems to their very limits. Is there a place though in IT for pushing the tools we use to their limit, and can we overload our systems? I believe there is a place, and when it's appropriate we should push our systems, and ourselves for that matter, to their limits so you can know for certain what we can truly expect. Computers these days have many safety systems to prevent us from frying them. Let's face it, any techie worth his salt has the smell of burnt Silicon stored in the neurons of their olfactory nerve, so let's try and avoid that. Yes, some of these systems can be bypassed, but today that's not what I'm suggesting.

So how do we perform network analytics or problem determination on 10GbE links operating at near Warp speed? The answer is simple, get the right hardware, and software. You wouldn't send a crew venturing off into deep space without at least a Warp 2 capable ship, so you shouldn't expect to capture packets at high data rates on a 10GbE link with built in hardware and Libpcap. Heck even my little $69 Raspberry Pi can be easily configured with Libpcap & Wireshark to analyze traffic.  No, to do real 10GbE performance monitoring and management you'll need the right network interface card, and software. Let's assume you're on a tight budget, and most folks are, my recommendation is an Emulex One Connect Network Xceleration (NX) adapter (P/N OCe12101DM-SNF2) which offers a single wire-rate 10GbE port WITH Myricom's FastStack Sniffer10G included, all for under $690 list price. Now you might ask yourself, why not use something else? True there are other adapters and other solutions, although I think you'd be hard pressed to find another lossless wire-rate solution for 10GbE for one for under $700.

So what's so special about this Emulex adapter and FastStack Sniffer10G? Several things: a transparent access model, lossless wire-rate 10GbE packet capture, multiple shared parallel memory buffers, two buffer creation strategies, adjustable hashing algorithm, user space or kernel mode, wire-rate injection, and a number of useful tools and sample code. Let's take a moment and look into each of these.

By a transparent access model, we simply mean a libpcap replacement library on Linux, no coding required! This replacement library supports multiple in memory buffers & strategies that are totally  transparent to your libpcap compliant application. Sniffer10G employs the use of environment variables for configuring in memory queues. This allows Sniffer10G to easily plug into programs like: Snort, Suricata, BRO-IDS, WireShark, TCPDump, etc…

Lossless 10GbE wire-rate packet capture requires three things: hardware designed for gargantuan packet rates, software architected to bypass the OS and quickly move packets into user space, and a tight marriage between the two. This Emulex adapter uses a processor made by Myricom capable of sustaining a packet handling rate of approximately 16 million packets per second (Mpps), combined send & receive.   A 10GbE link fully loaded with the smallest possible packets, 64 bytes, can sustain a wire-rate of 14.88Mpps. Often folks interested in packet capture typically don't retransmit packets on the same link they're capturing on so a ceiling of 16Mpps is a perfect match to catch 14.88Mpps of worst case inbound traffic.

Multiple shared memory buffers is a way to spread the work. FastStack Sniffer10G supports two buffer models: cloned & flow hashed. With cloning Sniffer10G will create multiple in-memory copies of the same in-bound traffic. This enables you to have multiple different applications running that each have their own independent in-memory copy of the packets being captured. At wire-rate Sniffer10G should be able to sustain up to three clones for a total of four in-memory queues of the same identical captured traffic. Sniffer10G can provide more clones, but after three at wire-rate we may begin to drop packets. Cloning brings up a significant problem though, each queue could potentially receive a new packet every 67 nanoseconds so your code that is working these queues has to be extremely tight.  Flow hashing solves this problem. With flow hashing Sniffer10G spreads traffic between up to 32 different queues (each queue should be bound to it's own core). This gives your code working the queue in a worst/best case up to two full microsecond (best meaning that the packet distribution is even across 32 buffers) to process inbound packets.

So what about flow hashing. Well, flow hashing is non-deterministic, meaning that it's not a simple round robin method that yields easily predictable results because frankly, most folks interested in packet capture really don't want this type of packet distribution between queues. Flow hashing allows you to maintain network flow affinity meaning that the same queue will always receive packets from the same source going to the same destination/port etc… so that when you do deep packet inspection for things that span multiple packets you'll have access to all those packets in the same queue that make up that traffic flow. Pretty cool huh? So flow hashing is handled by default by using the IP/TCP/UDP source and destination addresses. This can be altered by setting the Receive Side Scaling (RSS) flags prior to launching your code using an environment variable (SNF_RSS_FLAGS).

The remaining cool features, such as an optional kernel space Sniffer10G driver, wire-rate injection & samples will be addressed in part two of this series… Stay tuned for Part 2.
Comments

10GbE is Now a Commodity?


Last month Tehuti Networks brought out what may be the first truly commodity 10GbE NIC chip outside of Intel or Broadcom. Their TN4010 is small (11x11mm), draws a nominal amount of power (1W), it was designed for LAN on Motherboard (LOM) applications and from their data sheet it boasts impressive specifications (ex. <4us latency). Oh, and did I mention that in large volumes you can acquire the chip for only $10! Now if this was Tehuti's first chip I honestly wouldn't be wasting my time writing this piece, but they've been in and out of 10GbE more than once.

Let's take a moment and actually look at the specifications of the chip beyond the highlight reel. First on the Ethernet side we have a chip that claims to support SGMII, XAUI and CX4 so in English it can be used to build a backwards compatible card with an RJ45 plug supporting Cat5 for 10/100/1000Mbps and 10Gbps operation, or a low latency SFP+ chip that demands optics and fancy cables. On the server side we have a PCIe Generation two interface spanning 4-lanes, which is the most intelligent bus choice given that it's a single port chip. So what's in between? Tehuti OptiStrata processor. They claim it is actually a network traffic accelerator capable of supporting a number of stateless TCP/IP off-loads thereby freeing up the host CPU. It's not OS Bypass, but it's the next best thing. What exact stateless offloads are supported is unclear, but this can make a huge difference, especially given that it's a $10 chip. Finally, in an interesting twist they also support something known as IEEE 802.3az. I had to look this one up, it's the Green Ethernet standard.  It appears that this chip in times of low activity will throttle back it's power usage, while still being backward network compatible, by over 50%.

So is 10GbE now a commodity, it is if this chip works and people start soldering it down on mother boards, or building NICs with it. Right now the jury is out because Tehuti only provides a reference design. They learned from their last foray into the 10GbE market not to get into the messy business of actually selling cards, because it takes substantial capital, time and most important of all a skilled sales staff. Frankly though, not bringing a contract  manufacturer online though to turn out their reference design as a single instance of their product, and doing a simple web-direct credit card sales model is a huge  mistake. This raises the bar for anyone even remotely interested in considering using their chip for adoption.
Comments (1)

Rise of the NPU - Network Processing Unit

In the 1970's Intel brought us the CPU. During the 1990s we saw the evolution of graphics processors with Nvidia popularizing the term GPU in 1999. Now we're witnessing the dawning of the Network Processing Unit, NPU. Much like it's multiple core graphics cousins, the NPU is a parallel processing architecture, but it has been tuned for manipulating network traffic.

This market is still rapidly evolving, and several approaches are progressing in parallel paths. On one end we have Tilera, founded in 2005 with engineers from MIT and Broadcom, their approach is a many-core one, where the cores are interconnected by an on chip network to each other & substantial system I/O. In the middle we have Myricom founded in 1994 from Caltech, their architecture is multi-core where a two busses are used by an intimate collection of cores to share on chip memory, I/O & multiple network devices which are more tightly coupled to the wire. Finally, there is the FPGA approach advocated by Napatech, eNdace, and Solarflare, here the focus is on using the FPGAs to provide well defined filtering and packet processing. It's not exactly a processor, but an interesting transitional step. Each of these approaches has value, but over the coming decade the market will decide a winner, it always does. First let's take a deeper dive into the raw hardware.

Tilera attacks the NPU much more like a GPU than the other two strategies. They pack up to 72 cores onto a single chip. Then Tilera leverages a network mesh architecture to connect the cores to each other, and to multiple: DDR3 controllers, Ethernet SerDes (ports), PCIe busses, and a pair of MiCA encryption acceleration engines. On the high end these 64-bit cores are clocked at 1-1.2Ghz, and typically each has both an L1 (32KB) & L2 (256KB) cache along with three execution pipelines. The mesh fabric in aggregate has over 100Tbps of bandwidth, and utilizes a non-blocking cut-through routing with 1 clock cycle per hop. They then utilize four independent 72-bit DDR3 controllers for a total addressable real memory capacity of 1TB, and an access speed of 1,866 MT/s. On the ethernet side of this high end chip Tilera has eight 10GbE XAUI interfaces and 32 SGMII ports for legacy 10/100/1000 Ethernet. On the PCI Express side they utilize six integrated PCIe controllers each with four lanes, providing up to 96Gbps of throughput. Finally, there are two MiCA acceleration engines, these provide for encryption support for six popular protocols along with a public key accelerator supporting four additional protocols. This is an awesome amount of hardware packed into a single 45mm square chip. The one page data sheet doesn't cover the power it requires, but it's likely in the 60-80W range. How you might ask could I come to this conclusion? Tilera produces a quad-port 10GbE PCIe card utilizing the 36 core version of this chip, and it consumes 50W of power, it requires a secondary ATX power connector along with an active fan/heat sink.

As mentioned we have Myricom in the middle. Since 1994 Myricom has been producing a family of single core network processors for their line of programmable network adapters. In late 2005 they introduced their first 10GbE processor. Since then they've turned the crank once in early 2008 to produce their current Lanai Z8E. As mentioned this is a single core RISC processor clocked at 333+ Mhz with 2MB of on chip SRAM, two 10GbE XAUI interfaces, and single 8-lane PCIe controller supporting 8x, 4x, 1x modes. This summer it is expected that Myricom will deliver their first multi-core architecture chip, but no details have yet to be officially released. We do know though that it will be more similar to Intel's multi-core architecture than Tilera's many-core interconnected via a mesh network approach. We also know they're going beyond XAUI to more tightly connect to the wire to further reduce network latency, as this has been a key focus of theirs the past few years.

Finally, on the hardware side we have the FPGA crowd headed up by Napatech, eNdace & Solarflare. Solarflare is the newest entrant in this space, but they appear to have the clearest vision of where this technology can really go. While Napatech & eNdace, now an Emulex owned company, have been focused on packet capture & network analytics Solarflare is focused on the High Frequency Trading (HFT) market. Solarflare has taken their low latency 10GbE ASIC and back ended it with a powerful FPGA. Their intent is to keep fundamental packet processing decisions on the network adapter. Concepts like intelligent filtering and payload normalization. The filtering is based on some pattern of bytes within not only the header, but also potentially the payload. If a packet makes it past the filter code then they are working to normalize the payload contents so trade data coming from multiple source will all be formatted identically when passed up to the user space application.

So what challenges lie ahead for those interested in squeezing the most out of these NPUs? Programatic ones. Tilera's many-core approach, and the wealth of hardware devices on the die are  compelling, but frankly programming it is going to be like herding cats. The programmer will have to attach a pair of cores to each 10GbE port, one to handle receive and the other transmit. If we take the HFT problem described above that Solarflare is working on and use this as an example then they should utilize three additional layers of cores behind this. The first layer to handle filtering, say four cores to spread the filtering workload out. Each cores would then be inspecting key strings within payloads for applicable securities symbols. The second layer would be data normalization, here another four cores would line up directly with the first layer. These cores would then be altering packet payloads to conform to a predefined standard structure. The third layer would be a single core to collect all the packets from the second layer and steer them to the proper user space memory locations via a PCIe device. So in this simple feed handler example we've used two cores for the 10GbE link, one to interface with the PCIe and eight to handle feed processing, for a total of 11. For a single 10GbE link that's a lot of cats to herd. On the opposite side we have the FPGA guys, and we've all known for years that programming FPGAs is non-trivial. It's gotten better, but it's still more magic than engineering. Myricom being in the middle is still the wildcard, as they've not yet said publicly how open their processing architecture will be.

So the NPUs are here, how will you leverage them to yield a competitive advantage for your enterprise?
Comments

I Can See You Now, in 10GbE - Machine Vision


A draft of the first half of this article as a part 1 was posted previously on 10Gbe.net. This weekend I revised the entire article, completed it, and have posted it below. 

Who would think that something as fundamental as a video camera would ever need a 10GbE connection? Last week the tech who ran a well known wind tunnel in the US contacted me to buy some 10GbE cards. I asked why, and he said because that's the connector on the new cameras he was having installed, cool. At that point the whole concept of Machine Vision Acceleration (MVA), and the importance it might play as an emerging 10GbE market became interesting. During my research for this piece I just learned that the Machine Vision (MV) market was $2B in 2011, and that the dominant standard is GigE Vision. GigE Vision was developed by a consortium of 12 companies and published in 2006, today over 50 companies produce GigE Vision products.

Automated manufacturing lines rely on cameras to capture images for analysis, and keep the lines moving. These digital images are then run through a number of recognition algorithms to determine if the products pass or fail based on certain quality standards: color, shape, orientation, etc… They can also be used to guide industrial robots. Technological advances since the development of GigE Vision have further accelerated adoption within this new market. Today we have 2 megapixel cameras that are capturing 340+ images/second, and actually doing some image pre-processing within the camera. These cameras have a built in FPGA (Field Programable Gate Array logic chip) and significant memory. This approach enables one to write algorithms to pre-process the images, then load these algorithms into the camera to execute. This advanced processing trims down the data actually transmitted off the camera, while also distributing the processing load across all the cameras. It is not uncommon for a single server to process images from multiple cameras so if each camera can handle some basic takes this can dramatically ease the load on the server. Even with this assistance these cameras still require a built in 10Gb Ethernet interface for connection back to the servers that are processing the images in real time in order to properly direct the assembly line, robots, or security screeners.

Recently we covered HD video streaming. These machine vision cameras capture 2MP at 352 fps (Frames per Second). This is equivalent to between 6 and 12 uncompressed HD 1080p video streams (HD video can be between 24 and 60fps).One example I found of H.264 (the most widely used format) compression of a 1080p stream (1920x1080) requires 3Mbps at 0.4fps. So if we scaled this up to 352 fps this would work out to 2.6Gbps. Now you can see why these cameras have a built in 10GbE interface. The latest cameras are labeled GigE-Vision enabled devices, the new emerging standard. 

What networking magic could Myricom bring to MVA to improve performance? This is another market where bypassing the OS on the server side can make a dramatic improvement in overall solution performance. The processor on Myricom's network adapter that resides in the server can detect a GigE Vision packet as it enters the server and directly place that image into the frame buffer of the GigE Vision enabled application running on the server. Normally without MVA it would take the OS on the server two copies, and all the associated CPU cycles, in order to pass the data to the application.  MVA reduces this to zero copies, and no host CPU involvement. The second bit of magic that MVA brings to the table is intelligent interrupt moderation. With 10GbE running at line rate interrupt processing can seriously impact server performance. MVA utilizes adaptive interrupt moderation, known as coalescing, to reduce the impact on the server. With this technique MVA only notifies the host CPU when the image is complete and waiting in the user space frame buffer.

The above two reasons, zero memory copies & intelligent interrupt moderation are MVA's opening and closing illusions, but every good magician has several other tricks to fill out their act. Let's face it flowers from a wand still get's a laugh if properly timed. Anther bit of slight of hand is how MVA manages load balancing and traffic steering. Normally the standard ethernet or OS driver handles steering ethernet traffic steering to the application, MVA handles this now. MVA also supports multiple threads and devices and the steering between them. 

So all this magic, what's the real payback, that Ta Da statement? How about a 25% CPU reduction in host CPU! That's what all the above magic produces on an Intel 8-core 2.93Ghz system. Thanks to our Hawaiian surfing architect responsible for MVA for many of the details above.  

Today Myricom's FastStack MVA is available as a technology preview. We're still learning about this market, and tightening up what we think will eventually make for an awesome product in this space. So the next time you're launching a Machine Vision project please consider taking a look at the technology preview release of Myricom's FastStack MVA. 
Comments (1)

Hey HFT, 4.9 Microsecond TCP Latency on Windows!

To all those High Frequency Trading (HFT) shops out there that believe you need Linux to secure the lowest latency, well that's no longer the case. Myricom & Emulex now bring you FastStack DBL for Windows Version 2.2 which boasts an impressive 4.9 microseconds for a half round trip. That's a round trip divided by two which represents a send plus a receive. Oh, and that's out of the box using a simple transparent mode wrapper (dblrun). If you want you can also code to the DBL API which now works for both UDP and TCP channels.

In April of 2011 at the HPC Linux for Wall Street show Myricom announced DBL 2.0 which included TCP, and Windows support. Since then we've learned a few tricks and have further reduced the latency in transparent mode to 4.9us. Initially to achieve out of the box transparent mode we leveraged a technique called Layered Service Provider (LSP). We realized though that this trick cost us 500ns, and after considerably more research and coding have developed a non-LSP solution that saves the 500ns and has some additional performance improvements.

If you need additional flexibility, or require that DBL be in your code path along with other 3rd party modules, then DBL also offers a rich Application Programming Interface (API).

Furthermore FastStack DBL now supports both UDP and TCP in transparent mode on both 32 bit and 64 bit run time environments in both transparent & API mode. So if you're an HFT shop that uses Windows in production, or has been considering using it, now you've no longer got an excuse not to give it a try. All you've got to loose is latency.

Comments

Why the Different Look

So I've gotten a little fancy and moved to Blogger for posting all my blog entries on both this site and Cyber Weapons. The fancy part is that I've removed the traditional inflexible component used to manage the 10GbE.net blog and replaced it with a PHP widget that drains the content dynamically from my 10GbE Blogger account. Now I can post once and it automatically shows up in both places. I then migrated all my old relevant posts from 10GbE.net into the 10GbE Blogger site. It's either cool, or I've confused you.

Sorry there's been nothing new this week yet on the 10GbE front, I was at RSA in San Francisco all week, and focused on Cyber Security.  I'll be posting something shortly on this topic, but I'm still completing the research so stay tuned, and thanks for reading.

Comments

"Simplicity is the Ultimate Sophistication" -- Leonardo da Vinci (1452 - 1519)

In the 1990s the federal government pulled a page from da Vinci's book, and got behind a software acquisition strategy called COTS (Commercial Off The Shelf) expecting that it would dramatically reduce software development & deployment costs while improving overall quality. It didn't take long before this approach began to be applied to application specific custom computing solutions used throughout key government agencies. Today many of these customers rely on systems built using a Lego like approach to building systems from COTS parts readily available to the general public.

Many of these systems used by the military and intelligence communities require unique form-factors and may be mounted in hostile computing environments like the bed of a Humvee, on the flight deck of a C130 transport or the Command Control section of a nuclear submarine. There are a number of military specifications designed to address each of these harsh environments. Tracewell Systems produces a variety of systems specifically to meet these needs while housing COTS components to maintain flexibility. One platform utilizes IBM's Bladecenter H blades unmodified in a three or five blade configurations that conform to several Milspecs. Since these utilize off-the-shelf IBM blades they can also have Myricom's IBM Bladecenter H dual port processor based 10GbE mezzanine cards. These blades can then run Myricom'sFastStack Sniffer10G software to produce a very dense ruggedized enclosure supporting 60-100 Gbps of packet capture or injection capacity for network security or cyber warfare.

So what type of extreme performance ruggedized COTS solutions could one build utilizing a Tracewell Systems enclosure, with several IBM Blades each with a dual port Myricom 10GbE adapter, and FastStack Sniffer10? One example is a Highly mobile security appliance for Intrusion Prevention or Intrusion Detection handling up to 50Gbps of inbound Internet traffic. Several open source software packages likeSnortSuricata or Bro-IDS can be used on this platform to filter the incoming Internet traffic before it is passed on to the firewalls. Other tools are available for creating a defense against a DDoS attack

On the offensive side of cyber warfare one could leverage the same hardware platform and the sample tools included with FastStack Sniffer10G to inject up to 100Gbps of traffic directly into the Internet. This can be done using previously recorded traffic or synthetically generated network packets. One or more of these systems could be racked into a single Humvee, driven to an Internet Exchange Point (IXP) anywhere in the world, and rapidly connected directly to the Internet via multiple fiber optic cables.

So the next time you explore military aircraft on display at a local air show, tour an army base or a naval shipyard it's very likely that behind those custom RF shielded covers are COTS systems whose internal hardware is exactly the same as what you're using today to run your business.
Comments

"Arm photons. Prepare to fire on the Klingon warbirds."

This article is also published on 10GbE.net.

Is an unforgettable quote from Captain James T. Kirk of the starship Enterprise that still sends chills down my spine. Unfortunately we need to take a break this week from Machine Vision Acceleration (MVA), to let the ink dry on a few things. So instead we're going to explore tools by answering one simple question, how strong is your optical signal? From mythical Photon Torpedoes to real life photonic communication mankind defines itself by it's tools. How good are the 10GbE tools your NIC vendor provides to configure & diagnose the status of your adapter and optics, and are they free? 


Yesterday I had the pleasure of visiting a DoD customer of mine in DC whom I've been selling 10GbE NICs to since early 2006. They asked what appeared to be a very simple question: "How can we tell the optical signal strength coming into your NIC?" Their severs are installed in extremely remote collocation facilities. Clearly this is a reasonable question, but in my nearly eight years of selling 10GbE it's one I've never been asked. I said I'm sure we have something that provides that info, perhaps "ethtool -S" might do it, I'll look into it. It turns out we have a tool called "mdio_rw" that we provide with our free Myri-10G Adapter Tool Kit. Today I had a chance to install the toolkit and test it out. There are over 20 tools in this digital bucket, most are diagnostic or for extreme setup, meaning they aren't for the faint of heart. Here is how you install the toolkit on Linux, if you're a windows user visit the above link for those details.


# gunzip -c myri-tools-linux.tar.gz | tar xvf - 
# cd myri-tools-1.26-linux/bin
Then to see the receive power, the amount of light arriving into the adapter on the first 10GbE port, you can issue the command:

# mdio_rw -b 0 | grep RX 
RX power = 0.6199 mW

This is the actual output from one of my test systems. The command returns another dozen parameters, some pretty interesting, but I'll leave that to you to explore.



Many of the 20+ tools in this package can be used to change how the adapter works by altering settings, upgrading the firmware, or performing deep diagnostics, all of these should be used with great caution. Here are several other interesting ones that rookies like I can play around with to gather useful information:


myri_info - Returns a number of hardware statistics on the adapter & PCIe bus. 
myri_pcie_conf - This confirms the PCIe payload sizes of the adapter and the system chipsets.
myrige-test.sh - Performs an adapter loopback self test.
There is more to the loopback self test, which you can read about in this link


So the next time you buy a 10GbE adapter check first to see what tools your vendor provides to help answer any questions you might have, diagnose any issues that may arise or allow you to further tune or configure your systems performance. Also are the tools free, and easy to install and use? You may be surprised at what you might learn. 



We just started adding back our NIC tables showing all the available adapters, pricing, etc… Pleasecheck it out.
Comments

Video Streaming to Jumbo Boob Tubes (Part 1 of 3)

This series of articles was also posted on 10GbE.net

At CES this week Netflix, announced streaming support for SuperHD and 3D.  For a select few in the back of their booth they also showed off UltraHD (4K) streaming. Some of you may know that Hulu Plus already supports HD streaming, but NetFlix is the 800Lbs gorilla, and when he moves people pay attention. Also this month we learned that Redbox has partnered up with Verizon to deliver their new Redbox Instantstreaming service for the same $8/month that NetFlix charges.  Let us not forget that Amazon Prime also offers HD streaming, so there are plenty of choices now for streaming quality commercial content. 

Now to be honest most of my NetFlix streaming is still on my iPad, and the content is older TV shows that are likely only stored in Standard Definition (SD) format in the "cloud".  Also like most folks these days my primary TV is one of those jumbo sets, but unlike my college sophomore daughter who exclusively uses aRoku box, ours is still connected to a digital Time Warner set top box.  So what does all this have to do with 10Gb Ethernet?  

Streaming content comes from service providers and content delivery networks that make up the "cloud".  As we move from SD to HD formats like: SuperHD, 3D, and soon UltraHD their servers and networks will be bursting with new demand for bandwidth.  What is the actual impact of moving to these high resolution options?

Here are some rough numbers that I've pulled from Wikipedia's page on H264 stream encoding:
Format                Bandwidth   SD Equivalent  H264 Level
          SD (480i)                  5Mbps              1X                 2.1
          SuperHD (1080p)   25Mbps              5X                  4
          UltraHD (3840p)   300Mbps             60X                5.1


How does this impact the video servers on the other side of the network providing your content? Well if they're still using Gigabit (GbE) links, and only serving up SD streams they can support about 150 customers per network port.  When they move to 10GbE that jumps up to 1960 streams (10GbE links are a bit more efficient) per port.  Most of the Content Delivery Networks (CDNs) have already moved to 10GbE for this initial boost.  It becomes even more affordable when they utilize dual port cards so they can provide nearly 4,000 customers service from a single server.  

Now along comes HD, and these servers with dual 10GbE ports can only handle about 800 customers.  Once those customers upgrade to UltraHD that number drops to 65 customers/server.  Wow from 4,000 to 65, and those 65 are consuming the same number of bits/sec so the backend storage demand remains constant. Server managers have to balance demand, people wanting to watch videos, with the hardware capability of both their storage & network infrastructure. As we saw on Christmas morning when NetFlix's streaming service crashed for 24 hours, it's not hard to miscalculate maintaining this balance.

Stay tuned, and next week I'll share what technology is available to ease the burden on these video server vendors and server managers.
Comments (1)
See Older Posts...