Skip to content
Open
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
140 changes: 140 additions & 0 deletions config/RdkWanManager_v2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -414,7 +414,11 @@
<name>EnableDSLite</name>
<type>boolean</type>
<syntax>bool</syntax>
<?ifdef FEATURE_DSLITE_V2?>
<writable>false</writable>
Comment thread
devinmungan marked this conversation as resolved.
<?else?>
<writable>true</writable>
<?endif?>
</parameter>
<parameter>
<name>EnableIPoEHealthCheck</name>
Expand Down Expand Up @@ -1767,5 +1771,141 @@
</object>
</objects>
</object>
<?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>
Comment thread
devinmungan marked this conversation as resolved.
<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
3 changes: 3 additions & 0 deletions source/TR-181/include/dmsb_tr181_psm_definitions.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +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
77 changes: 76 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
Comment thread
devinmungan marked this conversation as resolved.
{
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 @@ -155,9 +165,24 @@ typedef enum _DML_WAN_IFACE_MAPE_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 @@ -374,6 +399,9 @@ typedef struct _WANMGR_IPV6_DATA
uint32_t prefixCmd;
bool domainNameAssigned; /**< Have we been assigned dns server addresses ? */
#endif
#ifdef FEATURE_DSLITE_V2
char aftr[BUFLEN_256];
#endif
} WANMGR_IPV6_DATA;

typedef struct _WANMGR_IPV6_RA_DATA
Expand Down Expand Up @@ -470,8 +498,50 @@ typedef struct _DML_WANIFACE_DSLITE
CHAR Path[BUFLEN_64];
DML_WAN_IFACE_DSLITE_STATUS Status;
BOOL Changed;
struct timespec LastRetryTime;
} 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; // EndpointAddressTypePrecedence
CHAR AddrInUse[BUFLEN_256]; // Resolved AFTR IPv6 address currently in use
BOOL MssClampingEnable;
UINT TcpMss; // X_RDKCENTRAL-COM_Tcpmss
BOOL Ipv6FragEnable; // X_RDKCENTRAL-COM_IPv6FragEnable
CHAR TunnelV4Addr[BUFLEN_64]; // X_RDKCENTRAL-COM_TunnelV4Addr
struct timespec DnsResolveTime; // Timestamp when DNS resolution occurred
UINT DnsTtl; // DNS TTL value in seconds
} 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 @@ -494,6 +564,7 @@ typedef enum
WAN_STATE_IPV6_LEASED,
WAN_STATE_DUAL_STACK_ACTIVE,
WAN_STATE_MAP_ACTIVE,
WAN_STATE_DSLITE_ACTIVE,
WAN_STATE_REFRESHING_WAN,
WAN_STATE_DECONFIGURING_WAN,
WAN_STATE_STANDBY
Expand Down Expand Up @@ -793,5 +864,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