
{"id":12811,"date":"2026-03-13T08:57:03","date_gmt":"2026-03-13T08:57:03","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/?page_id=12811"},"modified":"2026-03-13T08:58:21","modified_gmt":"2026-03-13T08:58:21","slug":"dhcp-map-t-apis","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/","title":{"rendered":"DHCP MAP-T APIs"},"content":{"rendered":"\n<p>The DHCP MAP-T (Mapping of Address and Port using Translation) APIs implement RFC 7599 support for IPv4-over-IPv6 transition technology. This component processes DHCP option 95 (S46_CONT_MAPT) to configure MAP-T parameters, enabling IPv4 connectivity over IPv6-only networks through address and port mapping.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Note:<\/strong>&nbsp;Only MAP-T option parsing and parameter validation are performed within the DHCP Manager. The actual MAP-T configuration and interface setup are handled by the WAN Manager component.<\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-Architecture\">Architecture<\/h2>\n\n\n\n<p>The MAP-T implementation follows the RFC 7599 specification with comprehensive parameter processing:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   DHCPv6 Client     \u2502\u2500\u2500\u2500\u2500\u25ba\u2502   DHCP Option 95    \u2502\u2500\u2500\u2500\u2500\u25ba\u2502    MAP-T Parser     \u2502\n\u2502                     \u2502     \u2502                     \u2502     \u2502                     \u2502\n\u2502 \u2022 Option Request    \u2502     \u2502 \u2022 S46_CONT_MAPT     \u2502     \u2502 \u2022 Option Validation \u2502\n\u2502 \u2022 Server Response   \u2502     \u2502 \u2022 Nested Options    \u2502     \u2502 \u2022 Parameter Extract \u2502\n\u2502 \u2022 Raw Option Data   \u2502     \u2502 \u2022 TLV Format        \u2502     \u2502 \u2022 Rule Processing   \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n                                      \u2502\n                                      \u25bc\n\u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510     \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510\n\u2502   Configuration     \u2502\u25c4\u2500\u2500\u2500\u2500\u2502   MAP-T Processor   \u2502\u2500\u2500\u2500\u2500\u25ba\u2502   System Setup      \u2502\n\u2502                     \u2502     \u2502                     \u2502     \u2502                     \u2502\n\u2502 \u2022 Rule Parameters   \u2502     \u2502 \u2022 Rule Validation   \u2502     \u2502 \u2022 Tunnel Config     \u2502\n\u2502 \u2022 Border Relay      \u2502     \u2502 \u2022 BR Processing     \u2502     \u2502 \u2022 Routing Setup     \u2502\n\u2502 \u2022 Port Mapping      \u2502     \u2502 \u2022 Port Calculation  \u2502     \u2502 \u2022 Address Config    \u2502\n\u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518     \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-KeyComponents\">Key Components<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-Files\">Files<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Source<\/strong>:&nbsp;<code>source\/DHCPMgrUtils\/dhcpmgr_map_apis.c<\/code><\/li>\n\n\n\n<li><strong>Header<\/strong>:&nbsp;<code>source\/DHCPMgrUtils\/dhcpmgr_map_apis.h<\/code><\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-CoreFunctions\">Core Functions<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-DhcpMgr_MaptParseOpt95Response()\"><code>DhcpMgr_MaptParseOpt95Response()<\/code><\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Purpose<\/strong>: Main entry point for processing DHCP option 95 (MAP-T container)<\/li>\n\n\n\n<li><strong>Input<\/strong>: Raw DHCP option data from DHCPv6 client<\/li>\n\n\n\n<li><strong>Output<\/strong>: Parsed MAP-T configuration parameters<\/li>\n\n\n\n<li><strong>Integration<\/strong>: Called from DHCPv6 lease processing<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-MAP-TDHCPOptions\">MAP-T DHCP Options<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-OptionHierarchy(RFC7599)\">Option Hierarchy (RFC 7599)<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-Option95:S46_CONT_MAPT(MAP-TContainer)\">Option 95: S46_CONT_MAPT (MAP-T Container)<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Purpose<\/strong>: Contains all MAP-T related sub-options<\/li>\n\n\n\n<li><strong>Format<\/strong>: TLV (Type-Length-Value) container<\/li>\n\n\n\n<li><strong>Sub-options<\/strong>: Contains nested MAP-T specific options<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-DataStructures\">Data Structures<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-MainMAP-TDataStructure\">Main MAP-T Data Structure<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">typedef struct _COSA_DML_MAPT_DATA {\n    \/\/ IPv4 Configuration\n    CHAR       RuleIPv4Prefix[BUFLEN_16];     \/\/ IPv4 prefix string\n    UINT16     RuleIPv4PrefixLen;             \/\/ IPv4 prefix length\n    CHAR       IPv4AddrString[BUFLEN_16];     \/\/ Calculated IPv4 address\n    UINT32     IPv4Suffix;                    \/\/ IPv4 address suffix\n    \n    \/\/ IPv6 Configuration\n    CHAR       RuleIPv6Prefix[BUFLEN_40];     \/\/ IPv6 prefix string\n    UCHAR      RuleIPv6PrefixH[BUFLEN_24];    \/\/ IPv6 prefix (hex format)\n    UINT16     RuleIPv6PrefixLen;             \/\/ IPv6 prefix length\n    CHAR       IPv6AddrString[BUFLEN_40];     \/\/ Calculated IPv6 address\n    \n    \/\/ Border Relay Configuration\n    CHAR       BrIPv6Prefix[BUFLEN_40];       \/\/ Border Relay IPv6 address\n    UINT16     BrIPv6PrefixLen;               \/\/ BR prefix length\n    \n    \/\/ Port Mapping Parameters\n    UINT16     Psid;                          \/\/ Port Set Identifier\n    UINT16     PsidLen;                       \/\/ PSID length in bits\n    UINT32     PsidOffset;                    \/\/ PSID offset\n    UINT16     IPv4Psid;                      \/\/ Calculated IPv4 PSID\n    UINT16     IPv4PsidLen;                   \/\/ IPv4 PSID length\n    \n    \/\/ Derived Parameters\n    CHAR       PdIPv6Prefix[BUFLEN_40];       \/\/ Prefix Delegation prefix\n    UINT16     PdIPv6PrefixLen;               \/\/ PD prefix length\n    UINT16     EaLen;                         \/\/ Embedded Address length\n    UINT32     Ratio;                         \/\/ Sharing ratio\n    BOOLEAN    bFMR;                          \/\/ Forwarding Mapping Rule flag\n} COSA_DML_MAPT_DATA, *PCOSA_DML_MAPT_DATA;\n<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-DHCPOptionStructure\">DHCP Option Structure<\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">typedef struct _COSA_DML_MAPT_OPTION {\n    UINT16     OptType;                       \/\/ Option type (89, 90, 93, etc.)\n    UINT16     OptLen;                        \/\/ Option length\n} __attribute__ ((__packed__)) COSA_DML_MAPT_OPTION, *PCOSA_DML_MAPT_OPTION;\n<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-ProcessingFunctions\">Processing Functions<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-OptionParsing\">Option Parsing<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-CosaDmlMaptParseResponse(PUCHARpOptionBuf,UINT16uiOptionBufLen)\"><code>CosaDmlMaptParseResponse(PUCHAR pOptionBuf, UINT16 uiOptionBufLen)<\/code><\/h4>\n\n\n\n<p><strong>Purpose<\/strong>: Parses MAP-T container option and extracts sub-options<\/p>\n\n\n\n<p><strong>Processing Flow<\/strong>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Option Iteration<\/strong>: Walk through TLV structure<\/li>\n\n\n\n<li><strong>Type Identification<\/strong>: Identify each sub-option type<\/li>\n\n\n\n<li><strong>Length Validation<\/strong>: Verify option lengths<\/li>\n\n\n\n<li><strong>Data Extraction<\/strong>: Extract option-specific data<\/li>\n\n\n\n<li><strong>Parameter Calculation<\/strong>: Derive MAP-T parameters<\/li>\n<\/ol>\n\n\n\n<p><strong>Supported Options<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">switch (uiOption) {\n    case MAPT_OPTION_S46_RULE:      \/\/ Option 89: MAP Rule\n        \/\/ Process rule parameters\n        break;\n    case MAPT_OPTION_S46_BR:        \/\/ Option 90: Border Relay\n        \/\/ Process BR IPv6 address\n        break;\n    case MAPT_OPTION_S46_PORT_PARAMS: \/\/ Option 93: Port Parameters\n        \/\/ Process PSID parameters\n        break;\n    default:\n        \/\/ Unknown option - skip\n        break;\n}\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-CosaDmlMaptConvertStringToHexStream(PUCHARpWriteBf,PUINT16uiOptionBufLen)\"><code>CosaDmlMaptConvertStringToHexStream(PUCHAR pWriteBf, PUINT16 uiOptionBufLen)<\/code><\/h4>\n\n\n\n<p><strong>Purpose<\/strong>: Converts hex string representation to binary data<\/p>\n\n\n\n<p><strong>Input Processing<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>String Format<\/strong>: Hex string with optional quotes<\/li>\n\n\n\n<li><strong>Byte Conversion<\/strong>: Convert hex pairs to binary bytes<\/li>\n\n\n\n<li><strong>Length Calculation<\/strong>: Return actual binary length<\/li>\n<\/ul>\n\n\n\n<p><strong>Conversion Logic<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">while (*pReadBf &amp;&amp; *(pReadBf+1)) {\n    *pWriteBf = STRING_TO_HEX(*pReadBf) &lt;&lt; 4;\n    *pWriteBf |= STRING_TO_HEX(*(pReadBf+1));\n    pReadBf += 2;\n    pWriteBf++;\n    (*uiOptionBufLen)++;\n}\n<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><\/pre>\n\n\n\n<p>&nbsp;<strong>Address Calculation<\/strong><\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-CosaDmlMaptGetIPv6StringFromHex(PUCHARpIPv6AddrH,PCHARpIPv6AddrS)\"><code>CosaDmlMaptGetIPv6StringFromHex(PUCHAR pIPv6AddrH, PCHAR pIPv6AddrS)<\/code><\/h4>\n\n\n\n<p><strong>Purpose<\/strong>: Converts binary IPv6 address to string format<\/p>\n\n\n\n<p><strong>Processing<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Binary Input<\/strong>: IPv6 address in binary format<\/li>\n\n\n\n<li><strong>String Conversion<\/strong>: Use&nbsp;<code>inet_ntop()<\/code>&nbsp;for standard formatting<\/li>\n\n\n\n<li><strong>Error Handling<\/strong>: Validate conversion success<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-ParameterValidation\">Parameter Validation<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-CosaDmlMaptValidate()\"><code>CosaDmlMaptValidate()<\/code><\/h4>\n\n\n\n<p><strong>Purpose<\/strong>: Validates MAP-T parameters for consistency and correctness<\/p>\n\n\n\n<p><strong>Validation Checks<\/strong>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Prefix Lengths<\/strong>: Verify IPv4 and IPv6 prefix lengths are valid<\/li>\n\n\n\n<li><strong>EA Bits<\/strong>: Ensure Embedded Address bits are calculated correctly<\/li>\n\n\n\n<li><strong>PSID Parameters<\/strong>: Validate Port Set Identifier configuration<\/li>\n\n\n\n<li><strong>Sharing Ratio<\/strong>: Verify port sharing calculations<\/li>\n\n\n\n<li><strong>Address Ranges<\/strong>: Ensure address calculations are within valid ranges<\/li>\n<\/ol>\n\n\n\n<p><strong>Validation Formula<\/strong>:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ EA bits length calculation\nui8EaLen = ui16PdPrefixLen - ui16v6PrefixLen;\n\n\/\/ PSID length calculation\nui8PsidBitIdxLen = ui8EaLen - ui8v4BitIdxLen;\n\n\/\/ Validation checks\nif (ui8PsidBitIdxLen &lt; 0 || ui8PsidBitIdxLen > 16) {\n    return STATUS_FAILURE;\n}\n<\/pre>\n\n\n\n<pre class=\"wp-block-preformatted\"><\/pre>\n\n\n\n<p>&nbsp;MAP-T Parameter Calculation<\/p>\n\n\n\n<p><strong>Address Mapping<\/strong><\/p>\n\n\n\n<p>IPv4 Address Calculation<\/p>\n\n\n\n<p>The IPv4 address is derived from the MAP rule and user prefix:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Rule IPv4 Prefix<\/strong>: Base IPv4 prefix from MAP rule<\/li>\n\n\n\n<li><strong>EA Bits<\/strong>: Embedded Address bits from IPv6 prefix<\/li>\n\n\n\n<li><strong>Address Construction<\/strong>: Combine prefix and EA bits<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-IPv6AddressCalculation\">IPv6 Address Calculation<\/h4>\n\n\n\n<p>The IPv6 address embeds IPv4 information:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>MAP Domain Prefix<\/strong>: IPv6 prefix for MAP domain<\/li>\n\n\n\n<li><strong>Embedded IPv4<\/strong>: IPv4 address embedded in IPv6<\/li>\n\n\n\n<li><strong>PSID Embedding<\/strong>: Port Set ID embedded in IPv6<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-PortMapping\">Port Mapping<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-PSIDCalculation\">PSID Calculation<\/h4>\n\n\n\n<p>Port Set Identifier determines available port ranges:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&nbsp;<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Extract PSID from IPv6 prefix\nPSID = (EA_bits >> (32 - v4_prefix_len - PSID_len)) &amp; ((1 &lt;&lt; PSID_len) - 1);\n\n\/\/ Calculate port range\nport_range_start = (PSID &lt;&lt; (16 - PSID_len - PSID_offset)) + PSID_offset;\nport_range_size = 1 &lt;&lt; (16 - PSID_len - PSID_offset);\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-SharingRatio\">Sharing Ratio<\/h4>\n\n\n\n<p>The sharing ratio determines how many users share one IPv4 address:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sharing_ratio = 1 &lt;&lt; PSID_len;\n<\/pre>\n\n\n\n<p><br>Integration with DHCP System<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-DHCPv6OptionProcessing\">DHCPv6 Option Processing<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-OptionRequest\">Option Request<\/h4>\n\n\n\n<p>The DHCPv6 client must request MAP-T options:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Request MAP-T container option\nOPTION_S46_CONT_MAPT = 95\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-OptionReception\">Option Reception<\/h4>\n\n\n\n<p>When option 95 is received in DHCPv6 response:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Extraction<\/strong>: Extract option data from DHCPv6 response<\/li>\n\n\n\n<li><strong>Parsing<\/strong>: Call&nbsp;<code>DhcpMgr_MaptParseOpt95Response()<\/code><\/li>\n\n\n\n<li><strong>Validation<\/strong>: Validate extracted parameters<\/li>\n\n\n\n<li><strong>Configuration<\/strong>: Apply MAP-T configuration to system<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-SystemConfiguration\">System Configuration<\/h3>\n\n\n\n<p>Interface Setup<\/p>\n\n\n\n<p>MAP-T requires tunnel interface configuration:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Interface Creation<\/strong>: Create MAP-T interface<\/li>\n\n\n\n<li><strong>Address Assignment<\/strong>: Assign calculated IPv6 address<\/li>\n\n\n\n<li><strong>Route Configuration<\/strong>: Set up routing for IPv4 traffic<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-TrafficFlow\">Traffic Flow<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>IPv4 Packets<\/strong>: Application sends IPv4 packets<\/li>\n\n\n\n<li><strong>Encapsulation<\/strong>: Kernel encapsulates in IPv6<\/li>\n\n\n\n<li><strong>Transmission<\/strong>: IPv6 packets sent to Border Relay<\/li>\n\n\n\n<li><strong>Decapsulation<\/strong>: BR extracts IPv4 and forwards<\/li>\n<\/ol>\n\n\n\n<p>Error Handling<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-ValidationErrors\">Validation Errors<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-ParameterValidation.1\">Parameter Validation<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Invalid Prefixes<\/strong>: Check prefix length validity<\/li>\n\n\n\n<li><strong>EA Bit Errors<\/strong>: Verify EA bit calculations<\/li>\n\n\n\n<li><strong>PSID Errors<\/strong>: Validate PSID parameters<\/li>\n\n\n\n<li><strong>Address Conflicts<\/strong>: Check for address overlaps<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-OptionProcessingErrors\">Option Processing Errors<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Malformed Options<\/strong>: Handle corrupted option data<\/li>\n\n\n\n<li><strong>Missing Options<\/strong>: Cope with incomplete option sets<\/li>\n\n\n\n<li><strong>Length Mismatches<\/strong>: Validate option lengths<\/li>\n\n\n\n<li><strong>Unknown Options<\/strong>: Skip unsupported options<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-PerformanceConsiderations\">Performance Considerations<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-MemoryManagement\">Memory Management<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-StaticDataStructure\">Static Data Structure<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Global Structure<\/strong>: Single global MAP-T data structure<\/li>\n\n\n\n<li><strong>No Dynamic Allocation<\/strong>: Avoid malloc\/free overhead<\/li>\n\n\n\n<li><strong>Stack Variables<\/strong>: Use stack for temporary calculations<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-DebuggingandTroubleshooting\">Debugging and Troubleshooting<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-DebugFeatures\">Debug Features<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-ComprehensiveLogging\">Comprehensive Logging<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">#define MAPT_LOG_INFO(format, ...)     \\\n    CcspTraceInfo((\"%s - \"format\"\\n\", __FUNCTION__, ##__VA_ARGS__))\n#define MAPT_LOG_ERROR(format, ...)    \\\n    CcspTraceError((\"%s - \"format\"\\n\", __FUNCTION__, ##__VA_ARGS__))\n<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-ParameterDumping\">Parameter Dumping<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Option Display<\/strong>: Log received option data<\/li>\n\n\n\n<li><strong>Parameter Values<\/strong>: Display calculated parameters<\/li>\n\n\n\n<li><strong>Validation Results<\/strong>: Show validation outcomes<\/li>\n\n\n\n<li><strong>Configuration Status<\/strong>: Report setup success\/failure<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-CommonIssues\">Common Issues<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-OptionProcessingProblems\">Option Processing Problems<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Missing Options<\/strong>: Check DHCPv6 server configuration<\/li>\n\n\n\n<li><strong>Malformed Data<\/strong>: Verify option encoding<\/li>\n\n\n\n<li><strong>Length Errors<\/strong>: Check option length fields<\/li>\n\n\n\n<li><strong>Parsing Failures<\/strong>: Validate option structure<\/li>\n<\/ol>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-ParameterCalculationIssues\">Parameter Calculation Issues<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Invalid Prefixes<\/strong>: Verify prefix configurations<\/li>\n\n\n\n<li><strong>EA Bit Errors<\/strong>: Check prefix delegation settings<\/li>\n\n\n\n<li><strong>PSID Problems<\/strong>: Validate port parameter configuration<\/li>\n\n\n\n<li><strong>Address Conflicts<\/strong>: Check for overlapping ranges<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-DiagnosticTools\">Diagnostic Tools<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-OptionAnalysis\">Option Analysis<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Hex Dump<\/strong>: Display raw option data<\/li>\n\n\n\n<li><strong>Structure Parsing<\/strong>: Show TLV structure breakdown<\/li>\n\n\n\n<li><strong>Parameter Display<\/strong>: Show calculated parameters<\/li>\n\n\n\n<li><strong>Validation Results<\/strong>: Display validation outcomes<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-StandardsCompliance\">Standards Compliance<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-RFC7599Implementation\">RFC 7599 Implementation<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-MandatoryFeatures\">Mandatory Features<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Option 95<\/strong>: S46_CONT_MAPT container<\/li>\n\n\n\n<li><strong>Parameter Validation<\/strong>: RFC-compliant validation<\/li>\n\n\n\n<li><strong>Address Calculation<\/strong>: Standard address mapping<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-Interoperability\">Interoperability<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"DHCPMAPTAPIs-TestedConfigurations\">Tested Configurations<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Standard MAP-T<\/strong>: Basic MAP-T deployments<\/li>\n\n\n\n<li><strong>Provider Networks<\/strong>: Common ISP configurations<\/li>\n\n\n\n<li><strong>Border Relays<\/strong>: Various BR implementations<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>The DHCP MAP-T (Mapping of Address and Port using Translation) APIs implement RFC 7599 support [&hellip;]<\/p>\n","protected":false},"author":659,"featured_media":0,"parent":12785,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-12811","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DHCP MAP-T APIs - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DHCP MAP-T APIs - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"The DHCP MAP-T (Mapping of Address and Port using Translation) APIs implement RFC 7599 support [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-13T08:58:21+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/\",\"name\":\"DHCP MAP-T APIs - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2026-03-13T08:57:03+00:00\",\"dateModified\":\"2026-03-13T08:58:21+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Broadband\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"DHCP Client Manager\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/\"},{\"@type\":\"ListItem\",\"position\":6,\"name\":\"DHCP MAP-T APIs\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"DHCP MAP-T APIs - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/","og_locale":"en_US","og_type":"article","og_title":"DHCP MAP-T APIs - RDK Documentation Portal | Documentation","og_description":"The DHCP MAP-T (Mapping of Address and Port using Translation) APIs implement RFC 7599 support [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2026-03-13T08:58:21+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/","name":"DHCP MAP-T APIs - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2026-03-13T08:57:03+00:00","dateModified":"2026-03-13T08:58:21+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/dhcp-map-t-apis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Broadband","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"DHCP Client Manager","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/dhcp-client-manager\/"},{"@type":"ListItem","position":6,"name":"DHCP MAP-T APIs"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12811","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/659"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=12811"}],"version-history":[{"count":2,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12811\/revisions"}],"predecessor-version":[{"id":12813,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12811\/revisions\/12813"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/12785"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=12811"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}