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.
This section contains the open issues for the Sun Netra Data Plane software. These issues are under investigation.
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 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.
The ipsecgw application might show a performance drop when execution is resumed after dropping into the debugger.
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.
This behavior only occurs on the Sun Netra CP3260 system.
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.
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.
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.
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.
A slight degradation occurs when the application is first booted, but numbers settle a few minutes later.
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.
When in the Sun Netra DPS domain, an internal error might occur when you use the step command followed by a breakpoint.
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.
Flows being transmitted on different DMA channels of the same port are not scheduled according to their respective weights or priority.
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.
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:
The base PA of the Sun Netra DPS domain is 0x88000000 (which is not aligned with a
256-MB boundary).
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:
The base PA of the Sun Netra DPS domain is 0x80000000 (which is aligned with a 256-MB boundary).
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 any warning messages if the parameters are invalid. This behavior occurs only in interactive mode.
An IP with GRE forwarding might possibly crash after GRE entries are used after purging the GRE table.
ipfwd10g (which is ipfwd compiled with the 10g option) shows performance drops if toggling between 2 XAUI ports.
The acl reference application is not currently supported on the Sun Netra CP3260 system.
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.
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.
On T5440, when packet size is increased from 64-bytes to a larger size, then drops back to 64-bytes, performance can drop.
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.
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().
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.
This CR includes the behavior of two different applications: ndpstgen and ipfwd.
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)
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:
But, when the memory pools are created in the order mentioned, this message is not displayed.
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)
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:
Workaround: Ensure the platform has enough memory for the declared memory pool. Refer to the ipfwd and ntgen application for more information.
The 6in4 and 4in6 tunneling configurations do not work with the second port when the ipfwd application is compiled for two ports.
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.
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.
This section includes information about the known release limitations.
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:
Sun Netra DPS has not been fully tested on the 10-Gbps NIU ports on the ARTM (Adcanced Rear Transition Module).
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.
For a 10-Gbps PCI-E card build, the ipsecgw application supports only 10-Gbps NIU build.
Currently, ipsecgw application supports only a standalone environment. The
build-with-LDoms option is not available for the ipsecgw reference application.
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.
The nxge Ethernet driver does not yet support Jumbo frame.
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.
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.
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 assume hardware port numbers are consecutive, as in the following examples:
The autoconfig utility does not have an option to remove a domain.
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.
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.
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.
The following subcommands are not yet implemented:
Currently, reference applications can only handle Ethernet devices with port numbers that are consecutive.
When using ACL for IPv6, the Trie algorithm is not supported. Use bspl algorithm instead.
The default mode of RLP application does not handle vlan packets.
This section include information about configuring the LM-X licenses.
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:
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.
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/).
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:
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.
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/).
You can request support and provide feedback to the following email address:
Copyright © 2010, Oracle and/or its affiliates. All rights reserved.