Skip to content

Commit b9f741c

Browse files
committed
RDKBNETWOR-84: DSLite feature integration with WanManager (Wg network11 development) (#126)
* RDKBNETWOR-86 : Move Device.DSLite. datamodel implementation to WAN Manager * DSLite Data Model Migration to WAN Manager Signed-off-by: Devin Mungan <[email protected]>
1 parent 74348cf commit b9f741c

17 files changed

+1674
-7
lines changed

config/RdkWanManager_v2.xml

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
11
<?xml version="1.0" encoding="utf-8" ?>
2+
<?define FEATURE_DSLITE_V2=True?>
3+
<?define RBUS_BUILD_FLAG_ENABLE=True?>
4+
<?define RBUS_BUILD_FLAG_ENABLE=True?>
5+
<?define FEATURE_RDKB_DHCP_MANAGER=True?>
6+
<?define RBUS_BUILD_FLAG_ENABLE=True?>
7+
<?define RBUS_BUILD_FLAG_ENABLE=True?>
28
<!--
39
If not stated otherwise in this file or this component's LICENSE file the
410
following copyright and licenses apply:
@@ -1436,6 +1442,142 @@
14361442
</object>
14371443
</objects>
14381444
</object>
1445+
<?endif?>
1446+
<?ifdef FEATURE_DSLITE_V2?>
1447+
<object>
1448+
<name>DSLite</name>
1449+
<objectType>object</objectType>
1450+
<functions>
1451+
<func_GetParamBoolValue>DSLite_GetParamBoolValue</func_GetParamBoolValue>
1452+
<func_SetParamBoolValue>DSLite_SetParamBoolValue</func_SetParamBoolValue>
1453+
<func_GetParamUlongValue>DSLite_GetParamUlongValue</func_GetParamUlongValue>
1454+
</functions>
1455+
<parameters>
1456+
<parameter>
1457+
<name>Enable</name>
1458+
<type>boolean</type>
1459+
<syntax>bool</syntax>
1460+
<writable>true</writable>
1461+
</parameter>
1462+
<parameter>
1463+
<name>InterfaceSettingNumberOfEntries</name>
1464+
<type>unsignedInt</type>
1465+
<syntax>uint32</syntax>
1466+
<writable>false</writable>
1467+
</parameter>
1468+
</parameters>
1469+
<objects>
1470+
<object>
1471+
<name>InterfaceSetting</name>
1472+
<objectType>writableTable</objectType>
1473+
<maxInstance>128</maxInstance>
1474+
1475+
<functions>
1476+
<func_GetEntryCount>InterfaceSetting4_GetEntryCount</func_GetEntryCount>
1477+
<func_GetEntry>InterfaceSetting4_GetEntry</func_GetEntry>
1478+
<func_AddEntry>InterfaceSetting4_AddEntry</func_AddEntry>
1479+
<func_DelEntry>InterfaceSetting4_DelEntry</func_DelEntry>
1480+
<func_GetParamBoolValue>InterfaceSetting4_GetParamBoolValue</func_GetParamBoolValue>
1481+
<func_GetParamStringValue>InterfaceSetting4_GetParamStringValue</func_GetParamStringValue>
1482+
<func_GetParamUlongValue>InterfaceSetting4_GetParamUlongValue</func_GetParamUlongValue>
1483+
<func_SetParamBoolValue>InterfaceSetting4_SetParamBoolValue</func_SetParamBoolValue>
1484+
<func_SetParamStringValue>InterfaceSetting4_SetParamStringValue</func_SetParamStringValue>
1485+
<func_SetParamUlongValue>InterfaceSetting4_SetParamUlongValue</func_SetParamUlongValue>
1486+
<func_Validate>InterfaceSetting4_Validate</func_Validate>
1487+
<func_Commit>InterfaceSetting4_Commit</func_Commit>
1488+
<func_Rollback>InterfaceSetting4_Rollback</func_Rollback>
1489+
</functions>
1490+
1491+
<parameters>
1492+
<parameter>
1493+
<name>Enable</name>
1494+
<type>boolean</type>
1495+
<syntax>bool</syntax>
1496+
<writable>true</writable>
1497+
</parameter>
1498+
<parameter>
1499+
<name>Status</name>
1500+
<type>string: Enabled(1), Disabled(2), Error(3)</type>
1501+
<syntax>uint32/mapped</syntax>
1502+
</parameter>
1503+
<parameter>
1504+
<name>Alias</name>
1505+
<type>string(64)</type>
1506+
<syntax>string</syntax>
1507+
<writable>true</writable>
1508+
</parameter>
1509+
<parameter>
1510+
<name>EndpointAssignmentPrecedence</name>
1511+
<type>string: DHCPv6(1), Static(2)</type>
1512+
<syntax>uint32/mapped</syntax>
1513+
<writable>true</writable>
1514+
</parameter>
1515+
<parameter>
1516+
<name>EndpointAddressTypePrecedence</name>
1517+
<type>string: FQDN(1), IPv6Address(2)</type>
1518+
<syntax>uint32/mapped</syntax>
1519+
<writable>true</writable>
1520+
</parameter>
1521+
<parameter>
1522+
<name>EndpointAddressInUse</name>
1523+
<type>string(256)</type>
1524+
<syntax>string</syntax>
1525+
</parameter>
1526+
<parameter>
1527+
<name>EndpointName</name>
1528+
<type>string(256)</type>
1529+
<syntax>string</syntax>
1530+
<writable>true</writable>
1531+
</parameter>
1532+
<parameter>
1533+
<name>EndpointAddress</name>
1534+
<type>string(256)</type>
1535+
<syntax>string</syntax>
1536+
<writable>true</writable>
1537+
</parameter>
1538+
<parameter>
1539+
<name>Origin</name>
1540+
<type>string: DHCPv6(1), Static(2)</type>
1541+
<syntax>uint32/mapped</syntax>
1542+
</parameter>
1543+
<parameter>
1544+
<name>TunnelInterface</name>
1545+
<type>string(256)</type>
1546+
<syntax>string</syntax>
1547+
</parameter>
1548+
<parameter>
1549+
<name>TunneledInterface</name>
1550+
<type>string(256)</type>
1551+
<syntax>string</syntax>
1552+
</parameter>
1553+
<parameter>
1554+
<name>X_RDKCENTRAL-COM_MssClampingEnable</name>
1555+
<type>boolean</type>
1556+
<syntax>bool</syntax>
1557+
<writable>true</writable>
1558+
</parameter>
1559+
<parameter>
1560+
<name>X_RDKCENTRAL-COM_Tcpmss</name>
1561+
<type>unsignedInt</type>
1562+
<syntax>uint32</syntax>
1563+
<writable>true</writable>
1564+
</parameter>
1565+
<parameter>
1566+
<name>X_RDKCENTRAL-COM_IPv6FragEnable</name>
1567+
<type>boolean</type>
1568+
<syntax>bool</syntax>
1569+
<writable>true</writable>
1570+
</parameter>
1571+
<parameter>
1572+
<name>TunnelV4Addr</name>
1573+
<type>string(64)</type>
1574+
<syntax>string</syntax>
1575+
<writable>true</writable>
1576+
</parameter>
1577+
</parameters>
1578+
</object>
1579+
</objects>
1580+
</object>
14391581
<?endif?>
14401582
</objects>
14411583
</dataModelInfo>

configure.ac

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,18 @@ AC_ARG_ENABLE([dhcp_manager],
113113
[echo "dhcp manager is disabled"])
114114
AM_CONDITIONAL(DHCPMANAGER_ENABLED, test "x$DHCPMANAGER_SUPPORT_ENABLED" = xtrue)
115115

116+
AC_ARG_ENABLE([dslite_v2],
117+
AS_HELP_STRING([--enable-dslite-v2],[enable next generation DSLite support (default is no)]),
118+
[
119+
case "${enableval}" in
120+
yes) DSLITE_SUPPORT_ENABLED=true;;
121+
no) DSLITE_SUPPORT_ENABLED=false;;
122+
*) AC_MSG_ERROR([bad value ${enableval} for --enable-dslite-v2 ]);;
123+
esac
124+
],
125+
[echo "DSLite support is disabled"])
126+
AM_CONDITIONAL(DSLITE_SUPPORT, test "x$DSLITE_SUPPORT_ENABLED" = xtrue)
127+
116128
dnl Checks for header files.
117129
AC_CHECK_HEADERS([limits.h memory.h stdlib.h string.h sys/socket.h unistd.h])
118130

source/TR-181/include/dmsb_tr181_psm_definitions.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,9 @@
7676

7777
#define PSM_WANMANAGER_IF_VIRIF_ENABLE_MAPT "dmsb.wanmanager.if.%d.VirtualInterface.%d.EnableMAPT"
7878
#define PSM_WANMANAGER_IF_VIRIF_ENABLE_DSLITE "dmsb.wanmanager.if.%d.VirtualInterface.%d.EnableDSLite"
79-
79+
#ifdef FEATURE_DSLITE_V2
80+
#define PSM_WANMANAGER_IF_VIRIF_DSLITE_PATH "dmsb.wanmanager.if.%d.VirtualInterface.%d.DSLite.Path"
81+
#endif
8082
#define PSM_WANMANAGER_GROUP_POLICY "dmsb.wanmanager.group.%d.policy"
8183
#define PSM_WANMANAGER_WANIFCOUNT "dmsb.wanmanager.wan.interfacecount"
8284

source/TR-181/include/wanmgr_dml.h

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@ typedef enum _DEVICE_NETWORKING_MODE_
6161
MODEM_MODE
6262
} DEVICE_NETWORKING_MODE;
6363

64+
typedef enum
65+
_DML_WAN_DEVICE_MODE
66+
{
67+
DML_WAN_DEVICE_MODE_Bridge = 1,
68+
DML_WAN_DEVICE_MODE_Ipv4,
69+
DML_WAN_DEVICE_MODE_Ipv6,
70+
DML_WAN_DEVICE_MODE_Dualstack
71+
}
72+
DML_WAN_DEVICE_MODE;
73+
6474
typedef enum _DML_WAN_IFACE_OPER_STATUS
6575
{
6676
WAN_OPERSTATUS_UNKNOWN = 1,
@@ -148,9 +158,24 @@ typedef enum _DML_WAN_IFACE_MAPT_STATUS
148158
typedef enum _DML_WAN_IFACE_DSLITE_STATUS
149159
{
150160
WAN_IFACE_DSLITE_STATE_UP = 1,
151-
WAN_IFACE_DSLITE_STATE_DOWN
161+
WAN_IFACE_DSLITE_STATE_DOWN,
162+
WAN_IFACE_DSLITE_STATE_ERROR
152163
} DML_WAN_IFACE_DSLITE_STATUS;
153164

165+
#ifdef FEATURE_DSLITE_V2
166+
typedef enum _DML_WAN_DSLITE_ADDR_METHOD
167+
{
168+
DSLITE_ENDPOINT_DHCPV6 = 1,
169+
DSLITE_ENDPOINT_STATIC
170+
} DML_WAN_DSLITE_ADDR_METHOD;
171+
172+
typedef enum _DML_WAN_DSLITE_ADDR_PRECEDENCE
173+
{
174+
DSLITE_ENDPOINT_FQDN = 1,
175+
DSLITE_ENDPOINT_IPV6ADDRESS
176+
} DML_WAN_DSLITE_ADDR_PRECEDENCE;
177+
#endif
178+
154179
/** enum wan status */
155180
typedef enum _WAN_NOTIFY_ENUM
156181
{
@@ -461,6 +486,45 @@ typedef struct _DML_WANIFACE_DSLITE
461486
BOOL Changed;
462487
} DML_WANIFACE_DSLITE;
463488

489+
#ifdef FEATURE_DSLITE_V2
490+
typedef struct _DML_DSLITE_CONFIG
491+
{
492+
BOOL Enable;
493+
DML_WAN_IFACE_DSLITE_STATUS Status;
494+
CHAR Alias[BUFLEN_64]; // map to virtual interface Path
495+
DML_WAN_DSLITE_ADDR_METHOD Mode; //EndpointAssignmentPrecedence
496+
CHAR AddrFqdn[BUFLEN_256]; //EndpointName
497+
CHAR AddrIPv6[BUFLEN_256]; //EndpointAddress
498+
DML_WAN_DSLITE_ADDR_METHOD Origin;
499+
CHAR TunnelIface[BUFLEN_256];
500+
CHAR TunneledIface[BUFLEN_256];
501+
DML_WAN_DSLITE_ADDR_PRECEDENCE Type;
502+
CHAR AddrInUse[BUFLEN_256];
503+
BOOL MssClampingEnable;
504+
UINT TcpMss; // X_RDKCENTRAL-COM_Tcpmss
505+
BOOL Ipv6FragEnable; // X_RDKCENTRAL-COM_IPv6FragEnable
506+
CHAR TunnelV4Addr[BUFLEN_64];
507+
} DML_DSLITE_CONFIG;
508+
509+
typedef struct _DML_DSLITE_LIST
510+
{
511+
struct _DML_DSLITE_LIST *next;
512+
UINT InstanceNumber;
513+
BOOL New;
514+
DML_DSLITE_CONFIG PrevCfg;
515+
DML_DSLITE_CONFIG CurrCfg;
516+
} DML_DSLITE_LIST;
517+
518+
// DSLITE CONFIG
519+
typedef struct _WANMGR_DSLITE_CONFIG_DATA_
520+
{
521+
DML_DSLITE_LIST *DSLiteList;
522+
BOOL Enable;
523+
UINT InterfaceSettingNumberOfEntries;
524+
UINT NextInstanceNumber;
525+
BOOL Changed;
526+
} WanMgr_DSLite_Data_t;
527+
#endif
464528

465529
typedef struct _DML_WANIFACE_SUBSCRIBE
466530
{
@@ -673,5 +737,9 @@ typedef struct _WANMGR_DATA_ST_
673737

674738
//Iface Group
675739
WanMgr_IfaceGroup_t IfaceGroup;
740+
#ifdef FEATURE_DSLITE_V2
741+
//DSLITE CONFIG
742+
WanMgr_DSLite_Data_t DSLite;
743+
#endif
676744
} WANMGR_DATA_ST;
677745
#endif //_WANMGR_DML_H_

source/TR-181/middle_layer_src/Makefile.am

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,8 @@ libCcspWanManager_middle_layer_src_la_LDFLAGS += -lrbus
3535

3636
if DHCPMANAGER_ENABLED
3737
libCcspWanManager_middle_layer_src_la_SOURCES += wanmgr_rbus_dhcp_client_events.c
38-
endif
38+
endif
39+
40+
if DSLITE_SUPPORT
41+
libCcspWanManager_middle_layer_src_la_SOURCES += wanmgr_dml_dslite_apis.c
42+
endif

0 commit comments

Comments
 (0)