Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions config/RdkWanManager_v2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1436,6 +1436,142 @@
</object>
</objects>
</object>
<?endif?>
Copy link

Copilot AI Dec 1, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The closing <?endif?> directive appears to be misplaced. This line closes a previous conditional block, but the DSLite object definition starting at line 1440 opens a new <?ifdef FEATURE_DSLITE_V2?> block. Verify that this closing directive belongs here or should be moved after the DSLite object definition ends at line 1574.

Copilot uses AI. Check for mistakes.
<?ifdef FEATURE_DSLITE_V2?>
<object>
<name>DSLite</name>
<objectType>object</objectType>
<functions>
<func_GetParamBoolValue>DSLite_GetParamBoolValue</func_GetParamBoolValue>
<func_SetParamBoolValue>DSLite_SetParamBoolValue</func_SetParamBoolValue>
<func_GetParamUlongValue>DSLite_GetParamUlongValue</func_GetParamUlongValue>
</functions>
<parameters>
<parameter>
<name>Enable</name>
<type>boolean</type>
<syntax>bool</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>InterfaceSettingNumberOfEntries</name>
<type>unsignedInt</type>
<syntax>uint32</syntax>
<writable>false</writable>
</parameter>
</parameters>
<objects>
<object>
<name>InterfaceSetting</name>
<objectType>writableTable</objectType>
<maxInstance>128</maxInstance>

<functions>
<func_GetEntryCount>InterfaceSetting4_GetEntryCount</func_GetEntryCount>
<func_GetEntry>InterfaceSetting4_GetEntry</func_GetEntry>
<func_AddEntry>InterfaceSetting4_AddEntry</func_AddEntry>
<func_DelEntry>InterfaceSetting4_DelEntry</func_DelEntry>
<func_GetParamBoolValue>InterfaceSetting4_GetParamBoolValue</func_GetParamBoolValue>
<func_GetParamStringValue>InterfaceSetting4_GetParamStringValue</func_GetParamStringValue>
<func_GetParamUlongValue>InterfaceSetting4_GetParamUlongValue</func_GetParamUlongValue>
<func_SetParamBoolValue>InterfaceSetting4_SetParamBoolValue</func_SetParamBoolValue>
<func_SetParamStringValue>InterfaceSetting4_SetParamStringValue</func_SetParamStringValue>
<func_SetParamUlongValue>InterfaceSetting4_SetParamUlongValue</func_SetParamUlongValue>
<func_Validate>InterfaceSetting4_Validate</func_Validate>
<func_Commit>InterfaceSetting4_Commit</func_Commit>
<func_Rollback>InterfaceSetting4_Rollback</func_Rollback>
</functions>

<parameters>
<parameter>
<name>Enable</name>
<type>boolean</type>
<syntax>bool</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>Status</name>
<type>string: Enabled(1), Disabled(2), Error(3)</type>
<syntax>uint32/mapped</syntax>
</parameter>
<parameter>
<name>Alias</name>
<type>string(64)</type>
<syntax>string</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>EndpointAssignmentPrecedence</name>
<type>string: DHCPv6(1), Static(2)</type>
<syntax>uint32/mapped</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>EndpointAddressTypePrecedence</name>
<type>string: FQDN(1), IPv6Address(2)</type>
<syntax>uint32/mapped</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>EndpointAddressInUse</name>
<type>string(256)</type>
<syntax>string</syntax>
</parameter>
<parameter>
<name>EndpointName</name>
<type>string(256)</type>
<syntax>string</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>EndpointAddress</name>
<type>string(256)</type>
<syntax>string</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>Origin</name>
<type>string: DHCPv6(1), Static(2)</type>
<syntax>uint32/mapped</syntax>
</parameter>
<parameter>
<name>TunnelInterface</name>
<type>string(256)</type>
<syntax>string</syntax>
</parameter>
<parameter>
<name>TunneledInterface</name>
<type>string(256)</type>
<syntax>string</syntax>
</parameter>
<parameter>
<name>X_RDKCENTRAL-COM_MssClampingEnable</name>
<type>boolean</type>
<syntax>bool</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>X_RDKCENTRAL-COM_Tcpmss</name>
<type>unsignedInt</type>
<syntax>uint32</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>X_RDKCENTRAL-COM_IPv6FragEnable</name>
<type>boolean</type>
<syntax>bool</syntax>
<writable>true</writable>
</parameter>
<parameter>
<name>TunnelV4Addr</name>
<type>string(64)</type>
<syntax>string</syntax>
<writable>true</writable>
</parameter>
</parameters>
</object>
</objects>
</object>
<?endif?>
</objects>
</dataModelInfo>
12 changes: 12 additions & 0 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,18 @@ AC_ARG_ENABLE([dhcp_manager],
[echo "dhcp manager is disabled"])
AM_CONDITIONAL(DHCPMANAGER_ENABLED, test "x$DHCPMANAGER_SUPPORT_ENABLED" = xtrue)

AC_ARG_ENABLE([dslite_v2],
AS_HELP_STRING([--enable-dslite-v2],[enable next generation DSLite support (default is no)]),
[
case "${enableval}" in
yes) DSLITE_SUPPORT_ENABLED=true;;
no) DSLITE_SUPPORT_ENABLED=false;;
*) AC_MSG_ERROR([bad value ${enableval} for --enable-dslite-v2 ]);;
esac
],
[echo "DSLite support is disabled"])
AM_CONDITIONAL(DSLITE_SUPPORT, test "x$DSLITE_SUPPORT_ENABLED" = xtrue)

dnl Checks for header files.
AC_CHECK_HEADERS([limits.h memory.h stdlib.h string.h sys/socket.h unistd.h])

Expand Down
4 changes: 3 additions & 1 deletion source/TR-181/include/dmsb_tr181_psm_definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,9 @@

#define PSM_WANMANAGER_IF_VIRIF_ENABLE_MAPT "dmsb.wanmanager.if.%d.VirtualInterface.%d.EnableMAPT"
#define PSM_WANMANAGER_IF_VIRIF_ENABLE_DSLITE "dmsb.wanmanager.if.%d.VirtualInterface.%d.EnableDSLite"

#ifdef FEATURE_DSLITE_V2
#define PSM_WANMANAGER_IF_VIRIF_DSLITE_PATH "dmsb.wanmanager.if.%d.VirtualInterface.%d.DSLite.Path"
#endif
#define PSM_WANMANAGER_GROUP_POLICY "dmsb.wanmanager.group.%d.policy"
#define PSM_WANMANAGER_WANIFCOUNT "dmsb.wanmanager.wan.interfacecount"

Expand Down
74 changes: 73 additions & 1 deletion source/TR-181/include/wanmgr_dml.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,16 @@ typedef enum _DEVICE_NETWORKING_MODE_
MODEM_MODE
} DEVICE_NETWORKING_MODE;

typedef enum
_DML_WAN_DEVICE_MODE
{
DML_WAN_DEVICE_MODE_Bridge = 1,
DML_WAN_DEVICE_MODE_Ipv4,
DML_WAN_DEVICE_MODE_Ipv6,
DML_WAN_DEVICE_MODE_Dualstack
}
DML_WAN_DEVICE_MODE;

typedef enum _DML_WAN_IFACE_OPER_STATUS
{
WAN_OPERSTATUS_UNKNOWN = 1,
Expand Down Expand Up @@ -148,9 +158,24 @@ typedef enum _DML_WAN_IFACE_MAPT_STATUS
typedef enum _DML_WAN_IFACE_DSLITE_STATUS
{
WAN_IFACE_DSLITE_STATE_UP = 1,
WAN_IFACE_DSLITE_STATE_DOWN
WAN_IFACE_DSLITE_STATE_DOWN,
WAN_IFACE_DSLITE_STATE_ERROR
} DML_WAN_IFACE_DSLITE_STATUS;

#ifdef FEATURE_DSLITE_V2
typedef enum _DML_WAN_DSLITE_ADDR_METHOD
{
DSLITE_ENDPOINT_DHCPV6 = 1,
DSLITE_ENDPOINT_STATIC
} DML_WAN_DSLITE_ADDR_METHOD;

typedef enum _DML_WAN_DSLITE_ADDR_PRECEDENCE
{
DSLITE_ENDPOINT_FQDN = 1,
DSLITE_ENDPOINT_IPV6ADDRESS
} DML_WAN_DSLITE_ADDR_PRECEDENCE;
#endif

/** enum wan status */
typedef enum _WAN_NOTIFY_ENUM
{
Expand Down Expand Up @@ -364,6 +389,9 @@ typedef struct _WANMGR_IPV6_DATA
uint32_t prefixCmd;
bool domainNameAssigned; /**< Have we been assigned dns server addresses ? */
#endif
#ifdef FEATURE_DSLITE_V2
char endpointName[BUFLEN_256];
#endif
} WANMGR_IPV6_DATA;

typedef struct _WANMGR_IPV6_RA_DATA
Expand Down Expand Up @@ -461,6 +489,45 @@ typedef struct _DML_WANIFACE_DSLITE
BOOL Changed;
} DML_WANIFACE_DSLITE;

#ifdef FEATURE_DSLITE_V2
typedef struct _DML_DSLITE_CONFIG
{
BOOL Enable;
DML_WAN_IFACE_DSLITE_STATUS Status;
CHAR Alias[BUFLEN_64]; // map to virtual interface Path
DML_WAN_DSLITE_ADDR_METHOD Mode; //EndpointAssignmentPrecedence
CHAR EndpointName[BUFLEN_256];
CHAR EndpointAddr[BUFLEN_256];
DML_WAN_DSLITE_ADDR_METHOD Origin;
CHAR TunnelIface[BUFLEN_256];
CHAR TunneledIface[BUFLEN_256];
DML_WAN_DSLITE_ADDR_PRECEDENCE Type;
CHAR AddrInUse[BUFLEN_256];
BOOL MssClampingEnable;
UINT TcpMss; // X_RDKCENTRAL-COM_Tcpmss
BOOL Ipv6FragEnable; // X_RDKCENTRAL-COM_IPv6FragEnable
CHAR TunnelV4Addr[BUFLEN_64];
} DML_DSLITE_CONFIG;

typedef struct _DML_DSLITE_LIST
{
struct _DML_DSLITE_LIST *next;
UINT InstanceNumber;
BOOL New;
DML_DSLITE_CONFIG PrevCfg;
DML_DSLITE_CONFIG CurrCfg;
} DML_DSLITE_LIST;

// DSLITE CONFIG
typedef struct _WANMGR_DSLITE_CONFIG_DATA_
{
DML_DSLITE_LIST *DSLiteList;
BOOL Enable;
UINT InterfaceSettingNumberOfEntries;
UINT NextInstanceNumber;
BOOL Changed;
} WanMgr_DSLite_Data_t;
#endif

typedef struct _DML_WANIFACE_SUBSCRIBE
{
Expand All @@ -483,6 +550,7 @@ typedef enum
WAN_STATE_IPV6_LEASED,
WAN_STATE_DUAL_STACK_ACTIVE,
WAN_STATE_MAPT_ACTIVE,
WAN_STATE_DSLITE_ACTIVE,
WAN_STATE_REFRESHING_WAN,
WAN_STATE_DECONFIGURING_WAN,
WAN_STATE_STANDBY
Expand Down Expand Up @@ -673,5 +741,9 @@ typedef struct _WANMGR_DATA_ST_

//Iface Group
WanMgr_IfaceGroup_t IfaceGroup;
#ifdef FEATURE_DSLITE_V2
//DSLITE CONFIG
WanMgr_DSLite_Data_t DSLite;
#endif
} WANMGR_DATA_ST;
#endif //_WANMGR_DML_H_
6 changes: 5 additions & 1 deletion source/TR-181/middle_layer_src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -35,4 +35,8 @@ libCcspWanManager_middle_layer_src_la_LDFLAGS += -lrbus

if DHCPMANAGER_ENABLED
libCcspWanManager_middle_layer_src_la_SOURCES += wanmgr_rbus_dhcp_client_events.c
endif
endif

if DSLITE_SUPPORT
libCcspWanManager_middle_layer_src_la_SOURCES += wanmgr_dml_dslite_apis.c
endif
Loading