diff --git a/home0/inserts/bin/099_home0_start_tr064.sh b/home0/inserts/bin/099_home0_start_tr064.sh
index e77974b..e125d16 100755
--- a/home0/inserts/bin/099_home0_start_tr064.sh
+++ b/home0/inserts/bin/099_home0_start_tr064.sh
@@ -4,7 +4,10 @@
sed -i 's/listen(port/listen(port, "0.0.0.0"/g' /usr/local/lib/node_modules/mockserver/bin/mockserver.js
# Accept connections to the TR-064 mock server
+iptables -I INPUT 1 -p tcp --dport 5438 -j ACCEPT
+iptables -I INPUT 1 -p tcp --dport 37215 -j ACCEPT
iptables -I INPUT 1 -p tcp --dport 49000 -j ACCEPT
+iptables -I INPUT 1 -p tcp --dport 49001 -j ACCEPT
# start TR-064 moc server
cd /opt
diff --git a/home0/inserts/tr064/mockserver/SOAP.request b/home0/inserts/tr064/mockserver/SOAP_GetParameterValues.request
similarity index 100%
rename from home0/inserts/tr064/mockserver/SOAP.request
rename to home0/inserts/tr064/mockserver/SOAP_GetParameterValues.request
diff --git a/home0/inserts/tr064/mockserver/SOAP_GetSupportedDataModels.request b/home0/inserts/tr064/mockserver/SOAP_GetSupportedDataModels.request
new file mode 100644
index 0000000..d77e70c
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/SOAP_GetSupportedDataModels.request
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/SOAP_GetSupportedParameters.request b/home0/inserts/tr064/mockserver/SOAP_GetSupportedParameters.request
new file mode 100644
index 0000000..b81dc92
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/SOAP_GetSupportedParameters.request
@@ -0,0 +1 @@
+/BBF/DSL/Line/#//BBF/DSL/Channel/#/0
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/SOAP_GetValues.request b/home0/inserts/tr064/mockserver/SOAP_GetValues.request
new file mode 100644
index 0000000..2171242
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/SOAP_GetValues.request
@@ -0,0 +1 @@
+/BBF/DSL/Line/#//BBF/DSL/Channel/#/
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/TR181.200 b/home0/inserts/tr064/mockserver/TR181_GetParameterValues.200
similarity index 99%
rename from home0/inserts/tr064/mockserver/TR181.200
rename to home0/inserts/tr064/mockserver/TR181_GetParameterValues.200
index 28ec328..0dec0a6 100644
--- a/home0/inserts/tr064/mockserver/TR181.200
+++ b/home0/inserts/tr064/mockserver/TR181_GetParameterValues.200
@@ -2,7 +2,7 @@ HTTP/1.1 200 OK
SERVER: [MOCKED_SERVER]
CACHE-CONTROL: max-age=1800
CONTENT-TYPE: text/xml; charset=utf-8
-CONTENT-LENGTH: [MOCKED_length]
+CONTENT-LENGTH: [CALC_LEN]
diff --git a/home0/inserts/tr064/mockserver/TR181.500 b/home0/inserts/tr064/mockserver/TR181_GetParameterValues.500
similarity index 94%
rename from home0/inserts/tr064/mockserver/TR181.500
rename to home0/inserts/tr064/mockserver/TR181_GetParameterValues.500
index 2158b8b..decdc8d 100644
--- a/home0/inserts/tr064/mockserver/TR181.500
+++ b/home0/inserts/tr064/mockserver/TR181_GetParameterValues.500
@@ -1,7 +1,7 @@
HTTP/1.1 500 Internal Server Error
SERVER: [MOCKED_SERVER]
CONNECTION: close
-CONTENT-LENGTH: [MOCKED_length]
+CONTENT-LENGTH: [CALC_LEN]
CONTENT-TYPE: text/xml; charset="utf-8"
diff --git a/home0/inserts/tr064/mockserver/TR181_GetSupportedDataModels.200 b/home0/inserts/tr064/mockserver/TR181_GetSupportedDataModels.200
new file mode 100644
index 0000000..be1541e
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/TR181_GetSupportedDataModels.200
@@ -0,0 +1,35 @@
+HTTP/1.1 200 OK
+SERVER: [MOCKED_SERVER]
+CACHE-CONTROL: max-age=1800
+CONTENT-TYPE: text/xml; charset=utf-8
+CONTENT-LENGTH: [CALC_LEN]
+TRANSFER-ENCODING: [MOCKED_ENCODING]
+
+
+
+
+
+
+
+ urn:UPnP:Parent Device:1:ConfigurationManagement:2
+ /UPnP/DM/Configuration/
+ UPnP Manageable Device common objects for CMS
+
+
+ urn:broadband-forum-org:tr-181-2-0
+ /BBF/
+ https://cwmp-data-models.broadband-forum.org/tr-181-2-0-0.xml
+ TR-181
+
+
+ urn:broadband-forum-org:tr-135-1-0-0
+ /BBF/STBService/
+ http://www.example.com/upnp/stb/bbf-stb-1-0.xml
+ TR-135 STBService Object
+
+
+
+
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/TR181_GetSupportedDataModels.500 b/home0/inserts/tr064/mockserver/TR181_GetSupportedDataModels.500
new file mode 100644
index 0000000..4abcc9b
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/TR181_GetSupportedDataModels.500
@@ -0,0 +1,22 @@
+HTTP/1.1 500 Internal Server Error
+SERVER: [MOCKED_SERVER]
+CONNECTION: close
+CONTENT-LENGTH: [CALC_LEN]
+CONTENT-TYPE: text/xml; charset="utf-8"
+
+
+
+
+ s:Client
+ UPnPError
+
+
+ 401
+ Invalid Action
+
+
+
+
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/TR181_GetSupportedParameters.200 b/home0/inserts/tr064/mockserver/TR181_GetSupportedParameters.200
new file mode 100644
index 0000000..ab2bde3
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/TR181_GetSupportedParameters.200
@@ -0,0 +1,77 @@
+HTTP/1.1 200 OK
+SERVER: [MOCKED_SERVER]
+CACHE-CONTROL: max-age=1800
+CONTENT-TYPE: text/xml; charset=utf-8
+CONTENT-LENGTH: [CALC_LEN]
+TRANSFER-ENCODING: [MOCKED_ENCODING]
+
+
+
+
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/SNRGds
+
+
+ /BBF/DSL/Line/0/TestParams/SNRGus
+
+
+ /BBF/DSL/Line/0/TestParams/SNRpsds
+
+
+ /BBF/DSL/Line/0/TestParams/SNRpsus
+
+
+ /BBF/DSL/Line/0/TestParams/SNRMTds
+
+
+ /BBF/DSL/Line/0/TestParams/SNRMTus
+
+
+ /BBF/DSL/Line/0/TestParams/LATNds
+
+
+ /BBF/DSL/Line/0/TestParams/LATNus
+
+
+ /BBF/DSL/Channel/0/Stats/Total/XTURFECErrors
+
+
+ /BBF/DSL/Channel/0/Stats/Total/XTURCRCErrors
+
+
+ /BBF/DSL/Line/0/LinkStatus
+
+
+ /BBF/DSL/Line/0/StandardUsed
+
+
+ /BBF/DSL/Line/0/CurrentProfile
+
+
+ /BBF/DSL/Line/0/DownstreamMaxBitRate
+
+
+ /BBF/DSL/Line/0/UpstreamMaxBitRate
+
+
+ /BBF/DSL/Line/0/DownstreamNoiseMargin
+
+
+ /BBF/DSL/Line/0/UpstreamNoiseMargin
+
+
+ /BBF/DSL/Channel/0/DownstreamCurrRate
+
+
+ /BBF/DSL/Channel/0/UpstreamCurrRate
+
+
+
+
+
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/TR181_GetSupportedParameters.500 b/home0/inserts/tr064/mockserver/TR181_GetSupportedParameters.500
new file mode 100644
index 0000000..4abcc9b
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/TR181_GetSupportedParameters.500
@@ -0,0 +1,22 @@
+HTTP/1.1 500 Internal Server Error
+SERVER: [MOCKED_SERVER]
+CONNECTION: close
+CONTENT-LENGTH: [CALC_LEN]
+CONTENT-TYPE: text/xml; charset="utf-8"
+
+
+
+
+ s:Client
+ UPnPError
+
+
+ 401
+ Invalid Action
+
+
+
+
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/TR181_GetValues.200 b/home0/inserts/tr064/mockserver/TR181_GetValues.200
new file mode 100644
index 0000000..494d990
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/TR181_GetValues.200
@@ -0,0 +1,172 @@
+HTTP/1.1 200 OK
+SERVER: [MOCKED_SERVER]
+CACHE-CONTROL: max-age=1800
+CONTENT-TYPE: text/xml; charset=utf-8
+CONTENT-LENGTH: [CALC_LEN]
+TRANSFER-ENCODING: [MOCKED_ENCODING]
+
+
+
+
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/SNRGds
+
+
+ [MOCKED_SNRGds]
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/SNRGus
+
+
+ [MOCKED_SNRGus]
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/SNRpsds
+
+
+ [MOCKED_SNRpsds]
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/SNRpsus
+
+
+ [MOCKED_SNRpsus]
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/SNRMTds
+
+
+ [MOCKED_SNRMTds]
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/SNRMTus
+
+
+ [MOCKED_SNRMTus]
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/LATNds
+
+
+ [MOCKED_LATNds]
+
+
+
+
+ /BBF/DSL/Line/0/TestParams/LATNus
+
+
+ [MOCKED_LATNus]
+
+
+
+
+ /BBF/DSL/Channel/0/Stats.Total.XTURFECErrors
+
+
+ [MOCKED_FECErrors]
+
+
+
+
+ /BBF/DSL/Channel/0/Stats.Total.XTURCRCErrors
+
+
+ [MOCKED_CRCErrors]
+
+
+
+
+ /BBF/DSL/Line/0/LinkStatus
+
+
+ [MOCKED_LinkStatus]
+
+
+
+
+ /BBF/DSL/Line/0/StandardUsed
+
+
+ [MOCKED_StandardUsed]
+
+
+
+
+ /BBF/DSL/Line/0/CurrentProfile
+
+
+ [MOCKED_CurrentProfile]
+
+
+
+
+ /BBF/DSL/Line/0/DownstreamMaxBitRate
+
+
+ [MOCKED_DownstreamMaxBitRate]
+
+
+
+
+ /BBF/DSL/Line/0/UpstreamMaxBitRate
+
+
+ [MOCKED_UpstreamMaxBitRate]
+
+
+
+
+ /BBF/DSL/Line/0/DownstreamNoiseMargin
+
+
+ [MOCKED_DownstreamNoiseMargin]
+
+
+
+
+ /BBF/DSL/Line/0/UpstreamNoiseMargin
+
+
+ [MOCKED_UpstreamNoiseMargin]
+
+
+
+
+ /BBF/DSL/Channel/0/DownstreamCurrRate
+
+
+ [MOCKED_DownstreamCurrRate]
+
+
+
+
+ /BBF/DSL/Channel/0/UpstreamCurrRate
+
+
+ [MOCKED_UpstreamCurrRate]
+
+
+
+
+
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/TR181_GetValues.500 b/home0/inserts/tr064/mockserver/TR181_GetValues.500
new file mode 100644
index 0000000..4abcc9b
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/TR181_GetValues.500
@@ -0,0 +1,22 @@
+HTTP/1.1 500 Internal Server Error
+SERVER: [MOCKED_SERVER]
+CONNECTION: close
+CONTENT-LENGTH: [CALC_LEN]
+CONTENT-TYPE: text/xml; charset="utf-8"
+
+
+
+
+ s:Client
+ UPnPError
+
+
+ 401
+ Invalid Action
+
+
+
+
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/mockserver/create_mocks.sh b/home0/inserts/tr064/mockserver/create_mocks.sh
index 96a00b5..01bef02 100755
--- a/home0/inserts/tr064/mockserver/create_mocks.sh
+++ b/home0/inserts/tr064/mockserver/create_mocks.sh
@@ -1,6 +1,5 @@
#!/bin/sh
-TOP_DIR="$(pwd)"
DATA_DIR="default"
#set -x
VERBOSE="no"
@@ -23,10 +22,13 @@ show_help() {
echo " * TR181"
echo " * DATASET_SP_17a"
echo ""
- echo " DEVICE_SpeedportSmart3 (profile 17a) \\"
- echo " DEVICE_Fritz7590 (profile 30a) }-> mocking this device"
- echo " DEVICE_Fritz7490 (profile 17a) /"
- echo " DEVICE_Fritz7490_without_support /"
+ echo " DEVICE_SpeedportSmart3 (profile 17a) \\"
+ echo " DEVICE_Fritz7590 (profile 30a) \\"
+ echo " DEVICE_Fritz7490 (profile 17a) }-> mocking this device"
+ echo " DEVICE_Fritz7490_without_support /"
+ echo " DEVICE_GenericRouter /"
+ echo " DEVICE_GenericRouterChunked /"
+ echo " CHUNKED -> Transfer-Encoding: chunked"
echo " TR181 -> responding to GetParameterValues for"
echo " Device.DSL.Line.1.TestParams. with 200 and data"
echo " TR098 -> responding to X_GENERIC_GetVDSLInfo with"
@@ -44,230 +46,345 @@ show_help() {
echo ""
}
-generate_mock() {
- ADD_PREFIX="${1}"
- REQUEST="${2}"
- RESPONSE="${3}"
+copy_mocks() {
+ if [ -f "/opt/${DATA_DIR}/XML_FILES" ]; then
+ XML_FILES=$(cat "/opt/${DATA_DIR}/XML_FILES")
+ for FILE in $XML_FILES; do
+ if [ -f "/opt/$FILE" ]; then
+ local IP=$(cat "/opt/MOCK_IP_ADDRESS")
+ local PORT=$(cat "/opt/${DATA_DIR}/PORT")
+ local URL_PATH=$(cat "/opt/${DATA_DIR}/PATH")
+ cp "/opt/$FILE" "/opt/$FILE.work"
+ sed -i "s#\[MOCKED_IP\]#${IP}#g" "/opt/$FILE.work"
+ sed -i "s#\[MOCKED_PORT\]#${PORT}#g" "/opt/$FILE.work"
+ sed -i "s#\[MOCKED_PATH\]#${URL_PATH}#g" "/opt/$FILE.work"
+ local LEN=$(stat --format=%s "/opt/$FILE".work)
+ mkdir -p "/opt/mocks/$FILE"
+ if [ -f "/opt/${DATA_DIR}/ENCODING" ]; then
+ local ENCODING=$(cat "/opt/${DATA_DIR}/ENCODING")
+ echo -e "HTTP/1.1 200 OK\r\nConnection: Close\r\nTransfer-Encoding: ${ENCODING}\r\nContent-Type: text/xml\r\n\r" > "/opt/mocks/$FILE/GET.mock"
+ else
+ echo -e "HTTP/1.1 200 OK\r\nConnection: Close\r\nContent-Length: ${LEN}\r\nContent-Type: text/xml\r\n\r" > "/opt/mocks/$FILE/GET.mock"
+ fi
+ cat "/opt/$FILE.work" >> "/opt/mocks/$FILE/GET.mock"
+ rm "/opt/$FILE.work"
+ else
+ echo "File $FILE is not available."
+ fi
+ done
+ fi
+}
- # generate mocks in the directory mocks
- mkdir -p mocks && cd mocks
+generate_mock() {
+ local ADD_PREFIX="$1"
+ local REQUEST="$2"
+ local RESPONSE="$3"
+ # generate mocks in the directory mocks
+ mkdir -p mocks
+ cd mocks
- #generate the directory structure for the mock
- export IFS="/"
- CURRENT_STEP=""
- TO_CREATE=""
- for PART in ${REQUEST}; do
- if [ "${PART}" = "" ]; then
- continue;
- else
- CURRENT_STEP="${ADD_PREFIX}${PART}"
- ADD_PREFIX=""
- fi
+ #generate the directory structure for the mock
+ export IFS="/"
+ local CURRENT_STEP=""
+ local TO_CREATE=""
+ for PART in ${REQUEST}; do
+ if [ "${PART}" = "" ]; then
+ continue;
+ else
+ CURRENT_STEP="${ADD_PREFIX}${PART}"
+ ADD_PREFIX=""
+ fi
- if [ "${TO_CREATE}" = "" ]; then
- TO_CREATE="${CURRENT_STEP}"
- else
- mkdir "${TO_CREATE}"
- cd "${TO_CREATE}"
- TO_CREATE="${CURRENT_STEP}"
- fi
+ if [ "${TO_CREATE}" = "" ]; then
+ TO_CREATE="${CURRENT_STEP}"
+ else
+ mkdir -p "${TO_CREATE}"
+ cd "${TO_CREATE}"
+ TO_CREATE="${CURRENT_STEP}"
+ fi
done
#copy the response to be mocked to the mock
cp "${RESPONSE}" "${TO_CREATE}.mock"
- cd "${TOP_DIR}"
+ cd "/opt"
}
generate_response() {
- IN_FILE="${1}"
- OUT_FILE="${2}"
- rm -f "${OUT_FILE}"
- cp "${IN_FILE}" "${OUT_FILE}"
- for FILE in ${TOP_DIR}/${DATA_DIR}/*; do
- MOCK_NAME=$(basename "${FILE}")
- MOCKED_DATA_CONTENT="$(cat ${TOP_DIR}/${DATA_DIR}/${MOCK_NAME})"
- sed -i "s#\[MOCKED_${MOCK_NAME}\]#${MOCKED_DATA_CONTENT}#g" "${OUT_FILE}" || echo "Can not mock ${MOCK_NAME} in ${OUT_FILE} ..."
- done
+ local IN_FILE="$1"
+ local OUT_FILE="$2"
+ rm -f "${OUT_FILE}"
+ cp "$IN_FILE" "$OUT_FILE"
+ for FILE in /opt/${DATA_DIR}/*; do
+ local MOCK_NAME=$(basename "$FILE")
+ local MOCKED_DATA_CONTENT="$(cat /opt/${DATA_DIR}/${MOCK_NAME})"
+ sed -i "s#\[MOCKED_${MOCK_NAME}\]#${MOCKED_DATA_CONTENT}#g" "$OUT_FILE"
+ done
+ if [ -f "/opt/${DATA_DIR}/ENCODING" ]; then
+ local ENCODING=$(cat "/opt/${DATA_DIR}/ENCODING")
+ if [ "$ENCODING" = "chunked" ]; then
+ sed -i '/CONTENT-LENGTH/d' "$OUT_FILE"
+ fi
+ else
+ sed -i '/TRANSFER-ENCODING/d' "$OUT_FILE"
+ fi
+ local LINE=$(($(grep "^$" -n "$OUT_FILE" | cut -d':' -f1)+1))
+ local LEN="$(tail -n+$LINE "$OUT_FILE" | wc -c)"
+ sed -i "s#\[CALC_LEN\]#${LEN}#" "$OUT_FILE"
}
set_profile() {
- cd "${TOP_DIR}"
- mkdir -p "${DATA_DIR}"
- cd "${DATA_DIR}"
+ cd "/opt"
+ mkdir -p "${DATA_DIR}"
+ cd "${DATA_DIR}"
- case "${1}" in
- DATASET_SP_17a)
- printf "8" > SNRGds;
- printf "8" > SNRGus;
- printf "255,255,255,255,255,255,255,255,255,168,170,172,173,174,175,176,177,177,178,178,178,179,179,179,180,180,180,180,180,181,180,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,182,182,181,182,181,182,181,181,182,182,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,180,180,180,180,180,255,180,180,179,179,179,179,179,178,178,177,177,177,177,177,177,177,177,176,176,175,174,172,169,167,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,165,166,168,169,169,169,169,169,169,169,169,169,169,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,169,169,169,169,169,169,168,167,167,166,167,168,168,169,169,169,169,169,169,169,169,169,169,169,167,167,167,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,167,168,168,255,168,167,168,168,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,154,153,154,153,154,153,152,153,153,153,153,154,153,153,154,154,155,154,154,156,156,156,156,155,156,156,157,157,157,157,157,157,157,158,158,158,158,158,157,156,155,155,154,155,154,154,154,154,154,154,155,154,155,155,156,156,157,157,157,157,156,157,157,157,157,157,157,157,156,157,157,156,157,156,156,156,156,156,156,157,156,156,156,156,156,156,157,157,156,156,157,156,156,156,156,156,156,156,157,156,156,156,156,156,156,156,156,155,155,156,156,156,155,156,155,155,156,156,156,155,155,155,156,156,156,155,156,155,155,155,155,155,156,155,155,156,155,155,155,155,155,155,154,155,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255" > SNRpsds;
- printf "255,255,255,064,144,163,164,145,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,064,182,180,181,180,178,178,178,177,177,176,176,176,176,175,172,173,175,175,172,175,175,172,173,174,175,175,175,174,175,173,173,172,172,173,173,172,172,170,171,172,064,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,064,176,166,172,171,174,175,177,180,181,181,181,181,181,177,171,169,166,168,155,168,170,165,164,167,158,162,165,167,164,157,164,170,163,170,168,157,169,171,169,173,173,178,178,178,179,179,179,177,169,171,168,167,158,170,166,169,172,160,160,164,165,165,165,160,157,165,161,163,160,150,158,163,162,162,160,158,163,166,174,173,174,173,172,169,162,159,150,163,159,160,163,153,151,154,159,159,156,150,157,064,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255" > SNRpsus;
- printf "0" > CRCErrors;
- printf "Up" > LinkStatus;
- printf "17a" > CurrentProfile;
- printf "139815" > DownstreamMaxBitRate;
- printf "55351" > UpstreamMaxBitRate;
- printf "102345" > DownstreamCurrRate;
- printf "41434" > UpstreamCurrRate;
- printf "176" > DownstreamNoiseMargin;
- printf "199" > UpstreamNoiseMargin;
- printf "" > length;
- printf "256" > SNRMTds;
- printf "256" > SNRMTus;
- printf "17,47,47,0,0" > LATNds;
- printf "7,47,11,0,0" > LATNus;
- printf "0" > FECErrors;
- printf "G.993.2_Annex_B" > StandardUsed;
- ;;
- DATASET_FB_17a)
- printf "8" > SNRGds;
- printf "1" > SNRGus;
- printf "0,0,0,0,78,96,100,0,0,102,104,104,106,106,108,108,108,110,110,110,110,110,110,110,110,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,114,112,112,112,112,112,112,112,112,112,114,114,112,114,112,112,114,112,114,114,112,112,112,114,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,110,112,110,110,110,110,108,106,106,104,0,0,0,120,118,118,118,88,88,88,88,88,88,118,116,114,116,114,114,114,116,114,114,114,114,112,114,114,114,114,114,112,114,112,110,110,112,112,110,112,110,110,112,0,0,102,102,104,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,104,106,106,106,104,106,106,106,106,104,106,106,106,106,106,106,106,106,106,104,106,104,104,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,102,0,0,0,118,110,112,114,114,116,112,116,118,116,118,116,118,118,114,112,106,102,92,102,112,114,110,112,92,112,112,110,114,92,106,114,112,112,112,106,110,116,116,114,114,116,116,116,118,118,116,116,114,112,112,114,108,114,112,114,112,110,108,114,114,106,112,98,110,100,110,102,106,98,108,106,110,106,106,108,108,108,110,110,110,110,110,110,108,106,96,108,108,104,108,104,94,104,104,96,104,100,102,0,0,0,92,92,92,92,92,92,92,92,92,92,92,92,90,92,92,92,94,92,92,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,92,94,92,92,92,92,92,92,92,92,92,92,92,92,92,92,94,94,94,94,94,94,94,94,94,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,90,90,90,90,90,90,90,90,90,90,90,90,88,90,90,90,90,88,90,90,90,90,90,88,90,90,90,90,90,88,88,88,88,88,88,88,88,88,88,88,88,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" > SNRpsds;
- printf "" > SNRpsus;
- printf "62" > CRCErrors;
- printf "Up" > LinkStatus;
- printf "17a" > CurrentProfile;
- printf "143376" > DownstreamMaxBitRate;
- printf "62153" > UpstreamMaxBitRate;
- printf "103887" > DownstreamCurrRate;
- printf "41434" > UpstreamCurrRate;
- printf "170" > DownstreamNoiseMargin;
- printf "200" > UpstreamNoiseMargin;
- printf "" > length;
- printf "512" > SNRMTds;
- printf "0" > SNRMTus;
- printf "2,4,4,127,127" > LATNds;
- printf "0,3,0,127,127" > LATNus;
- printf "0" > FECErrors;
- printf "VDSL" > StandardUsed;
- ;;
- DATASET_FB_30a)
- printf "8" > SNRGds;
- printf "1" > SNRGus;
- printf "0,0,0,0,0,80,86,89,93,95,97,99,100,100,102,102,102,104,104,105,104,104,106,106,106,106,106,107,106,107,108,108,108,108,108,108,108,108,108,108,108,108,108,109,108,108,109,108,108,108,110,108,109,0,0,64,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,64,0,110,110,110,110,111,110,111,111,111,112,111,112,111,111,110,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,0,0,63,125,126,126,125,125,125,125,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,124,123,123,123,124,124,123,124,123,123,122,122,122,122,122,122,122,122,122,122,0,0,113,114,114,114,114,114,114,114,114,114,113,113,113,113,114,113,114,113,113,114,113,113,113,114,114,114,114,114,113,114,114,113,113,113,113,113,114,114,113,112,113,113,112,112,112,113,114,113,113,114,113,113,112,114,112,113,112,113,112,113,112,113,112,113,114,113,113,114,114,114,114,114,114,114,114,114,114,114,114,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" > SNRpsds;
- printf "" > SNRpsus;
- printf "0" > CRCErrors;
- printf "Up" > LinkStatus;
- printf "30a" > CurrentProfile;
- printf "161792" > DownstreamMaxBitRate;
- printf "62081" > UpstreamMaxBitRate;
- printf "149998" > DownstreamCurrRate;
- printf "58162" > UpstreamCurrRate;
- printf "90" > DownstreamNoiseMargin;
- printf "160" > UpstreamNoiseMargin;
- printf "" > length;
- printf "512" > SNRMTds;
- printf "0" > SNRMTus;
- printf "1,1,0,127,127" > LATNds;
- printf "127,0,0,127,127" > LATNus;
- printf "0" > FECErrors;
- printf "VDSL" > StandardUsed;
- ;;
- TR181)
- printf "TR181" > PROFILE
- printf "200" > RESPONSE
- printf "GetParameterValues" > REQUEST_KEY
- ;;
- TR098)
- printf "TR098" > PROFILE
- printf "200" > RESPONSE
- printf "X_GENERIC_GetVDSLInfo" > REQUEST_KEY
- ;;
- 200)
- printf "200" > RESPONSE
- ;;
- 500)
- printf "500" > RESPONSE
- ;;
- SpeedportSmart3)
- printf "Speedport Smart 3 010137.3.0.404.0" > SERVER
- printf 'cwmp="urn:telekom-de.totr64-2-n"' > xmlns
- printf "urn:telekom-de:device:1" > ST
- ;;
- Fritz7590)
- printf "FRITZ!Box 7590 UPnP/1.0 AVM FRITZ!Box 7590 154.07.19" > SERVER
- printf 'u="urn:dslforum-org:service:WANDSLInterfaceConfig:1"' > xmlns
- printf "urn:dslforum-org:service:InternetGatewayDevice:1" > ST
- printf "X_AVM-DE_GetDSLInfo" > REQUEST_KEY
- ;;
- Fritz7490)
- printf "FRITZ!Box 7490 UPnP/1.0 AVM FRITZ!Box 7490 113.07.21" > SERVER
- printf 'u="urn:dslforum-org:service:WANDSLInterfaceConfig:1"' > xmlns
- printf "urn:dslforum-org:service:InternetGatewayDevice:1" > ST
- printf "X_AVM-DE_GetDSLInfo" > REQUEST_KEY
- ;;
- DEVICE_SpeedportSmart3)
- set_profile DATASET_SP_17a
- set_profile TR181
- set_profile SpeedportSmart3
- ;;
- DEVICE_Fritz7590)
- set_profile DATASET_FB_30a
- set_profile TR098
- set_profile Fritz7590
- ;;
- DEVICE_Fritz7490)
- set_profile DATASET_FB_17a
- set_profile TR098
- set_profile Fritz7490
- ;;
- DEVICE_Fritz7490_without_support)
- set_profile TR098
- set_profile 500
- set_profile Fritz7490
- ;;
- *)
- DATA_DIR="${1}"
- ;;
- esac
- cd "${TOP_DIR}"
+ case "${1}" in
+ DATASET_SP_17a)
+ printf "8" > SNRGds;
+ printf "8" > SNRGus;
+ printf "255,255,255,255,255,255,255,255,255,168,170,172,173,174,175,176,177,177,178,178,178,179,179,179,180,180,180,180,180,181,180,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,182,182,181,182,181,182,181,181,182,182,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,180,180,180,180,180,255,180,180,179,179,179,179,179,178,178,177,177,177,177,177,177,177,177,176,176,175,174,172,169,167,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,165,166,168,169,169,169,169,169,169,169,169,169,169,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,169,169,169,169,169,169,168,167,167,166,167,168,168,169,169,169,169,169,169,169,169,169,169,169,167,167,167,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,168,167,168,168,255,168,167,168,168,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,154,153,154,153,154,153,152,153,153,153,153,154,153,153,154,154,155,154,154,156,156,156,156,155,156,156,157,157,157,157,157,157,157,158,158,158,158,158,157,156,155,155,154,155,154,154,154,154,154,154,155,154,155,155,156,156,157,157,157,157,156,157,157,157,157,157,157,157,156,157,157,156,157,156,156,156,156,156,156,157,156,156,156,156,156,156,157,157,156,156,157,156,156,156,156,156,156,156,157,156,156,156,156,156,156,156,156,155,155,156,156,156,155,156,155,155,156,156,156,155,155,155,156,156,156,155,156,155,155,155,155,155,156,155,155,156,155,155,155,155,155,155,154,155,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255" > SNRpsds;
+ printf "255,255,255,064,144,163,164,145,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,064,182,180,181,180,178,178,178,177,177,176,176,176,176,175,172,173,175,175,172,175,175,172,173,174,175,175,175,174,175,173,173,172,172,173,173,172,172,170,171,172,064,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,064,176,166,172,171,174,175,177,180,181,181,181,181,181,177,171,169,166,168,155,168,170,165,164,167,158,162,165,167,164,157,164,170,163,170,168,157,169,171,169,173,173,178,178,178,179,179,179,177,169,171,168,167,158,170,166,169,172,160,160,164,165,165,165,160,157,165,161,163,160,150,158,163,162,162,160,158,163,166,174,173,174,173,172,169,162,159,150,163,159,160,163,153,151,154,159,159,156,150,157,064,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255" > SNRpsus;
+ printf "0" > CRCErrors;
+ printf "Up" > LinkStatus;
+ printf "17a" > CurrentProfile;
+ printf "139815" > DownstreamMaxBitRate;
+ printf "55351" > UpstreamMaxBitRate;
+ printf "102345" > DownstreamCurrRate;
+ printf "41434" > UpstreamCurrRate;
+ printf "176" > DownstreamNoiseMargin;
+ printf "199" > UpstreamNoiseMargin;
+ printf "" > length;
+ printf "256" > SNRMTds;
+ printf "256" > SNRMTus;
+ printf "17,47,47,0,0" > LATNds;
+ printf "7,47,11,0,0" > LATNus;
+ printf "0" > FECErrors;
+ printf "G.993.2_Annex_B" > StandardUsed;
+ ;;
+ DATASET_FB_17a)
+ printf "8" > SNRGds;
+ printf "1" > SNRGus;
+ printf "0,0,0,0,78,96,100,0,0,102,104,104,106,106,108,108,108,110,110,110,110,110,110,110,110,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,114,112,112,112,112,112,112,112,112,112,114,114,112,114,112,112,114,112,114,114,112,112,112,114,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,110,112,110,110,110,110,108,106,106,104,0,0,0,120,118,118,118,88,88,88,88,88,88,118,116,114,116,114,114,114,116,114,114,114,114,112,114,114,114,114,114,112,114,112,110,110,112,112,110,112,110,110,112,0,0,102,102,104,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,104,106,106,106,104,106,106,106,106,104,106,106,106,106,106,106,106,106,106,104,106,104,104,106,106,106,106,106,106,106,106,106,106,106,106,106,106,106,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,102,0,0,0,118,110,112,114,114,116,112,116,118,116,118,116,118,118,114,112,106,102,92,102,112,114,110,112,92,112,112,110,114,92,106,114,112,112,112,106,110,116,116,114,114,116,116,116,118,118,116,116,114,112,112,114,108,114,112,114,112,110,108,114,114,106,112,98,110,100,110,102,106,98,108,106,110,106,106,108,108,108,110,110,110,110,110,110,108,106,96,108,108,104,108,104,94,104,104,96,104,100,102,0,0,0,92,92,92,92,92,92,92,92,92,92,92,92,90,92,92,92,94,92,92,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,92,94,92,92,92,92,92,92,92,92,92,92,92,92,92,92,94,94,94,94,94,94,94,94,94,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,90,90,90,90,90,90,90,90,90,90,90,90,88,90,90,90,90,88,90,90,90,90,90,88,90,90,90,90,90,88,88,88,88,88,88,88,88,88,88,88,88,86,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" > SNRpsds;
+ printf "" > SNRpsus;
+ printf "62" > CRCErrors;
+ printf "Up" > LinkStatus;
+ printf "17a" > CurrentProfile;
+ printf "143376" > DownstreamMaxBitRate;
+ printf "62153" > UpstreamMaxBitRate;
+ printf "103887" > DownstreamCurrRate;
+ printf "41434" > UpstreamCurrRate;
+ printf "170" > DownstreamNoiseMargin;
+ printf "200" > UpstreamNoiseMargin;
+ printf "" > length;
+ printf "512" > SNRMTds;
+ printf "0" > SNRMTus;
+ printf "2,4,4,127,127" > LATNds;
+ printf "0,3,0,127,127" > LATNus;
+ printf "0" > FECErrors;
+ printf "VDSL" > StandardUsed;
+ ;;
+ DATASET_FB_30a)
+ printf "8" > SNRGds;
+ printf "1" > SNRGus;
+ printf "0,0,0,0,0,80,86,89,93,95,97,99,100,100,102,102,102,104,104,105,104,104,106,106,106,106,106,107,106,107,108,108,108,108,108,108,108,108,108,108,108,108,108,109,108,108,109,108,108,108,110,108,109,0,0,64,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,127,64,0,110,110,110,110,111,110,111,111,111,112,111,112,111,111,110,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,0,0,63,125,126,126,125,125,125,125,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,124,123,123,123,124,123,123,123,124,124,123,124,123,123,122,122,122,122,122,122,122,122,122,122,0,0,113,114,114,114,114,114,114,114,114,114,113,113,113,113,114,113,114,113,113,114,113,113,113,114,114,114,114,114,113,114,114,113,113,113,113,113,114,114,113,112,113,113,112,112,112,113,114,113,113,114,113,113,112,114,112,113,112,113,112,113,112,113,112,113,114,113,113,114,114,114,114,114,114,114,114,114,114,114,114,113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" > SNRpsds;
+ printf "" > SNRpsus;
+ printf "0" > CRCErrors;
+ printf "Up" > LinkStatus;
+ printf "30a" > CurrentProfile;
+ printf "161792" > DownstreamMaxBitRate;
+ printf "62081" > UpstreamMaxBitRate;
+ printf "149998" > DownstreamCurrRate;
+ printf "58162" > UpstreamCurrRate;
+ printf "90" > DownstreamNoiseMargin;
+ printf "160" > UpstreamNoiseMargin;
+ printf "" > length;
+ printf "512" > SNRMTds;
+ printf "0" > SNRMTus;
+ printf "1,1,0,127,127" > LATNds;
+ printf "127,0,0,127,127" > LATNus;
+ printf "0" > FECErrors;
+ printf "VDSL" > StandardUsed;
+ ;;
+ CHUNKED)
+ printf "chunked" > ENCODING;
+ ;;
+ NOT_CHUNKED)
+ rm -f ENCODING;
+ ;;
+ TR181)
+ printf "TR181" > PROFILE
+ printf "200" > RESPONSE
+ printf "GetParameterValues" > REQUEST_KEY
+ ;;
+ TR098)
+ printf "TR098" > PROFILE
+ printf "200" > RESPONSE
+ printf "X_GENERIC_GetVDSLInfo" > REQUEST_KEY
+ ;;
+ 200)
+ printf "200" > RESPONSE
+ ;;
+ 500)
+ printf "500" > RESPONSE
+ ;;
+ SpeedportSmart3)
+ printf "Speedport Smart 3 010137.3.5.000.0" > SERVER
+ printf "description.xml" > LOCATION
+ printf 'cwmp="urn:telekom-de:device:TO_InternetGatewayDevice:2"' > xmlns
+ printf "urn:telekom-de:device:TO_InternetGatewayDevice:2" > ST
+ printf "5438" > PORT
+ printf 'description.xml' > XML_FILES
+ printf 'GetParameterValues' > POST_ACT
+ printf '' > PATH
+ ;;
+ SpeedportW922V)
+ printf "DTW922V UPnP/1.0 Speedport W 922V 01013203.01.002" > SERVER
+ printf "tr64_igd.xml" > LOCATION
+ printf 'cwmp="urn:dslforum-org:device:InternetGatewayDevice:1"' > xmlns
+ printf "urn:dslforum-org:device:InternetGatewayDevice:1" > ST
+ printf "5438" > PORT
+ printf 'tr64_igd.xml tr64_igd_wdic.xml' > XML_FILES
+ printf 'GetParameterValues' > POST_ACT
+ printf '' > PATH
+ ;;
+ Fritz7590)
+ printf "FRITZ!Box 7590 UPnP/1.0 AVM FRITZ!Box 7590 154.07.19" > SERVER
+ printf "tr64desc.xml" > LOCATION
+ printf 'u="urn:dslforum-org:service:WANDSLInterfaceConfig:1"' > xmlns
+ printf "urn:dslforum-org:service:InternetGatewayDevice:1" > ST
+ printf "X_AVM-DE_GetDSLInfo" > REQUEST_KEY
+ printf "49000" > PORT
+ printf 'tr64desc.xml wandslifconfigSCPD.xml' > XML_FILES
+ printf 'upnp/control/wandslifconfig1' > PATH
+ ;;
+ Fritz7490)
+ printf "FRITZ!Box 7490 UPnP/1.0 AVM FRITZ!Box 7490 113.07.21" > SERVER
+ printf "tr64desc.xml" > LOCATION
+ printf 'u="urn:dslforum-org:service:WANDSLInterfaceConfig:1"' > xmlns
+ printf "urn:dslforum-org:service:InternetGatewayDevice:1" > ST
+ printf "X_AVM-DE_GetDSLInfo" > REQUEST_KEY
+ printf "49000" > PORT
+ printf 'tr64desc.xml wandslifconfigSCPD.xml' > XML_FILES
+ printf 'upnp/control/wandslifconfig1' > PATH
+ ;;
+ GenericRouter)
+ printf "Generic Router UPnP/1.0 generic router 1.1.0" > SERVER
+ printf "tr064gen.xml" > LOCATION
+ printf 'u="urn:schemas-upnp-org:service:ConfigurationManagement:2"' > xmlns
+ printf "urn:schemas-upnp-org:service:ConfigurationManagement:2" > ST
+ printf "49001" > PORT
+ printf 'tr064gen.xml UPnPdescription.xml' > XML_FILES
+ printf 'GetSupportedDataModels GetSupportedParameters GetValues' > POST_ACT
+ printf '' > PATH
+ ;;
+ DEVICE_SpeedportSmart3)
+ set_profile DATASET_SP_17a
+ set_profile TR181
+ set_profile SpeedportSmart3
+ set_profile NOT_CHUNKED
+ ;;
+ DEVICE_Fritz7590)
+ set_profile DATASET_FB_30a
+ set_profile TR098
+ set_profile Fritz7590
+ set_profile NOT_CHUNKED
+ ;;
+ DEVICE_Fritz7490)
+ set_profile DATASET_FB_17a
+ set_profile TR098
+ set_profile Fritz7490
+ set_profile NOT_CHUNKED
+ ;;
+ DEVICE_Fritz7490_without_support)
+ set_profile TR098
+ set_profile 500
+ set_profile Fritz7490
+ set_profile NOT_CHUNKED
+ ;;
+ DEVICE_GenericRouter)
+ set_profile DATASET_SP_17a
+ set_profile TR181
+ set_profile GenericRouter
+ set_profile NOT_CHUNKED
+ ;;
+ DEVICE_GenericRouterChunked)
+ set_profile DATASET_SP_17a
+ set_profile TR181
+ set_profile GenericRouter
+ set_profile CHUNKED
+ ;;
+ *)
+ DATA_DIR="${1}"
+ ;;
+ esac
+ cd "/opt"
}
generate_mocks() {
- rm -rf "mocks"
+ rm -rf "mocks"
- generate_response "${TOP_DIR}/$(cat ${TOP_DIR}/${DATA_DIR}/PROFILE).$(cat ${TOP_DIR}/${DATA_DIR}/RESPONSE)" "${TOP_DIR}/response"
- case $(cat ${TOP_DIR}/${DATA_DIR}/PROFILE) in
- TR181)
- cp SOAP.request "${TOP_DIR}/SOAP.request.work"
- XMLNS_CONTENT="$(cat ${TOP_DIR}/${DATA_DIR}/xmlns)"
- sed -i "s#\[MOCKED_xmlns\]#${XMLNS_CONTENT}#g" "${TOP_DIR}/SOAP.request.work"
- SOAP_REQUEST=$(cat "${TOP_DIR}/SOAP.request.work")
- rm "${TOP_DIR}/SOAP.request.work"
- generate_mock "POST--" "${SOAP_REQUEST}" "${TOP_DIR}/response"
- ;;
- TR098)
- generate_mock "" "upnp/control/wandslifconfig1/POST" "${TOP_DIR}/response"
- ;;
- esac
- rm "${TOP_DIR}/response"
+ if [ ! -f "/opt/${DATA_DIR}/PATH" ]; then
+ touch "/opt/${DATA_DIR}/PATH"
+ fi
- generate_mock "" "alive-response/GET" "${TOP_DIR}/alive.response"
+ copy_mocks
+
+ local MOCK_PATH="$(cat "/opt/${DATA_DIR}/PATH")"
+ if [ -n "$MOCK_PATH" ]; then
+ echo "$MOCK_PATH " | grep -q '/$' || MOCK_PATH="${MOCK_PATH}/"
+ fi
+
+ case $(cat /opt/${DATA_DIR}/PROFILE) in
+ TR181)
+ if [ -f "/opt/${DATA_DIR}/POST_ACT" ]; then
+ POST_ACT=$(cat "/opt/${DATA_DIR}/POST_ACT")
+ else
+ POST_ACT=GetParameterValues
+ fi
+ for I in $POST_ACT; do
+ generate_response "/opt/$(cat "/opt/${DATA_DIR}/PROFILE")_${I}.$(cat "/opt/${DATA_DIR}/RESPONSE")" "/opt/response"
+ cp "/opt/SOAP_${I}.request" "/opt/SOAP.request.work"
+ local XMLNS_CONTENT="$(cat /opt/${DATA_DIR}/xmlns)"
+ sed -i "s#\[MOCKED_xmlns\]#${XMLNS_CONTENT}#g" "/opt/SOAP.request.work"
+ local SOAP_REQUEST="$(cat "/opt/SOAP.request.work")"
+ rm "/opt/SOAP.request.work"
+ generate_mock "${MOCK_PATH}POST--" "${SOAP_REQUEST}" "/opt/response"
+ done
+ ;;
+ TR098)
+ generate_response "/opt/$(cat /opt/${DATA_DIR}/PROFILE).$(cat /opt/${DATA_DIR}/RESPONSE)" "/opt/response"
+ generate_mock "" "${MOCK_PATH}POST" "/opt/response"
+ ;;
+ esac
+ rm "/opt/response"
+
+ generate_mock "" "alive-response/GET" "/opt/alive.response"
}
check_mocking_services() {
- MOCKERVER_RUNNING=$(ps lax | grep [n]ode | grep mockserver)
-
- if [ "${MOCKERVER_RUNNING}" = "" ]; then
- # start the mocking itself
- python3 "${TOP_DIR}/mockserver_handler.py" "--log=${TOP_DIR}/mock.log"
+ cd "/opt"
+ local RESTART_SSPD="no"
+ for FILE in SERVER ST LOCATION PORT; do
+ if [ ! -f "/opt/${DATA_DIR}/${FILE}" ]; then
+ echo "File: ${DATA_DIR}/${FILE} not found!"
+ echo "ERROR: Cannot restart mock server!"
+ return
fi
-
- cd "${TOP_DIR}"
- RESTART_SSPD="no"
- for FILE in SERVER ST; do
- MOCK_NAME=$(basename "${FILE}")
- MOCKED_DATA_OLD_CONTENT="$(cat .${MOCK_NAME}_OLD_CONTENT)"
- MOCKED_DATA_CONTENT="$(cat ${DATA_DIR}/${MOCK_NAME})"
- echo "${MOCKED_DATA_CONTENT}">.${MOCK_NAME}_OLD_CONTENT
- if [ "${MOCKED_DATA_OLD_CONTENT}" != "${MOCKED_DATA_CONTENT}" ]; then
- RESTART_SSPD="yes"
- fi
- done
- if [ "${RESTART_SSPD}" != "no" ]; then
- pkill python3 || echo "No SSDP mock killed ..."
- python3 ./ssdp_mock.py --logfile=./ssdp.log --st="$(cat ${DATA_DIR}/ST)" --server-name="$(cat ${DATA_DIR}/SERVER)" --location-ip=$(cat "${TOP_DIR}/MOCK_IP_ADDRESS") &
+ local MOCK_NAME=$(basename "${FILE}")
+ local MOCKED_DATA_OLD_CONTENT="$(cat .${MOCK_NAME}_OLD_CONTENT)"
+ local MOCKED_DATA_CONTENT="$(cat ${DATA_DIR}/${MOCK_NAME})"
+ echo "${MOCKED_DATA_CONTENT}">.${MOCK_NAME}_OLD_CONTENT
+ if [ "${MOCKED_DATA_OLD_CONTENT}" != "${MOCKED_DATA_CONTENT}" ]; then
+ RESTART_SSPD="yes"
fi
+ done
+ if [ "${RESTART_SSPD}" != "no" ]; then
+ pkill node
+ python3 "/opt/mockserver_handler.py" "--log=/opt/mock.log" "--port=$(cat "/opt/${DATA_DIR}/PORT")"
+ pkill python3 || echo "No SSDP mock killed ..."
+ python3 ./ssdp_mock.py --logfile=./ssdp.log --st="$(cat ${DATA_DIR}/ST)" --server-name="$(cat ${DATA_DIR}/SERVER)"\
+ --location-ip=$(cat "/opt/MOCK_IP_ADDRESS") --location-port=$(cat "/opt/${DATA_DIR}/PORT") --location-file=$(cat "/opt/${DATA_DIR}/LOCATION")&
+ fi
}
read_commandline() {
@@ -294,7 +411,7 @@ read_commandline() {
exit 1
;;
--IP=?*)
- printf "${1#*=}">"${TOP_DIR}/MOCK_IP_ADDRESS"
+ printf "${1#*=}">"/opt/MOCK_IP_ADDRESS"
;;
--verbose=?*)
VERBOSE=${1#*=}
@@ -328,18 +445,18 @@ read_commandline() {
# mainline
#
################################################################################
-if [ ! -d "${TOP_DIR}/${DATA_DIR}" ]; then
+if [ ! -d "/opt/${DATA_DIR}" ]; then
rm .*_OLD_CONTENT
fi
read_commandline ${@}
-if [ -d "${TOP_DIR}/${DATA_DIR}" ]; then
+if [ -d "/opt/${DATA_DIR}" ]; then
if [ "${VERBOSE}" != "no" ]; then
- echo "Imported data from ${TOP_DIR}/${DATA_DIR}:"
- for FILE in ${TOP_DIR}/${DATA_DIR}/*; do
+ echo "Imported data from /opt/${DATA_DIR}:"
+ for FILE in /opt/${DATA_DIR}/*; do
MOCKED_DATA_CHUNK=$(basename "${FILE}")
- echo " ${MOCKED_DATA_CHUNK}=$(cat ${TOP_DIR}/${DATA_DIR}/${MOCKED_DATA_CHUNK})"
+ echo " ${MOCKED_DATA_CHUNK}=$(cat /opt/${DATA_DIR}/${MOCKED_DATA_CHUNK})"
done
fi
else
diff --git a/home0/inserts/tr064/mockserver/tr064gen.xml b/home0/inserts/tr064/mockserver/tr064gen.xml
new file mode 100644
index 0000000..9144b02
--- /dev/null
+++ b/home0/inserts/tr064/mockserver/tr064gen.xml
@@ -0,0 +1,38 @@
+
+
+
+ 2
+ 0
+
+
+ urn:schemas-upnp-org:device:InternetGatewayDevice:2
+ Generic Internet-Box
+ Generic
+ http://www.generic.com
+ http://www.generic.com/internetbox
+ uuid:75802409-bccb-40e7-8e6a-3481C4FF2460
+ Generic Router
+ Router100
+ 1234567890123456
+ http://internet.box
+
+
+
+ image/png
+ 100
+ 100
+ 32
+ /images/Generic_Internetbox.png
+
+
+
+
+ urn:schemas-upnp-org:service:ConfigurationManagement:2
+ urn:upnp-org:serviceId:serviceID
+ [MOCKED_IP]:[MOCKED_PORT]/[MOCKED_PATH]
+ [MOCKED_IP]:[MOCKED_PORT]/[MOCKED_PATH]
+ [MOCKED_IP]:[MOCKED_PORT]/UPnPdescription.xml
+
+
+
+
\ No newline at end of file
diff --git a/home0/inserts/tr064/ssdp-mocks/ssdp_mock.py b/home0/inserts/tr064/ssdp-mocks/ssdp_mock.py
index 4e029e6..44b15b0 100755
--- a/home0/inserts/tr064/ssdp-mocks/ssdp_mock.py
+++ b/home0/inserts/tr064/ssdp-mocks/ssdp_mock.py
@@ -20,12 +20,13 @@ def setup_logger(logfile: str):
class MockSSDPServer:
- def __init__(self, ip="0.0.0.0", port=1900, location_ip="127.0.0.1", location_port=49000, timeout=5, server_name="Speedport Smart 3",
+ def __init__(self, ip="0.0.0.0", port=1900, location_ip="127.0.0.1", location_port=49000, location_file='tr064dev.xml', timeout=5, server_name="Speedport Smart 3",
st="urn:telekom-de:device:TO_InternetGatewayDevice:2"):
self.ip = ip
self.port = port
self.location_ip = location_ip
self.location_port = location_port
+ self.location_file = location_file
self.timeout = timeout
self.server_name = server_name
self.st = st
@@ -44,14 +45,14 @@ def _check(data: bytes):
def _send_mock_response(self, addr: str):
response = ['HTTP/1.1 200 OK',
'CACHE-CONTROL: max-age=1800',
- 'LOCATION: http://{}:{}/description.xml'.format(
- self.location_ip, self.location_port),
+ 'LOCATION: http://{}:{}/{}'.format(
+ self.location_ip, self.location_port, self.location_file),
'SERVER: {}'.format(self.server_name),
'Date: {}'.format(datetime.date.today().strftime(
"%a, %d %b %Y %H:%M:%S")),
'EXT: ',
'ST: {}'.format(self.st),
- 'USN: {}{}'.format("uuid:00000000-0000-0002-0000-44fffffffe3b38ffffffa2ffffffb4::",self.st)]
+ 'USN: {}{}'.format("uuid:739f2409-bccb-40e7-8e6c-582af7c5b426::",self.st)]
response.extend(('', ''))
response = '\r\n'.join(response)
@@ -100,12 +101,13 @@ def main():
parser.add_argument('--location-ip', dest="location_ip", action='store', help="Mock value for the IP address inside the LOCATION parameter.")
parser.add_argument('--location-port', dest="location_port", action='store', type=int, default=49000,
help="Mock value for the Port inside the LOCATION parameter.")
+ parser.add_argument('--location-file', dest="location_file", action='store', default="description.xml", help="LOCATION XML file.")
args = parser.parse_args()
setup_logger(logfile=args.logfile)
try:
- server = MockSSDPServer(location_ip=args.location_ip, location_port=args.location_port, server_name=args.server_name, st=args.st)
+ server = MockSSDPServer(location_ip=args.location_ip, location_port=args.location_port, location_file=args.location_file, server_name=args.server_name, st=args.st)
server.start()
except Exception as e:
logger.error('Error: {}'.format(str(e)))
diff --git a/simulate_tr-069.sh b/simulate_tr-069.sh
index adcedb1..b454e19 100755
--- a/simulate_tr-069.sh
+++ b/simulate_tr-069.sh
@@ -4,7 +4,7 @@
set -e
#set -x
-DEFAULT_IMAGE_VERSION="1.3.7"
+DEFAULT_IMAGE_VERSION="1.3.8"
SCRIPT_VERISON="1.3.9"
################################################################################