![]() |
Synergy Software Package User's Manual
|
The NetX/NetX Duo SNMP Agent module provides a high-level API for implementing the SNMP agent for the SSP architecture and is part of the NetX and NetX Duo application bundle included in the SSP Azure RTOS integration. This module is MCU independent, so any MCU that supports NetX and NetX Duo can implement the SNMP agent.
The NetX Duo SNMP Agent defines APIs for creating and deleting the SNMP Agent instance and getting its messages. A complete list of the available APIs, an example API call and a short description of each can be found in the following table. A table of status return values follows the API summary table.
NetX/NetX Duo SNMP Agent Module API Summary (Part 1)
| Function Name | Example API Call and Description |
|---|---|
| nx_snmp_agent_authenticate_key_use | (NX_SNMP_AGENT *agent_ptr, NX_SNMP_SECURITY_KEY *key);Register a previously created authentication key with the SNMP Agent for SNMP Agent responses |
| nx_snmp_agent_auth_trap_key_use | (NX_SNMP_AGENT *agent_ptr, NX_SNMP_SECURITY_KEY *key);Register a previously created authentication key with the SNMP Agent for SNMP trap messages. |
| nx_snmp_agent_community_get | (NX_SNMP_AGENT *agent_ptr, UCHAR **community_string_ptr);Retrieve the community string from the SNMP manager GET or GETNEXT request. The SNMP Agent should compare that to its own community string (see the nx_snmp_agent_public_string_test API description). |
| nx_snmp_agent_context_engine_set | (NX_SNMP_AGENT *agent_ptr, UCHAR *context_engine, UINT context_engine_size);Set the context engine ID of the SNMP Agent. Must specify the size of the ID string. Only used in SNMPv3 to identify the Agent to the SNMP Manager. |
| nx_snmp_agent_context_name_set | (NX_SNMP_AGENT *agent_ptr, UCHAR *context_name, UINT context_name_size);Set the context name of the SNMP Agent. This string must be null terminated and the size of the name must be specified. This name must be known to the SNMP Manager. Only used in SNMPv3. |
| nx_snmp_agent_create | (NX_SNMP_AGENT *agent_ptr, CHAR *snmp_agent_name, NX_IP *ip_ptr, VOID *stack_ptr, ULONG stack_size, NX_PACKET_POOL *pool_ptr,UINT (*snmp_agent_username_process)(struct NX_SNMP_AGENT_STRUCT *agent_ptr, UCHAR *username),UINT (*snmp_agent_get_process)(struct NX_SNMP_AGENT_STRUCT *agent_ptr, UCHAR *object_requested, NX_SNMP_OBJECT_DATA *object_data), UINT (*snmp_agent_getnext_process)(struct NX_SNMP_AGENT_STRUCT *agent_ptr, UCHAR *object_requested, NX_SNMP_OBJECT_DATA *object_data),UINT (*snmp_agent_set_process)(struct NX_SNMP_AGENT_STRUCT *agent_ptr, UCHAR *object_requested, NX_SNMP_OBJECT_DATA *object_data));Create the SNMP Agent and set the Agent thread task size, packet pool for transmitting SNMP messages, and user defined callbacks for handling GET, GETNEXT, SET and username requests. |
| nx_snmp_agent_current_version_get | (NX_SNMP_AGENT *agent_ptr, UINT *version);Obtain the current version of SNMP based on the last message received. |
| nx_snmp_agent_delete | (NX_SNMP_AGENT *agent_ptr);Delete the SNMP instance |
| nx_snmp_agent_md5_key_create | (NX_SNMP_AGENT *agent_ptr, UCHAR *password, NX_SNMP_SECURITY_KEY *destination_key);Create a key based on a supplied password and SNMP Agent context engine ID using the MD5 algorithm. This key can be used for authentication or encryption. |
| nx_snmp_agent_privacy_key_use | (NX_SNMP_AGENT *agent_ptr, NX_SNMP_SECURITY_KEY *key);Register a previously created security key with the SNMP Agent for encrypting and decrypting SNMPv3 messages. |
| nx_snmp_agent_priv_trap_key_use | (NX_SNMP_AGENT *agent_ptr, NX_SNMP_SECURITY_KEY *key);Register a previously created security key with the SNMP Agent for encrypting SNMPv3 trap messages. |
| nx_snmp_agent_private_string_set | (NX_SNMP_AGENT *agent_ptr, UCHAR *private_string);Register a null terminated privacy string to the SNMP Agent. Only used in SNMP1 and SNMPv2. |
| nx_snmp_agent_private_string_test | (NX_SNMP_AGENT *agent_ptr, UCHAR *community_string, UINT *is_private);The SNMP Agent compares the privacy string in a SET request with the its own privacy string to determine if the SET request will be permitted. |
| nx_snmp_agent_public_string_set | (NX_SNMP_AGENT *agent_ptr, UCHAR *public_string);Register a null terminated public string to the SNMP Agent. Only used in SNMP1 and SNMPv2. |
| nx_snmp_agent_public_string_test | (NX_SNMP_AGENT *agent_ptr, UCHAR *community_string, UINT *is_public);The SNMP Agent compares the public string in a GET or GETNEXT request with the its own public string to determine if the request will be permitted. |
| nx_snmp_agent_request_get_type_test | (NX_SNMP_AGENT *agent_ptr, UINT *is_get_type);Determine if the last SNMP packet received was a GET, GETNEXT, or GET_BULT_REQUEST request type (returns TRUE) or a SET request (returns FALSE). Intended for use in the username callback for type of request received and checking public or private strings in the request message. |
| nx_snmp_agent_set_interface | (NX_SNMP_AGENT *agent_ptr, UINT if_index);Determine on which network interface to run the SNMP Agent protocol. The default interface is the primary (0) interface. |
| nx_snmp_agent_sha_key_create | (NX_SNMP_AGENT *agent_ptr, UCHAR *password, NX_SNMP_SECURITY_KEY *destination_key);Create a key based on a supplied password and SNMP Agent context engine ID using the SHA1 algorithm. This key can be used for authentication or encryption. |
| nx_snmp_agent_start | (NX_SNMP_AGENT *agent_ptr);Start the SNMP Agent thread task. This task waits to receive SNMP messages and formulates the response to the SNMP Manager. |
| nx_snmp_agent_stop | (NX_SNMP_AGENT *agent_ptr);Stop the SNMP Agent task thread. The SNMP Agent thread can be restarted by calling the nx_snmp_agent_start API. |
| nx_snmp_agent_trap_send | (NX_SNMP_AGENT *agent_ptr, ULONG ip_address, UCHAR * username, UCHAR *enterprise, UINT trap_type, UINT trap_code, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv1. This does not result from a request from the SNMP Manager. The SNMP application sends out traps as needed. |
| nx_snmp_agent_trapv2_send | (NX_SNMP_AGENT *agent_ptr, ULONG ip_address, UCHAR *username, UINT trap_type, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv2. This does not result from a request from the SNMP Manager. The SNMP application sends out traps as needed. |
| nx_snmp_agent_trapv3_send | (NX_SNMP_AGENT *agent_ptr, ULONG ip_address, UCHAR * username, UINT trap_type, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv3. This does not result from a request from the SNMP Manager. The SNMP application sends out traps as needed. Both the SNMP agent and browser must previously agree on the security (authentication and encryption) settings. |
| nx_snmp_agent_trapv2_oid_send | (NX_SNMP_AGENT *agent_ptr, ULONG ip_address, UCHAR *username, UCHAR *oid, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv2. This differs from nx_snmp_agent_trapv2_send in that it allows the caller to specify the OID directly. |
| nx_snmp_agent_trapv3_oid_send | (NX_SNMP_AGENT *agent_ptr, ULONG ip_address, UCHAR * username, UCHAR *oid, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv3. This differs from nx_snmp_agent_trapv3_send in that it allows the caller to specify the OID directly. |
| nx_snmp_agent_v3_context_boots_set | (NX_SNMP_AGENT *agent_ptr, UINT boots);Set the number of times the SNMP Agent has rebooted since the last communication with the SNMP Manager. Used in SNMPv3 only. |
| nx_snmp_agent_version_set | (NX_SNMP_AGENT *agent_ptr, UINT enabled_v1, UINT enable_v2, UINT enable_v3);Determine which type of SNMP packets the SNMP Agent will process. The application can choose V1, V2 and/or V3. Packets received from which the SNMP Agent is not enabled are dropped. |
| **nxd_snmp_agent_trap_send | (NX_SNMP_AGENT *agent_ptr, NXD_ADDRESS *ip_address, UCHAR * username, UCHAR *enterprise, UINT trap_type, UINT trap_code, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv1 over IPv6. Note that this takes an NXD_ADDRESS* ip_address instead of ULONG ip_address. |
| **nxd _snmp_agent_trapv2_send | (NX_SNMP_AGENT *agent_ptr, NXD_ADDRESS *ip_address, UCHAR * username, UINT trap_type, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv2. Note that this takes an NXD_ADDRESS* ip_address instead of ULONG ip_address |
| **nxd _snmp_agent_trapv3_send | (NX_SNMP_AGENT *agent_ptr, NXD_ADDRESS *ip_address, UCHAR *username, UINT trap_type, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv3. Note that this takes an NXD_ADDRESS* ip_address instead of ULONG ip_address |
| nx_snmp_agent_trapv2_oid_send | (NX_SNMP_AGENT *agent_ptr, NXD_ADDRESS *ip_address,, UCHAR *username, UCHAR *oid, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv2. Note that this takes an NXD_ADDRESS* ip_address instead of ULONG ip_address |
| **nxd _snmp_agent_trapv3_oid_send | (NX_SNMP_AGENT *agent_ptr, NXD_ADDRESS *ip_address, UCHAR * username, UCHAR *oid, ULONG elapsed_time, NX_SNMP_TRAP_OBJECT *object_list_ptr);Send a trap message in SNMPv3. Note that this takes an NXD_ADDRESS* ip_address instead of ULONG ip_address |
**This API is only available in NetX Duo SNMP Agent. Please refer to the NetX Duo User Guide for the Renesas Synergy™ Platform for definition of NetX Duo specific data types.
The following API calls are for processing data items into the SNMP Agent response.
NetX/NetX Duo SNMP Agent Module API Summary (Part 2)
| Function Name | Example API Call and Description |
|---|---|
| nx_snmp_object_copy | (UCHAR *source_object_name, UCHAR *destination_object_name);This copies the string pointed to by source_object_name into the destination_object_name buffer (typically a trap message). |
| nx_snmp_object_counter_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This extracts the counter data from the location pointed to by source_ptr into the object data. Also used internally to copy internal counters of SNMPv3 statistics into error messages in SNMPv3 messages |
| nx_snmp_object_counter_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This sets the value of data extracted from the object_data into the location pointed to by the destination_ptr. |
| nx_snmp_object_counter64_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This extracts the counter data from the location pointed to by source_ptr into the object data. The difference with nx_snmp_objext_counter_get is the value is two words instead of one. |
| nx_snmp_object_counter64_set | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This sets the value of data extracted from the object_data into the location pointed to by the destination_ptr. The difference with nx_snmp_objext_counter_set is the value is two words instead of one. |
| nx_snmp_object_compare | (UCHAR *requested_object, UCHAR *reference_object);This compares the two input objects and if equal returns NX_SUCCESS. |
| nx_snmp_object_copy | (UCHAR *source_object_name, UCHAR *destination_object_name)This copies the data pointed to by the source object pointer into memory pointed to by the destination object pointer. Also used internally to copy internal counters of SNMPv3 statistics into error messages in SNMPv3 messages. |
| nx_snmp_object_end_of_mib | (VOID *not_used_ptr, NX_SNMP_OBJECT_DATA *object_data);This appends an END_OF_MIB_VIEW macro as the input object's value. This signals the end of the MIB. See the snmp_mib_helper.h for an example. |
| nx_snmp_object_gauge_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This sets the input object to type SNMP GAUGE and places the value pointed to by the source_ptr into the object value. |
| nx_snmp_object_gauge_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This verifies the input object is an SNMP GAUGE data type, and extracts the value into the location pointed to by the destination pointer. |
| nx_snmp_object_id_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This function retrieves the object ID from the specified source location and writes it into the object data value. |
| nx_snmp_object_id_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This function retrieves the ASCII string from the input object and writes it to the area pointed to by the destination pointer. |
| nx_snmp_object_integer_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the object integer from the specified source location and stores it to the object data. |
| nx_snmp_object_integer_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the integer from the input object and places it in the destination. |
| nx_snmp_object_ip_address_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the IP address from the specified source location and stores it to the object data. |
| nx_snmp_object_ip_address_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the IP address from the input object and places it in the destination. |
| **nx_snmp_object_ipv6_address_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the IPv6 address from the specified source location and stores it to the object data. |
| **nx_snmp_object_ipv6_address_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the IPv6 address from the input object and places it in the destination. |
| nx_snmp_object_octet_string_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data, UINT length);This retrieves the string data from the specified source location and stores it to the object data. |
| nx_snmp_object_octet_string_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the string from the input object and places it in the destination. |
| nx_snmp_object_no_instance | (VOID *not_used_ptr, NX_SNMP_OBJECT_DATA *object_data);This function places a no-instance value (NX_SNMP_ANS1_NO_SUCH_INSTANCE) in the object data. |
| nx_snmp_object_not_found | (VOID *not_used_ptr, NX_SNMP_OBJECT_DATA *object_data);This function places a not-found value (NX_SNMP_ANS1_NO_SUCH_OBJECT) in the object data. |
| nx_snmp_object_string_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data, UINT length);This function retrieves the ASCII string from the specified source location and stores it to the object data. |
| nx_snmp_object_string_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the ASCII string from the input object and stores it to the destination. |
| nx_snmp_object_timetics_get | (VOID *source_ptr, NX_SNMP_OBJECT_DATA *object_data);This function retrieves the data of type timer ticks from the specified source location and stores it to the object data. |
| nx_snmp_object_timetics_set | (VOID *destination_ptr, NX_SNMP_OBJECT_DATA *object_data);This retrieves the timer tick from the input object and stores it to the destination. |
**This API is only available in NetX Duo SNMP Agent. Please refer to the NetX Duo User Guide for the Renesas Synergy™ Platform for definition of NetX Duo specific data types.
Status Return Values
| Name | Description |
|---|---|
| NX_SUCCESS | API Call Successful |
| NX_PTR_ERROR* | Invalid input pointer parameter |
| NX_SNMP_UNSUPPORTED_AUTHENTICATION* | The authentication key is of an unknown or unsupported type (for example, not MD5 or SHA). |
| NX_SNMP_INVALID_PDU_ENCRYPTION* | The encryption key is of an unknown or unsupported type (for example, not MD5 or SHA). |
| NX_IP_ADDRESS_ERROR* | IP address supplied in a trap send API is null or invalid. |
| NX_SNMP_ERROR | Internal processing error e.g. not able to append data into the SNMP response. |
| NX_NOT_ENABLED | SNMP Agent is not enabled with the correct security settings for certain operations such as sending messages or processing authentication and encryption keys. |
| NX_SNMP_ERROR_TOOBIG | Data exceeds the size of the response buffer or exceed the allowable size of the parameter e.g. NX_SNMP_MAX_USER_NAME. |
| **NX_SNMP_INVALID_IP_PROTOCOL_ERROR | An IPv6 address is received in a trap send API but the NetX Duo library is not enabled for IPv6. |
The SNMP agent module makes use of the underlying NetX/NetX Duo stack to perform operations. Along with the IP stack, it makes use of the NetX MD5, NetX SHA1 and NetX DES modules for authentication and encryption in SNMP v3 operation.
The SNMP agent module can be created with the nx_snmp_agent_create API. For the implementation of the SNMP agent, the user needs to define the handler functions for username, get, getnext, and set operations.
Disabling SNMP Version 1
The SNMP Agent module can disable processing of version 1 requests by selecting Disable in the configuration properties for the SNMP Agent for SNMP Version 1. By default, this is enabled. When disabled, the SNMP Agent simply drops the packet with version 1, resulting in a timeout for the SNMP manager.
Disabling SNMP Version 2
The SNMP Agent module can disable processing of version 2 requests by selecting Disable in the configuration properties for the SNMP Agent for SNMP Version 2. By default, this is enabled. When disabled, the SNMP Agent simply drops the packet with version 2, resulting in a timeout for the SNMP manager.
Disabling SNMP Version 3
The SNMP Agent can disable processing of version 3 requests by selecting Disable in the configuration properties for the SNMP Agent for SNMP Version 3. By default, this is enabled. When disabled, the SNMP Agent simply drops the packet with version 3 resulting in a timeout for the SNMP manager. Enabling SNMP version 3 requires MD5, SHA1 authentication and DES encryption.
This section describes how to include either or both the NetX and NetX Duo SNMP Agent module in an application using the SSP configurator.
To add the NetX/NetX Duo SNMP Agent module to an application, simply add it to a thread using the stacks selection sequence given in the following table.
NetX/NetX Duo SNMP Agent Module Selection Sequence
| Resource | ISDE Tab | Stacks Selection Sequence |
|---|---|---|
| g_snmp_agent0 NetX SNMP Agent | Threads | New Stack> X-Ware> NetX> Protocols> NetX SNMP Agent |
| g_snmp_agent0 NetX Duo SNMP Agent | Threads | New Stack> X-Ware> NetX Duo> Protocols> NetX Duo SNMP Agent |
When the NetX and/or NetX Duo SNMP Agent module is added to the thread stack as shown in the following figure, the configurator automatically adds any needed lower‑level modules. Any modules needing additional configuration information have the box text highlighted in Red. Modules with a Gray band are individual modules that stand alone. Modules with a Blue band are shared or common; they need only be added once and can be used by multiple stacks. Modules with a Pink band can require the selection of lower-level modules; these are either optional or recommended. (This is indicated in the block with the inclusion of this text.) If the addition of lower-level modules is required, the module description include Add in the text. Clicking on any Pink banded modules brings up the New icon and displays possible choices.
In the stack above, the NetX Network Driver (or NetX Duo Network Driver in a NetX Duo stack) has not been populated yet. There are multiple possible selections for the Network Driver; they are not all provided so as not to needlessly complicate the figure and the following configuration tables. The available options depend on the MCU target, but some typical options include:
The NetX/NetX Duo SNMP Agent module must be configured by the user for the desired operation. The SSP configuration window automatically identifies (by highlighting the block in red) any required configuration selections, such as interrupts or operating modes, which must be configured for lower-level modules for successful operation. Only properties that can be changed without causing conflicts are available for modification. Other properties are locked and not available for changes and are identified with a lock icon for the locked property in the Properties window in the ISDE. This approach simplifies the configuration process and makes it much less error-prone than previous manual approaches to configuration. The available configuration settings and defaults for all the user-accessible properties are given in the Properties tab within the SSP Configurator and are shown in the following tables for easy reference.
Configuration Settings for the NetX/NetX Duo SNMP Agent Module
| ISDE Property | Value | Description |
|---|---|---|
| Internal thread stack size (bytes) | 4096 | Internal thread stack size selection |
| SNMP agent priority | 16 | SNMP agent priority selection |
| Type of service for SNMP responses | Normal, Minimum Delay, Maximum Delay, Maximum Reliability, Minimum Cost Default: Normal | Type of service for SNMP responses selection |
| Fragment enable for SNMP PDU requests | Fragment, Don't Fragment Default: Don't Fragment | Fragment enable for SNMP PDU requests selection |
| SNMP socket time to live | 128 | SNMP socket time to live selection |
| Agent timeout | 100 | Agent timeout selection |
| Max octet string size | 255 | Max octet string size selection |
| Max content string size | 32 | Max content string size selection |
| Max User Name Size | 64 | Max user name size selection |
| Max security Key Size | 64 | Max security key size selection |
| Minimum SNMP packet size | 560 | Minimum SNMP packet size selection (Value must be between 560 to 1500) |
| UDP port number | 161 | UDP port number selection (Value must be between 1 to 65535) |
| Trap destination port | 162 | Trap destination port selection |
| Max trap Name Size | 64 | Max trap Name Size selection |
| Max trap Key Size | 64 | Max trap Key Size selection |
| Interval between SNMP packet processing timer ticks | 100 | Interval between SNMP packet processing timer ticks selection |
| SNMP Version 1 | Enable, Disable Default: Enable | SNMP Version 1 selection |
| SNMP Version 2 | Enable, Disable Default: Enable | SNMP Version 2 selection |
| SNMP Version 3 | Enable, Disable Default: Enable | SNMP Version 3 selection |
| Name | g_snmp_agent0 | Name selection |
| Read Community String | public | Read Community String selection (Must be less than 64 chars) |
| Write Community String | private | Write Community String selection (Must be less than 64 chars) |
| Name of SNMP Username Handler | sf_snmp0_username_handler | Name of SNMP Username Handler selection |
| Name of SNMP GET Handler | sf_snmp0_get_handler | Name of SNMP GET Handler selection |
| Name of SNMP GETNEXT Handler | sf_snmp0_getnext_handler | Name of SNMP GETNEXT Handler selection |
| Name of SNMP SET Handler | sf_snmp0_set_handler | Name of SNMP SET Handler selection |
| Name of generated initialization function | snmp_agent_init0 | Name of generated initialization function selection |
| Auto Initialization | Enable, Disable Default: Enable | Auto Initialization selection |
| SNMP agent instance id | 0 | SNMP agent instance id selection |
In some cases, settings other than the defaults for stack modules can be desirable. For example, it might be useful to select different addresses for the Ethernet port. The configurable properties for the lower-level stack modules are given in the following sections for completeness and as a reference.
Note: Most of the property settings for lower-level modules are intuitive and usually can be determined by inspection of the associated properties window from the SSP configurator.
Only a small number of settings must be modified from the default for the IP layer and lower-level drivers as indicated via the red text in the thread stack block. Notice that some of the configuration properties must be set to a certain value for proper framework operation and are locked to prevent user modification. The following table identifies all the settings within the properties section for the module:
Configuration Settings for the NetX/NetX Duo IP Instance
| ISDE Property | Value | Description |
|---|---|---|
| Name | g_ip0 | Module name |
| IPv4 Address (use commas for separation) | 0,0,0,0 | IPv4 Address selection |
| Subnet Mask (use commas for separation) | 255,255,255,0 | Subnet Mask selection |
| **IPv6 Global Address (use commas for separation) | 0x2001, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1 | IPv6 global address selection |
| **IPv6 Link Local Address (use commas for separation, All zeros means use MAC address) | 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 | IPv6 link local address selection |
| IP Helper Thread Stack Size (bytes) | 2048 | IP Helper Thread Stack Size (bytes) selection |
| IP Helper Thread Priority | 3 | IP Helper Thread Priority selection |
| ARP | Enable | ARP selection |
| ARP Cache Size in Bytes | 512 | ARP Cache Size in Bytes selection |
| Reverse ARP | Enable, Disable Default: Disable | Reverse ARP selection |
| TCP | Enable, Disable Default: Enable | TCP selection |
| UDP | Enable, Disable Default: Enable | UDP selection |
| ICMP | Enable, Disable Default: Enable | ICMP selection |
| IGMP | Enable, Disable Default: Enable | IGMP selection |
| IP fragmentation | Enable, Disable Default: Disable | IP fragmentation selection |
| Name of generated initialization function | ip_init0 | Name of generated initialization function selection |
| Auto Initialization | Enable, Disable Default: Enable | Auto initialization selection |
** Indicates properties that are only available in NetX Duo.
Configuration Settings for the NetX/NetX Duo Packet Pool Instance
| ISDE Property | Value | Description |
|---|---|---|
| Name | g_packet_pool0 | Module name |
| Packet Size in Bytes | 640 | Packet size selection |
| Number of Packets in Pool | 16 | Number of packets in pool selection |
| Name of generated initialization function | packet_pool_init0 | Name of generated initialization function selection |
| Auto Initialization | Enable, Disable Default: Enable | Auto initialization selection |
Configuration Settings for the NetX/NetX Duo MD5 Instance
| ISDE Property | Value | Description |
|---|---|---|
| No configurable properties |
Configuration Settings for the NetX/NetX Duo DES Instance
| ISDE Property | Value | Description |
|---|---|---|
| No configurable properties |
Configuration Settings for the NetX/NetX Duo SHA1 Instance
| ISDE Property | Value | Description |
|---|---|---|
| No configurable properties |
Configuration Settings for the NetX/NetX Duo Common Instance
| ISDE Property | Value | Description |
|---|---|---|
| Name of generated initialization function | nx_common_init0 | Name of generated initialization function selection |
| Auto Initialization | Enable, Disable Default: Enable | Auto initialization selection |
The ETHERC peripheral module uses PCLKA as its clock source. The PCLKA frequency is set using the SSP configurator clock tab prior to a build, or by using the CGC interface at run-time.
The ETHERC peripheral module uses pins on the MCU device to communicate to external devices. I/O pins must be selected and configured by the external device as required. The following table illustrates the method for selecting the pins within the SSP configuration window and the subsequent table illustrates an example selection for the I2C pins.
Pin Selection for the ETHERC Module
| Resource | ISDE Tab | Pin selection Sequence |
|---|---|---|
| ETHERC | Pins | Select Peripherals > Connectivity:ETHERC > ETHERC1.RMII |
Pin Configuration Settings for the ETHERC1
| Property | Value | Description |
|---|---|---|
| Operation Mode | Disabled, Custom, RMII Default: Disabled | Select RMII as the Operation Mode for ETHERC1 |
| Pin Group Selection | Mixed, _A only Default: _A only | Pin group selection |
| REF50CK | P701 | REF50CK Pin |
| TXD0 | P700 | TXD0 Pin |
| TXD1 | P406 | TXD1 Pin |
| TXD_EN | P405 | TXD_EN Pin |
| RXD0 | P702 | RXD0 Pin |
| RXD1 | P703 | RXD1 Pin |
| RX_ER | P704 | RX_ER Pin |
| CRS_DV | P705 | CRS_DV Pin |
| MDC | P403 | MDC Pin |
| MDIO | P404 | MDIO Pin |
The steps in using the NetX/NetX Duo SNMP Agent module in a typical application are:
nx_snmp_agent_create APInx_snmp_agent_username_process in user codenx_snmp_agent_get_process in user codenx_snmp_agent_getnext_process in user codenx_snmp_agent_set_process in user codenx_snmp_agent_public_string_set and nx_snmp_agent_private_string_setnx_snmp_agent_md5_key_create API or the nx_snmp_agent_sha_key_create and associate the keys with authentication, encryption and trap services nx_snmp_agent_authenticate_key_use, nx_snmp_agent_privacy_key_use, nx_snmp_agent_auth_trap_key_use and nx_snmp_agent_priv_trap_key_usenx_snmp_agent_start APIThe following figure illustrates common steps in a typical operational flow diagram: