OpenSolaris

  subsites   code review   repo   packages   bugs   defect   polls   planet
You are not signed in. Sign in or register.

OpenSolaris Community: Networking

View the leaders for this community
Community Observers

Endorsed projects

Networking in Solaris 10

Exponential growth in Web connectivity, services, and applications is generating a critical need for increased network performance. With the Solaris 10 Operating System, Sun meets future networking challenges by radically improving your network performance without requiring changes to your existing applications.

  • Speeds application performance by about 50 percent via an enhanced TCP/IP stack
  • Supports the latest networking technologies, such as 10 Gigabit Ethernet, wireless networking, and hardware offloading
  • Accommodates high-availability, streaming, and Voice over IP (VoIP) networking features through extended routing and protocol support
  • Supports current IPv6 specifications

Slide Presentation at BayLISA: Solaris Networking: Today and Tomorrow 18 August 2005

FireEngine

FireEngine is a high performance networking framework based on an IP classifier and vertical perimeters. It transitions Solaris message passing based network stacks to function call based stacks while maintaining the current scalability. The architecture is very different from the old BSD style stack. FireEngine binds a connection to a CPU ensuring all packets for that connections are processed on the same CPU thus taking full advantage of NUMA architecture.

FireEngine Whitepaper

NL7C (Network Layer 7 Cache) Project

NL7C as part of SOCKFS provides an in-kernel gateway cache for objects transported via a generic request/response message based protocol in a semantically transparent manner.

That is, neither the requesting user agent (client, e.g. web browser) nor the origin server (e.g. webserver) that provided the response cached by NL7C are impacted in any way.

The first L7 protocol to be supported is HTTP which will supersede NCA (Network Cache and Accelerator) allowing NCA to be deprecated at a futre time.

Nemo aka GLDv3

The Generic LAN Driver module has been in Solaris for many years. It provides much of the functionality required of a network driver and thus helps to accelerate the development and improve the consistency of such drivers. This project aims to evolve the Generic LAN Driver to improve performance and add features.

Some key features include:

  • trunking
  • vlan
  • dynamic polling
  • chaining support
  • large segment offload support

Yosemite

The Yosemite project is aimed at improving Solaris UDP performance, and is made up of various smaller projects ranging from UDP/IP merge, UDP hardware checksum offload, roadcast/ multicast performance, socket-layer processing, and many others. The goal is to make Solaris more competitive when compared to Linux when UDP is used as the transport protocol, especially for workloads sensitive to latency and/or throughput.

Yosemite Whitepaper

IPFilter

IPFilter was initially integrated into Solaris late in 2003, just prior to the first release of IPFilter 4.1. Now that Solaris 10 is released and people are starting to use Solaris IPFilter as bundled, we're accelerating the effort in engineering to bring that up to date with what's available in the open source world. First off will be providing support for IPv6 (but not NAT.) In addition to the normal "catchup" type of project, we'll soon be engaging in a project to provide a native interface in Solaris for firewall software to use, rather than having to depend on the pfil STREAMS module.

IPsec

Along with IPFilter, IPsec is the intersection of networking and security. Solaris IPsec projects and discussion happen either here or in the Security Community. IPsec projects should be discussed on both communities, if at all possible.

IPv6

With Solaris 10, IPv6 has been further enhanced to support 6to4 Router (RFC 3056), default address selection (RFC 3484), privacy extensions for stateless address autoconfiguration (RFC 3041), the new IPv6 Basic API (RFC 2553), and the new IPv6 Advanced API (RFC 2292).

SCTP

SCTP (Streams Control Transmission Protocol, RFC 2960, RFC 3309 and RFC 3758) was added in Solaris 10. It is an in-kernel implementation that implements the socket API as defined in the draft-ietf-tsvwg-sctpsocket-10.txt. There is a lot of research going on around SCTP, such as how to do load balancing among streams, mobility extension, and multipathing handling. We welcome the community to use the OpenSolaris SCTP stack as an experimental platform. For comments, questions, bugs and suggestions, please send to sctp-questions AT sun DOT com.

Surya

The Surya project is aimed at improving forwarding path scalability. Forwarding scalability deals with the ability for the solaris box to forward a higher number of packets per second given a number of routes in the forwarding table. This project is currently in its prototyping phase.

Click here for the Surya design document.

Collaboration opportunities...

Clearview

Clearview defines and implements a set of common requirements that all Solaris network interfaces must adhere to in order to improve the integration of key networking technologies, the observability of network traffic, and the administration of network interfaces as a whole.

As a result, you will be able to:

  • Observe all IP layer network traffic, including loopback, IPMP group and IP tunnel traffic.
  • Observe all IP layer network traffic flowing to and from a zone.
  • Administrate all network interfaces using dladm(1M).
  • Use VLANs and form link aggregations on all Ethernet devices.
  • Use IPMP with technologies such as DHCP and routing protocols.
  • Select names for network interfaces, easing migration of network configuration information between systems or zones, and markedly improving Dynamic Reconfiguration.

... and more.

The foundation of Clearview, dubbed "Phase 0" or "Clearview for Nemo", has already integrated into Solaris 11, providing a much-simplified dladm command and the ability to monitor packets on the links that comprise an 802.3ad link aggregation. We are now hard at work on the core components which build upon the foundation laid by Phase 0.

These components are:

We are currently in the development phase. Community members with technical expertise and interest in one or more of the areas being worked on by Clearview are welcome to contact meem for details on possible collaboration opportunities.

CrossBow

Crossbow provides the building blocks for utility computing by creating virtual stacks around any service (HTTP, HTTPS, FTP, NFS, etc.), protocol (TCP, UDP, SCTP, etc.), or Solaris Containers. The virtual stacks are separated by means to H/W classification engine such that traffic for one stack does not impact other virtual stacks. Each virtual stack can be assigned its own priority and band-width on a shared NIC without causing performance degradation to the system or the service/ container. The architecture dynamically manages priority and bandwidth resources, and can provide better defense against denial-of-service attacks directed at a particular service or container by isolating the impact just to that service or container.

Slide Presentation at SunLabs Open House 2005 (28 April 2005):
CrossBow: Network Stack Virtualization & Resource Control

Quagga Routing Protocol Suite Project

This project aims to integrate the open-source quagga routing protocol suite into the Solaris Nevada SFW consolidation, replacing the SFWzebra package. Quagga is a fork of GNU Zebra (the version of zebra currently in sfw - SFWzebra - is based on GNU Zebra 0.92a, with many fixes, particularly to ospfd).

By integrating quagga, we hope to provide customers with a routing protocol suite supporting a wide range of routing protocols, and with a very active developer community. We aim to integrate quagga into Solaris "as is" -- i.e. the community version, with no changes.

One challenge is that quagga for Solaris now provides an SMF manifest for its routing daemons, but Solaris routing management is not currently SMF-oriented. As such, this project also contains a Solaris Nevada ON component to update routing management to support SMF routing daemons, and refactor routing management as a set of SMF services. It also intends to provide service conversions for in.routed and in.ripngd. Of course these intentions are based on the current design, and may change based on feedback received -- hopefully from you!

If you're interested in quagga/routing management or SMF we'd love to hear your comments and suggestions, and we welcome community participation throughout the project. In addition, there are a few bite-size pieces of this reasonably small project that the community might like to get involved with. You can also participate in the ongoing design discussion on networking-discuss. We'd prefer to have the conversation there so the community can participate, but if you need to you can reach us in Sun at quagga-iteam at sun dot com.

IPFilter (Follow-on)

A primary opporunity for you to develop code to form part of Solaris IPFilter is to provide additional proxy modules that have more knowledge about protocols such as HTTP, SMTP, etc. There is support within IPFilter to allow external entities to register proxies, paving the way for independant kernel modules to be developed and provide this kind of functionality. The interfaces involved here have no stability level here, so there's no guarantee of backward compatibility if you do embark down this path.

Another prime candidate here is development of more detailed knowledge of other layer 4 protocols, such as SCTP.

hxbt

Hxbt is a Stream module/driver which emulates a WAN environment. It captures packets from IP and manipulates the packets according to the WAN setup. There are five parameters to control the environment. They are network propagation delay, bandwidth, drop rate, reordering, and corruption. Hxbt acts like a "pipe" between two hosts. And the pipe is the emulated WAN.

For more information download the source or take a look at the README.

Additional Solaris Networking Information

BigAdmin System Administration Portal:
Solaris OS Network Performance

Solaris Forum Discussion Forum:
BigAdmin High Performance Networking Discussion Forum

Linking to other Communities

Laptop Community

Approachability Community

Security Community

News

Network Virtualization - Enter Project Crossbow | InfoWorld | 06/11/2006

How cool would it be to be able to divide your physical network interface card (NIC) into several virtual interface cards and have the ability to prioritize networking traffic as well as having full resource control? Well, it could be a reality as Sun researchers and project "Crossbow" attempt to solve networking problems by making sure each application gets a set amount of bandwidth.

NICed and sliced | The Register | 06/06/2006

Closer to the heart of Solaris geeks is the "Crossbow" project to virtualize NICs...

Lighting a fire under Solaris | CNET News.com | 04/24/2006

Sun Microsystems plans to release two significant updates to Solaris this year, promising a range of improvements as it tries to keep the operating system competitive. (Networking is toward the end of the article.)

Surya: Addressing OpenSolaris IPv4 Scalability | OSNews.com | 02/12/2006

"Surya project aims to improve IPv4 forwarding path scalability..."

"Solaris OS Networking -- The Magic Revealed" | Paragon Pinnacles | 02/06/2006

The advances in networking inherent in the SolarisTM 10 Operating System (Solaris OS) are the subject of Sunay Tripathi's BigAdminSM feature 'Solaris OS Networking - The Magic Revealed' which also considers the evolution of networking features in previous versions of the Solaris OS. Topics include TCP, UDP, IP, the device driver framework and tuning for performance.

Blogs

avalon - Blog moved....

Sep 11, 9:23 AM

For various reasons, some of which are spelt out in my knew blog, some of which are not but are implied by it (such as my logins to blogs.sun.com now just not working from my laptop), I think this ...

meem - Creating Shell-Friendly Parsable Output

Sep 2, 4:07 PM

Creating Shell-Friendly Parsable Output Being able to easily write scripts from the command-line has long been regarded as one of UNIX's core strengths. However, over the years, surprisingly little ...

mph - iPhone 3G

Aug 21, 4:02 PM

I dumped my Treo 650 the other day for an iPhone 3G . The Treo was way long in the tooth and the 3G and the GPS receiver on the iPhone 3G made it irresistible to me. A few years after I graduated ...

mph - for those that can't last untethered

Aug 21, 3:05 PM

So American Airlines announced Internet for those that can't work offline while flying. Well, okay, they announce some form of expensive cripplenet: Aircell’s Gogo will be available to customers as a ...

meem - GNOME Home

Aug 20, 4:46 PM

GNOME Home Yes, it's been a whole year since I last posted a blog entry. Between moving from Boston to San Francisco (metro, anyway), countless urgent matters (both professional and personal), and ...