Sun Netra Data Plane Software Suite 2.1 Update 1 Release Notes

These release notes contain last-minute information about Oracle’s Sun Netra Data Plane Software Suite 2.1 Update 1 release. The Sun Netra Data Plane software is referred to in this document as Sun Netra DPS.

Topics include:


Open Issues

This section contains the open issues for the Sun Netra Data Plane software. These issues are under investigation.

gccfss Shared Libraries Fail to Load When They Are Built With gccfss Compiler (CR 6911428)

When building shared libraries with gccfss, the compiler adds references to functions provided by libgcc_s.so.1. The libgcc_s.so.1 library is not available in the Oracle’s Solaris 10 U6 Operating System (core software group installation).

This causes shared library load failure with following error:


ld.so.1: <application using shared lib>: fatal: libgcc_s.so.1: open failed: No such file or directory

This error can be observed by building TIPC Solaris socket libraries with gccfss and running TIPC applications.

Workaround: Do not use gcc with the --share option to create shared library. Instead use default Solaris OS linker (/usr/ccs/bin/ld) with the -G option to create shared library.

Compilation Fails if a Function Returns a Structure (CR 6529219)

Compilation fails if a function within an application returns a structure. This situation is due in part to private functions missing from libc.

Workaround: The function needs to return a pointer to the structure.

ipsecgw_niu_multi: tx Rate Drops When Resuming to Execution After Dropping Into Debugger (CR 6621914)

The ipsecgw application might show a performance drop when execution is resumed after dropping into the debugger.

Workaround: None

ipsecgw_QGC: “nxge_desc_setup: Cannot allocate rx buffer!” Message Seen
(CR 6624475)

ipsecgw over QGC displays messages if traffic is already started before the application boots up. The application, however, is still able to receive and pass the traffic after all ports are initialized.

Workaround: None.

Ctrl+C Might Not Work Properly on an Application Built by ipsecgw_niu_multi (CR 6637959)

This behavior only occurs on the Sun Netra CP3260 system.

Workaround: None.

ipfwd10g_niu: Performance Drops When Resuming to Execution from Ctrl+C (CR 6670493)

ipfwd10g_niu performance drops when going from 1500 bytes to 64 bytes (either directly or gradually). This is seen on Oracle’s Sun Netra CP3260 and Sun SPARC Enterprise T5120 and T5220 systems.

Workaround: None.

ipsecgw_niu_multi on Netra T5220 - Packets Getting Dropped Even for Lower Line Rates
(CR 6695813)

For ipsecgw_niu_multi application on a Sun Netra T5220 system, there is some difference in the number of packets received by the ports when sending 100 percent line rate and when sending the number of packets that each packet size can handle.

Workaround: None.

(W36) The acltool Hangs if Its Previous Invocation Was Interrupted by Ctrl+C (CR 6713076)

The next invocation of acltool hangs if it is interrupted by Ctrl+C. This also occurs after a timeout when rules are still being inserted by Hicut.

Workaround: Ctrl+C is disabled by default when using acltool.

ipctest Utility Subcommands Hang if Traffic Is Sending From the Traffic Generator (CR 6717561)

The ipc_test utility may hang when the perf-pkts-rx-tx command is used with the single threaded application while traffic is exchanged with the Solaris module (lwmod) on another channel. After the first command hangs, subsequent calls in ipc_test will also hang.

Workaround: None.

ipsec_niu_multi: Takes a Few Minutes for the Numbers to Settle on Netra CP3260 (CR 6722105)

A slight degradation occurs when the application is first booted, but numbers settle a few minutes later.

Workaround: None.

Port0 of Ethernet Device Must be Opened First Before Port1 (CR 6724434)

When multiple ethernet ports are opened, the lowest number port number of the Ethernet port must be opened first.

Workaround: When opening a port from a application, the application needs to open the lowest port first.

gdb - Internal Error in Netra DPS Domain Might Happen When Using the step Command Followed by a Breakpoint (CR 6726490)

When in the Sun Netra DPS domain, an internal error might occur when you use the step command followed by a breakpoint.

Workaround: None.

ipctest Utility Hangs When Doing perf-pkts-rx-tx (CR 6731036)

The ipc_test utility hangs when the perf-pkts-rx-tx command is used while traffic is exchanged with the Solaris module (lwmod) on another channel.

Workaround: None.

ipfwd-diffserv: Class-Based Scheduling Does Not Work Across DMA Channels (CR 6732966)

Flows being transmitted on different DMA channels of the same port are not scheduled according to their respective weights or priority.

Workaround: None.

NIU Does not Operate Correctly When Memory Allocated for Primary Domain Is Not Aligned
(CR 6744977)

When the starting physical address of the Sun Netra DPS domain is aligned on a 256-MB boundary, the NIU fails to receive packets into the specified memory locations.

Workaround: Make sure that the Sun Netra DPS domain memory is not aligned with a 256-MB boundary. If the Sun Netra DPS domain is the first domain bound after the primary domain, you can assign a multiple of 256-MB to the primary domain.

Allowable Setup Example

When 2-GB of memory are assigned to the primary domain, executing the
ldm ls -l command for the Sun Netra DPS domain shows the following memory binding:


MEMORY
 
RA             PA             SIZE
0x80000000      0x88000000     4G

The base PA of the Sun Netra DPS domain is 0x88000000 (which is not aligned with a
256-MB boundary).

Non-Allowable Setup Example

When 1920-MB of memory are assigned to the primary domain, executing the
ldm ls -l command for the Sun Netra DPS domain shows this memory binding:


MEMORY
 
RA             PA             SIZE
0x70000000     0x80000000     4G

The base PA of the Sun Netra DPS domain is 0x80000000 (which is aligned with a 256-MB boundary).

When 10G PCI-E Card Is Used, Each Port Must Allocate at Least 4 DMA Channels (CR 6760590)

When using a 10-Gbps PCI-E card, each port must be allocated with at least 4 DMA channels.

Workaround: Minimum of 4 channels must be allocated when building applications on
10-Gbps ports.

acltool Does Not Issue Warning Messages for Invalid Parameters in Interactive Mode (CR 6767958)

acltool does not issue any warning messages if the parameters are invalid. This behavior occurs only in interactive mode.

Workaround: None.

IP With GRE Fowarding Might Crash After GRE Entries in the GRE Table Are Purged (CR 6775156)

An IP with GRE forwarding might possibly crash after GRE entries are used after purging the GRE table.

Workaround: None.

ipfwd10g Shows Inconsistent Performance Numbers on T5440 When Toggling Between 2 Ports
(CR 6775168)

ipfwd10g (which is ipfwd compiled with the 10g option) shows performance drops if toggling between 2 XAUI ports.

Workaround: None.

acl Reference Application Is Not Yet Supported on the Netra CP3260 System (CR 6786752)

The acl reference application is not currently supported on the Sun Netra CP3260 system.

Workaround: None.

(T15148) teja_get_error Crashes During NDPS Application Memory Initialization (CR 6794685)

When NDPS application declares memory pool in the heap of one of the strands being used and the size of the memory pool exceeds the size of the heap, then the application crashes when it is executed in NDPS logical domains.

Workaround: None.

Circular Buffer-Based Memory Pool Does Not Function Properly When Used With IP Forwarding Application (CR 6794705)

When memory is declared using the TEJA_GENERIC_MEMORY_POOL_SHARED_MEMORY_CIRCULAR_BUFFER option, the teja_memory_pool_get_node() returns a NULL buffer node after a small number of memory nodes.

Workaround: Use other memory pool options.

ipfwd10g 2 Ports Under Logical Domains - Performance Drops When Packet Size Increases and Resumes to the Same Size (CR 6843688)

On T5440, when packet size is increased from 64-bytes to a larger size, then drops back to 64-bytes, performance can drop.

Workaround: None.

ipfwd_sync.d Does Not Execute on Solaris 10 (CR 6843723)

When executing the ipfwd_sync.d script on the Oracle’s Solaris 10 Operating System (Solaris 10 OS), the script fails on inet_ntoa6 and issues error messages about an undefined function name. This behavior does not occur when the script is executed on the Solaris 11 OS.

Workaround: None.

BSPL Can Have Memory Leak When Used in FIB Table Lookup (CR 6843725)

When using teja_malloc() option for BSPL lookup (passing NULL into bspl_create()), bspl_add_prefix() can cause memory leak.

Workaround: Pass hybrid memory into teja_malloc().

tnsmctl Might Need to Be Executed Every Time When NDPS (or LWRTE) Domain Restarts
(CR 6844126)

The tnsm drivers remember the tnsmctl setting so that every time when NDPS (LWRTE) domain restarts, tnsmctl does not need to be re-executed. However, in some conditions, tnsmctl must be re-executed when LWRTE restarts.

Workaround: Execute tnsmctl when an LWRTE domain is pending on its inputs.

ntgen and ipfwd Do Not Work Properly When Among of Memory Declared in Pool Declarations Reaches the Full Memory Capacity (CR 6846199)

This CR includes the behavior of two different applications: ndpstgen and ipfwd.

ndpstgen Application

The ndpstgen application does not boot on the T5440 with 10-Gbps Multithread PCIE Ethernet card and the T2000 with QGC when the following memory pools are created in the order mentioned:

1. Trace buffer pool (total = 1-GB)

2. Per-channel NxGE receive buffers (total = 16 * 25000 * 4096-B)

3. Common NxGE receive buffer pool (total = 20000 * 4096-B)

4. Per-channel mblk pools (total = 16 * 25000 * 4096-B)

5. Common mblk pool (total = 20000 * 4096-B)

6. Trace buffer metadata pool (total = 262144 * 8-B)

7. Packet info pool (total = 65536 * 8-B)

8. mif_mutex

9. cls_mutex

10. eth_port_mutex

11. display_mutex

12. mem64 (total = 10000 * 72-B)

13. mem128 (total = 10000 * 136-B)

14. mem256 (total = 10000 * 264-B)

15. mem512 (total = 10000 * 520-B)

16. mem1024 (total = 1000 * 1032-B)

17. mem2048 (total = 1000 * 2052-B)

18. mem4096 (total = 500 * 4104-B)

19. mem8192 (total = 500 * 8200-B)

20. mem10240 (total = 400 * 10248-B)

21. mem16384 (total = 200 * 16392-B)

22. mem20480 (total = 200 * 20488-B)

23. mem40960 (total = 100 * 40968-B)

24. mem65536 (total = 20 * 65544-B)

25. mem131072 (total = 10 * 131080-B)

26. mem163840 (total = 5 * 163848-B)

Normally, when the size of memory pools exceeds the size of the dram_mem memory pool bank set in hwarch.c, the following message is displayed when the application boots:


Too many data structures allocated to memory bank dram_mem. End of memory bank dram_mem is at address 0x100000000 while last data structure ends at address 0x1128e1240.teja_main.c, 163: teja_early_system_init failed.

But, when the memory pools are created in the order mentioned, this message is not displayed.

ipfwd Application

The ipfwd application built to use logical domains does not pass packets on the T2000 (CMT1, 4 x 1-Gbps QGC) when the following memory pools are created in the order mentioned:

1. Trace buffer pool (total = 1-GB)

2. Common mblk pool (total = 200000 * 2048-B)

3. Common NxGE receive buffer pool (total = 200000 * 4096-B)

4. mif_mutex

5. cls_mutex

6. eth_port_mutex

7. display_mutex

8. gre_mutex

9. mem64 (total = 10000 * 72-B)

10. mem128 (total = 10000 * 136-B)

11. mem256 (total = 10000 * 264-B)

12. mem512 (total = 10000 * 520-B)

13. mem1024 (total = 1000 * 1032-B

14. mem2048 (total = 1000 * 2052-B)

15. mem4096 (total = 500 * 4104-B)

16. mem8192 (total = 500 * 8200-B)

17. mem10240 (total = 400 * 10248-B)

18. mem16384 (total = 200 * 16392-B)

19. mem20480 (total = 200 * 20488-B)

20. mem40960 (total = 100 * 40968-B)

21. mem65536 (total = 20 * 65544-B)

22. mem131072 (total = 10 * 131080B)

23. mem163840 (total = 5 * 163848B)

24. mem327680 (total = 5 * 327688B)

25. ipv4_reasm_pool (total = 1024 * 64B)

Normally, when the size of memory pools exceeds the size of the dram_mem memory pool bank set in hwarch.c, the following message is displayed when the application boots:


Too many data structures allocated to memory bank dram_mem. End of memory bank dram_mem is at address 0x100000000 while last data structure ends at address 0x1128e1240.
teja_main.c, 163: teja_early_system_init failed.

Workaround: Ensure the platform has enough memory for the declared memory pool. Refer to the ipfwd and ntgen application for more information.

Some Tunneling Configurations Do Not Work With Two Ports (CR 6846840)

The 6in4 and 4in6 tunneling configurations do not work with the second port when the ipfwd application is compiled for two ports.

Workaround: None.

ipc_tx Crashes if the Message Buffer Address
(mp->b_rptr) Is Not 32-Bit Aligned (CR 6873060)

A ipc_tx call results in a crash if the message buffer address (pointed to by mp->b_rptr) is not 32-bit aligned. ipc_tx needs 8 bytes of data for its own use. This space has to be reserved by the caller before the data buffer. ipc_tx calculates b_rptr-8 as the byte address of the reserved space and then attempts a 64-bit (long-long) store at that address. Thus, if the data buffer address is not 64-bit aligned, a crash will occur.

Workaround: None.

IPv6 Ping Using lwmod Model Does Work for Other Ports Except the First Port (CR 6939385)

On multiple ports devices (for instance, dual 10G NIU or quad 4G PCI-E QGC card), an IPv6 ping works only for the first port when the lwmod model is used as the exception path mechanism.

Workaround: Use the vnet model for exception handling for IPv6.

 


Limitations

This section includes information about the known release limitations.

Netra DPS 2.1 Update 1 Does Not Support the ipge Ethernet Interface

This release does not support the ipge Ethernet interface. The ipge driver source code remains in the package for reference. Application supports the following Ethernet interfaces:

Limited Tests Have Been Done on CP3260 Equipped With the 10-Gbps ARTM

Sun Netra DPS has not been fully tested on the 10-Gbps NIU ports on the ARTM (Adcanced Rear Transition Module).

Netra ATCA CP3260 System Build Has Limited Hash Policy Options (CR 6702655)

To build for running on Sun Netra ATCA CP3260 systems, HASH_POLICY options are limited to the following policies: IP_ADDR, IP_DA, and IP_SA.

10-G (10-G PCI-E Card) Option Is Not Yet Available for ipsecgw (CR 6708127)

For a 10-Gbps PCI-E card build, the ipsecgw application supports only 10-Gbps NIU build.

All ipsecgw Application Options Are Statically Coded and Are Not Downloadable Through the build-with-LDoms Option (CR 6708140)

Currently, ipsecgw application supports only a standalone environment. The
build-with-LDoms option is not available for the ipsecgw reference application.

Profiler Supports CPU Counters Only (CR 6711351)

The current implementation of perf_tools.c does not collect DRAM counters from the UltraSPARC T1 and T2 processors, JBUS counters from the UltraSPARC T1 processor, and PCI-E counters from the UltraSPARC T2 processor.

Jumbo Frame Is Not Supported on Ethernet Drivers (CR 6723585)

The nxge Ethernet driver does not yet support Jumbo frame.

autoconfig - No Options to Modify Guest Domain (CR 6724105)

The autoconfig utility does not have an option to modify the guest domain. For example, while configuring the guest domain, if you forget to configure storage for ldg1, you cannot select the existing guest domain and modify it.

autoconfig - Does Not Check Existing File Under the /export Directory (CR 6724125)

The autoconfig utility does not check the existence of a file under the /export directory while adding the filename as backend to the virtual disk server device.

autoconfig - Use Default Name Only for LDC Channel (CR 6724170)

Configure LDC channels option creates the channels using default names between the domains. There is no option for the user to create the LDC channel names.

Reference Applications Cannot Handle
Non-Consecutive Ethernet Ports (CR 6762682)

Reference applications assume hardware port numbers are consecutive, as in the following examples:

autoconfig Does Not Provide a Command to Remove Domain (CR 6764230)

The autoconfig utility does not have an option to remove a domain.

Limited Support for CP32x0 10-GBE ARTM
(CR 6838876 and CR 6840226)

The 1-Gbps fiber ports on the CP32x0 10-GBE ARTM are not supported. The 10-Gbps
PCI-E ports and 10-Gbps XAUI ports are supported. The 10-Gbps XAUI port support is being tested.

Remove the Hidden Inclusion of System Header Files From TejaCC (CR 6533446)

Currently TejaCC includes many hidden include files. While porting other OS kernel code to Teja, the code might include OS system files that might conflict with the files included by Teja. In this situation, the naming conflict can be resolved by modifying the naming of the data structures in the user applications.

ipc_tx(): Chaining of Messages Is Not Supported (CR 6578957)

Chaining of messages using the b_next field in the mblk_t structure is not supported in this release. ipc_tx() must be called once for every message.

remotecli: Some Subcommands Are Not Yet Implemented (CR 6586372)


sys> show
         show platform   - show platform
         show hostid     - show hostid
         show network    - show network
         show memory     - show memory
         show devs       - show all devs
         show cpus       - show all cpus
         show vars       - show all vars
         show ldom       - show ldom
         show mdesc      - show mdesc
         show ldc        - show ldc

The following subcommands are not yet implemented:

Reference Applications Cannot Handle
Non-Consecutive Ethernet Ports (CR 6757600)

Currently, reference applications can only handle Ethernet devices with port numbers that are consecutive.

Trie algorithm is not supported in ACL v6
(CR 6932399)

When using ACL for IPv6, the Trie algorithm is not supported. Use bspl algorithm instead.

RLP Application Cannot Handle Both vlan and Non-vlan Packets Dynamically (CR 6622138)

The default mode of RLP application does not handle vlan packets.

 


Configuring LM-X Licenses

This section include information about configuring the LM-X licenses.

Working With Licenses Using LM-X

You must have a license file to use the software. When you invoke compilation of any application, Sun Netra DPS reads the license file. A valid license file must be present at /opt/LM-X/license. Sun Microsystems issues two kinds of licenses:

Node-Locked Licenses

A node-locked license, or uncounted license, is a license that runs on a single machine. The license file contains permission to run various tools for multiple users simultaneously.

Obtaining a Node-Locked License File

To obtain a license file, email the following information to NetraDPSlicense@sun.com:

You can find the host ID by running hostid (located under /usr/bin/).


procedure icon  To Install a Node-Locked License

1. When you receive the license file (for example, license), copy it to the
/opt/LM-X/ folder.

Create this folder if it is not present.

2. Compile any of the reference applications or your own application to automatically find the license file.

3. Set the LM_LICENSE_FILE environment variable to include the location of the new license file.

For example, in UNIX or Linux, use the setenv command in a C shell:


setenv LM_LICENSE_FILE /opt/LM-X/license

Evaluation Licenses

An evaluation license, or counted license, is a temporary license for a specified number of days. An evaluation license allows multiple users to use a single license file on a single computer for a limit of 90 days.

Obtaining an Evaluation-License File

To obtain an evaluation license file, email the following information to NetraDPSlicense@sun.com:

You can find the host ID by running hostid (located under /usr/bin/).


Feedback and Support

You can request support and provide feedback to the following email address:

ndps-feedback@sun.com