[Add meta-cmf-filogic sdk cmf for rdkb development]
[Description]
Add meta-cmf-filogic sdk cmf for rdkb development
1. rdkb base on dunfell rdkb-next (> 2022q1)
2. cmf is mostly from meta-turris implementation
3. some 64bit support are port from rp4-64 cmf
4. arm64/arm 32bit bsp both can run on rdkb
[Release-log]
N/A
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..b69432b
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1,15 @@
+# Contributing
+
+When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
+
+
+## Pull Request Process
+
+1. In order to contribute code, first-time users are requested to create github handle by following the wizard in [github-join](https://github.com/join).
+2. If you wish to make code contributions to this project, the master source is hosted at [github.com](https://github.com/rdkcentral/meta-turris). You can submit your changes for review via this github site.
+3. Please follow the [workflow](https://help.github.com/articles/creating-a-pull-request) when making a contribution.
+4. Update the README.md with details of changes, this includes build steps and installation steps.
+
+## Code of Conduct
+
+Please note we have a code of conduct as adapted from the [Contributor Covenant](https://www.contributor-covenant.org/version/1/4/code-of-conduct.html), please follow it in all your interactions with the project.
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..c5c24a3
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,190 @@
+All metadata files (including, but not limited to bb, bbappend, bbclass, inc and conf files) are MIT licensed unless otherwise stated. Source code included in tree for individual recipes is under the LICENSE stated in the associated recipe (.bb file) unless otherwise stated. All other files to have license as explicitly stated or default to Apache-2.0 licensed.
+
+The MIT License:
+----------------
+Copyright 2019 RDK Management
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+The Apache License:
+-------------------
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c5c24a3
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,190 @@
+All metadata files (including, but not limited to bb, bbappend, bbclass, inc and conf files) are MIT licensed unless otherwise stated. Source code included in tree for individual recipes is under the LICENSE stated in the associated recipe (.bb file) unless otherwise stated. All other files to have license as explicitly stated or default to Apache-2.0 licensed.
+
+The MIT License:
+----------------
+Copyright 2019 RDK Management
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+The Apache License:
+-------------------
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000..4674d8c
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,7 @@
+Copyright 2019 RDK Management
+Licensed under the MIT License
+
+Copyright 2019 RDK Management
+Licensed under the Apache-2.0 License
+
+Some material is derived from https://github.com/openembedded and was licensed under an MIT license.
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..082d92d
--- /dev/null
+++ b/README.md
@@ -0,0 +1,18 @@
+# meta-turris
+External layer for turris omnia
+
+### Quick Build steps
+
+Follow this build steps to generate RDKB image and assuming that yocto environment setting is already done.
+```
+$ mkdir <workspace dir>
+$ cd <workspace dir>
+
+$ repo init -u https://code.rdkcentral.com/r/manifests -m rdkb-turris-extsrc.xml -b rdk-next
+(or)
+$ repo init -u https://code.rdkcentral.com/r/manifests -m rdkb-turris-nosrc.xml -b rdk-next
+
+$ repo sync -j4 --no-clone-bundle
+$ MACHINE=turris source meta-turris/setup-environment
+$ bitbake rdk-generic-broadband-image
+```
diff --git a/conf/distro/include/rdk-turris.inc b/conf/distro/include/rdk-turris.inc
new file mode 100644
index 0000000..97a3c6b
--- /dev/null
+++ b/conf/distro/include/rdk-turris.inc
@@ -0,0 +1,19 @@
+
+DISTRO_FEATURES_append = " rdk-oss-ssa"
+DISTRO_FEATURES_remove_dunfell = "telemetry2_0"
+
+# RDKBDEV-73 : Dynamic DNS : Standardization based on broadband-forum.
+DISTRO_FEATURES_append = " ddns_broadband"
+
+# RDKBDEV-83 : Device Gateway Association using Managed Device
+DISTRO_FEATURES_append = " device_gateway_association"
+
+# RDKBDEV-50: Adding DSLite Functionality and related TR-181 DataModel Parameters
+DISTRO_FEATURES_append = " dslite"
+
+# REFPLTV-1137: DLNA support for xupnp
+DISTRO_FEATURES_append = " dlna"
+
+DISTRO_FEATURES_append = " meshwifi"
+DISTRO_FEATURES_append = " ipv6"
+DISTRO_FEATURES_append = " rdkb_wan_manager"
diff --git a/conf/include/rdk-external-src-platform.inc b/conf/include/rdk-external-src-platform.inc
new file mode 100644
index 0000000..40746fa
--- /dev/null
+++ b/conf/include/rdk-external-src-platform.inc
@@ -0,0 +1,11 @@
+# Note: This feature is for developers ONLY.
+# Please do not forget to set BB_ENV_EXTRAWHITE before
+# launching the yocto build.
+# `export BB_ENV_EXTRAWHITE="${BB_ENV_EXTRAWHITE} RDK_ROOT_PATH"`
+#
+INHERIT += "externalsrc"
+
+EXTERNALSRC_pn-hal-dhcpv4c-generic = "${@'${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/dhcpv4c' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/dhcpv4c/devices_turris')) else ''}"
+EXTERNALSRC_pn-hal-ethsw-generic = "${@'${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/ethsw' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/ethsw/devices_turris')) else ''}"
+EXTERNALSRC_pn-hal-platform-generic = "${@'${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/platform' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/components/opensource/ccsp/hal/source/platform/devices_turris')) else ''}"
+EXTERNALSRC_pn-hal-wifi-turris = "${@'${RDK_ROOT_PATH}/rdkb/devices/turris/hal/source/wifi' if (os.path.isdir('${RDK_ROOT_PATH}/rdkb/devices/turris/hal')) else ''}"
diff --git a/conf/include/turris-bbmasks.inc b/conf/include/turris-bbmasks.inc
new file mode 100644
index 0000000..943749b
--- /dev/null
+++ b/conf/include/turris-bbmasks.inc
@@ -0,0 +1,18 @@
+BBMASK .= "|meta-rdk/recipes-common/rdkversion/"
+BBMASK .= "|meta-cmf/recipes-common/rdkversion/"
+
+BBMASK .= "|meta-rdk/recipes-core/packagegroups/packagegroup-rdk-media-common.bb"
+BBMASK .= "|meta-rdk/recipes-support/base64/base64_git.bb"
+
+BBMASK .= "|meta-rdk-ext/recipes-common/rtmessage"
+BBMASK .= "|meta-rdk-ext/recipes-kernel/linux/linux-libc-headers_%.bbappend"
+
+BBMASK .= "|meta-browser/*"
+BBMASK .= "|openembedded-core/meta/recipes-bsp/u-boot/libubootenv_0.2.bb"
+BBMASK .= "|openembedded-core/meta/recipes-bsp/u-boot/libubootenv_0.3.1.bb"
+BBMASK .= "|meta-virtualization/recipes-devtools/protobuf"
+
+BBMASK .= "${@'' if os.path.isdir('|meta-openembedded/meta-oe/recipes-devtools/breakpad/breakpad_git.bb') else '|meta-cmf/recipes-devtools/breakpad/breakpad_git.bb'}"
+
+#To avoid build warning
+BBMASK .= "|meta-rdk-ext/recipes-support/iksemel/iksemel_1.5.bb"
diff --git a/conf/layer.conf b/conf/layer.conf
new file mode 100644
index 0000000..15de589
--- /dev/null
+++ b/conf/layer.conf
@@ -0,0 +1,15 @@
+# We have a conf and classes directory, add to BBPATH
+BBPATH .= ":${LAYERDIR}"
+
+# We have a recipes-* directories, add to BBFILES
+BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"
+
+BBFILE_COLLECTIONS += "cmf-filogic"
+BBFILE_PATTERN_cmf-filogic = "^${LAYERDIR}/"
+BBFILE_PRIORITY_cmf-filogic = "24"
+
+LAYERSERIES_COMPAT_cmf-filogic = "dunfell"
+
+require conf/distro/include/rdk-turris.inc
+#require conf/include/rdk-external-src-platform.inc
diff --git a/conf/machine/filogic830-32bit.conf b/conf/machine/filogic830-32bit.conf
new file mode 100644
index 0000000..510c23f
--- /dev/null
+++ b/conf/machine/filogic830-32bit.conf
@@ -0,0 +1,38 @@
+#@TYPE: Machine
+#@NAME: mediatek filogic
+#@NEEDED_BSPLAYERS: meta-filogic
+#@DESCRIPTION: Machine configuration for running a RDK broadband on mediatek filogic
+#@RDK_FLAVOR: rdkb
+
+include conf/machine/filogic-32bit.conf
+
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+
+MACHINE_IMAGE_NAME = "rdkb-generic-broadband-image"
+
+MACHINEOVERRIDES .= ":broadband:turris:filogic-32bit:mt7986-32bit"
+
+PREFERRED_VERSION_xfsprogs = "4.8.0"
+PREFERRED_VERSION_php_dunfell = "7.1.%"
+PREFERRED_VERSION_php-native_dunfell = "7.1.%"
+
+PREFERRED_PROVIDER_hal-wifi = "hal-wifi-cfg80211"
+
+#masking files for dunfell build
+require conf/include/turris-bbmasks.inc
+#require conf/include/rdk-external-src-platform.inc
+
+DISTRO_FEATURES_append = " meshwifi"
+DISTRO_FEATURES_append = " ipv6"
+
+# kernel 5.4 gold linker 'arm-rdk-linux-gnueabi-ld' not supported
+#DISTRO_FEATURES_append = " referencepltfm "
+#DISTRO_FEATURES_remove = " ld-is-gold"
+
+#for sdk support
+INHERIT_append = " uninative"
+BB_SETSCENE_ENFORCE_WHITELIST_append = " %:* *:do_fetch *"
+
+BOOT_SUFFIX = "bin"
+MACHINE_FEATURES = "ext2 ipsec nfs pci smbfs usbgadget usbhost vfat"
+
diff --git a/conf/machine/filogic830.conf b/conf/machine/filogic830.conf
new file mode 100644
index 0000000..28502d2
--- /dev/null
+++ b/conf/machine/filogic830.conf
@@ -0,0 +1,38 @@
+#@TYPE: Machine
+#@NAME: mediatek filogic
+#@NEEDED_BSPLAYERS: meta-filogic
+#@DESCRIPTION: Machine configuration for running a RDK broadband on mediatek filogic
+#@RDK_FLAVOR: rdkb
+
+include conf/machine/filogic.conf
+
+MACHINE_EXTRA_RRECOMMENDS += "kernel-modules"
+
+MACHINE_IMAGE_NAME = "rdkb-generic-broadband-image"
+
+MACHINEOVERRIDES .= ":broadband:turris:filogic:mt7986"
+
+PREFERRED_VERSION_xfsprogs = "4.8.0"
+PREFERRED_VERSION_php_dunfell = "7.1.%"
+PREFERRED_VERSION_php-native_dunfell = "7.1.%"
+
+PREFERRED_PROVIDER_hal-wifi = "hal-wifi-cfg80211"
+
+#masking files for dunfell build
+require conf/include/turris-bbmasks.inc
+#require conf/include/rdk-external-src-platform.inc
+
+DISTRO_FEATURES_append = " meshwifi"
+DISTRO_FEATURES_append = " ipv6"
+
+# kernel 5.4 gold linker 'arm-rdk-linux-gnueabi-ld' not supported
+#DISTRO_FEATURES_append = " referencepltfm "
+#DISTRO_FEATURES_remove = " ld-is-gold"
+
+#for sdk support
+INHERIT_append = " uninative"
+BB_SETSCENE_ENFORCE_WHITELIST_append = " %:* *:do_fetch *"
+
+BOOT_SUFFIX = "bin"
+MACHINE_FEATURES = "ext2 ipsec nfs pci smbfs usbgadget usbhost vfat"
+
diff --git a/conf/machine/include/tune-cortexa7-soft.inc b/conf/machine/include/tune-cortexa7-soft.inc
new file mode 100644
index 0000000..5435ab5
--- /dev/null
+++ b/conf/machine/include/tune-cortexa7-soft.inc
@@ -0,0 +1,14 @@
+DEFAULTTUNE = "cortexa7-soft"
+
+AVAILTUNES += "cortexa7-soft"
+
+require conf/machine/include/tune-cortexa7.inc
+
+TUNEVALID[fpu-soft] = "Use software FPU."
+TUNE_CCARGS .= "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', ' -msoft-float', '', d)}"
+TARGET_FPU = "${@bb.utils.contains('TUNE_FEATURES', 'fpu-soft', 'soft', '', d)}"
+
+# Basic tune definitions
+ARMPKGARCH_tune-cortexa7-soft = "cortexa7"
+TUNE_FEATURES_tune-cortexa7-soft = "${TUNE_FEATURES_tune-cortexa7} fpu-soft"
+PACKAGE_EXTRA_ARCHS_tune-cortexa7-soft = "${PACKAGE_EXTRA_ARCHS_tune-armv7ve} cortexa7-vfp fpu-soft"
diff --git a/recipes-bsp/formfactor/formfactor/turris/machconfig b/recipes-bsp/formfactor/formfactor/turris/machconfig
new file mode 100644
index 0000000..7c4ebd7
--- /dev/null
+++ b/recipes-bsp/formfactor/formfactor/turris/machconfig
@@ -0,0 +1,20 @@
+# If not stated otherwise in this file or this component's LICENSE
+# file the following copyright and licenses apply:
+#
+#Copyright [2019] [RDK Management]
+#
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+# Assume a USB mouse and keyboard are connected
+HAVE_TOUCHSCREEN=n
+HAVE_KEYBOARD=y
diff --git a/recipes-bsp/formfactor/formfactor_0.0.bbappend b/recipes-bsp/formfactor/formfactor_0.0.bbappend
new file mode 100644
index 0000000..6d4804d
--- /dev/null
+++ b/recipes-bsp/formfactor/formfactor_0.0.bbappend
@@ -0,0 +1,2 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
diff --git a/recipes-ccsp/ccsp/ccsp-adv-security.bbappend b/recipes-ccsp/ccsp/ccsp-adv-security.bbappend
new file mode 100644
index 0000000..1836ce2
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-adv-security.bbappend
@@ -0,0 +1 @@
+require ccsp_common_turris.inc
diff --git a/recipes-ccsp/ccsp/ccsp-cm-agent.bbappend b/recipes-ccsp/ccsp/ccsp-cm-agent.bbappend
new file mode 100644
index 0000000..b6d875c
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-cm-agent.bbappend
@@ -0,0 +1,18 @@
+require ccsp_common_turris.inc
+
+DEPENDS_append_dunfell = " safec"
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+
+EXTRA_OECONF_remove = " ${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', '--enable-wanmgr', '', d)}"
+
+do_install_append() {
+ # Config files and scripts
+ install -m 644 ${S}/config-arm/CcspCMDM.cfg ${D}${prefix}/ccsp/cm/CcspCMDM.cfg
+ install -m 644 ${S}/config-arm/CcspCM.cfg ${D}${prefix}/ccsp/cm/CcspCM.cfg
+ install -m 644 ${S}/config-arm/TR181-CM.XML ${D}${prefix}/ccsp/cm/TR181-CM.XML
+
+ # delete files that are installed by some other package
+ rm -f ${D}/usr/include/ccsp/cosa_apis.h
+ rm -f ${D}/usr/include/ccsp/cosa_apis_busutil.h
+ rm -f ${D}/usr/include/ccsp/cosa_dml_api_common.h
+}
diff --git a/recipes-ccsp/ccsp/ccsp-common-library.bbappend b/recipes-ccsp/ccsp/ccsp-common-library.bbappend
new file mode 100644
index 0000000..a937b22
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library.bbappend
@@ -0,0 +1,186 @@
+require ccsp_common_turris.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:${THISDIR}/files:"
+
+DEPENDS_append_turris = " breakpad"
+CXXFLAGS_append_turris = " \
+ -I${STAGING_INCDIR}/breakpad \
+ -std=c++11 \
+ "
+
+SRC_URI_append = " \
+ file://ccsp_vendor.h \
+ file://wifiinitialized.service \
+ file://checkturriswifisupport.service \
+ file://wifiinitialized.path \
+ file://turriswifiinitialized.path \
+ file://checkturriswifisupport.path \
+ file://wifi-initialized.target \
+ file://utopia.service \
+"
+
+SRC_URI_remove_dunfell = "file://0001-DBusLoop-SSL_state-TLS_ST_OK.patch"
+SRC_URI_remove_dunfell = "file://0001-SSLeay_add_all_algorithms-remove-in-openssl-1.1.patch"
+
+SRC_URI += "file://0003-add-dependency-to-pandm.patch;apply=no"
+SRC_URI += "file://0004-remove-psm-db-reference.patch;apply=no"
+SRC_URI_append_dunfell = " file://0001-DBusLoop-SSL_state-TLS_ST_OK.patch;apply=no"
+SRC_URI_append_dunfell = " file://0001-SSLeay_add_all_algorithms-remove-in-openssl-1.1.patch;apply=no"
+
+
+# we need to patch to code for Turris
+do_turris_patches() {
+ cd ${S}
+ if [ ! -e patch_applied ]; then
+ patch -p1 < ${WORKDIR}/0003-add-dependency-to-pandm.patch
+ patch -p1 < ${WORKDIR}/0004-remove-psm-db-reference.patch
+ if [ "${@bb.utils.contains('DISTRO_CODENAME', 'dunfell', 'dunfell', '', d)}" = "dunfell" ] ; then
+ patch -p1 < ${WORKDIR}/0001-DBusLoop-SSL_state-TLS_ST_OK.patch
+ patch -p1 < ${WORKDIR}/0001-SSLeay_add_all_algorithms-remove-in-openssl-1.1.patch
+ fi
+ touch patch_applied
+ fi
+}
+addtask turris_patches after do_unpack before do_compile
+
+do_install_append_class-target(){
+ # Config files and scripts
+ install -m 777 ${S}/scripts/cli_start_arm.sh ${D}/usr/ccsp/cli_start.sh
+ install -m 777 ${S}/scripts/cosa_start_arm.sh ${D}/usr/ccsp/cosa_start.sh
+
+ # we need unix socket path
+ echo "unix:path=/var/run/dbus/system_bus_socket" > ${S}/config/ccsp_msg.cfg
+ install -m 644 ${S}/config/ccsp_msg.cfg ${D}/usr/ccsp/ccsp_msg.cfg
+ install -m 644 ${S}/config/ccsp_msg.cfg ${D}/usr/ccsp/cm/ccsp_msg.cfg
+ install -m 644 ${S}/config/ccsp_msg.cfg ${D}/usr/ccsp/mta/ccsp_msg.cfg
+ install -m 644 ${S}/config/ccsp_msg.cfg ${D}/usr/ccsp/pam/ccsp_msg.cfg
+ install -m 644 ${S}/config/ccsp_msg.cfg ${D}/usr/ccsp/tr069pa/ccsp_msg.cfg
+
+ install -m 777 ${S}/systemd_units/scripts/ccspSysConfigEarly.sh ${D}/usr/ccsp/ccspSysConfigEarly.sh
+ install -m 777 ${S}/systemd_units/scripts/ccspSysConfigLate.sh ${D}/usr/ccsp/ccspSysConfigLate.sh
+ install -m 777 ${S}/systemd_units/scripts/utopiaInitCheck.sh ${D}/usr/ccsp/utopiaInitCheck.sh
+ install -m 777 ${S}/systemd_units/scripts/ccspPAMCPCheck.sh ${D}/usr/ccsp/ccspPAMCPCheck.sh
+
+ install -m 777 ${S}/systemd_units/scripts/ProcessResetCheck.sh ${D}/usr/ccsp/ProcessResetCheck.sh
+ sed -i -e "s/source \/rdklogger\/logfiles.sh;syncLogs_nvram2/#source \/rdklogger\/logfiles.sh;syncLogs_nvram2/g" ${D}/usr/ccsp/ProcessResetCheck.sh
+ # install systemd services
+ install -d ${D}${systemd_unitdir}/system
+ install -D -m 0644 ${S}/systemd_units/ccspwifiagent.service ${D}${systemd_unitdir}/system/ccspwifiagent.service
+ install -D -m 0644 ${S}/systemd_units/CcspCrSsp.service ${D}${systemd_unitdir}/system/CcspCrSsp.service
+ install -D -m 0644 ${S}/systemd_units/CcspPandMSsp.service ${D}${systemd_unitdir}/system/CcspPandMSsp.service
+ install -D -m 0644 ${S}/systemd_units/PsmSsp.service ${D}${systemd_unitdir}/system/PsmSsp.service
+ install -D -m 0644 ${S}/systemd_units/rdkbLogMonitor.service ${D}${systemd_unitdir}/system/rdkbLogMonitor.service
+ install -D -m 0644 ${S}/systemd_units/CcspTandDSsp.service ${D}${systemd_unitdir}/system/CcspTandDSsp.service
+ install -D -m 0644 ${S}/systemd_units/CcspLMLite.service ${D}${systemd_unitdir}/system/CcspLMLite.service
+ install -D -m 0644 ${S}/systemd_units/CcspTr069PaSsp.service ${D}${systemd_unitdir}/system/CcspTr069PaSsp.service
+ install -D -m 0644 ${S}/systemd_units/snmpSubAgent.service ${D}${systemd_unitdir}/system/snmpSubAgent.service
+ install -D -m 0644 ${S}/systemd_units/snmpSubAgent.service ${D}${systemd_unitdir}/system/snmpSubAgent.service
+ install -D -m 0644 ${S}/systemd_units/CcspEthAgent.service ${D}${systemd_unitdir}/system/CcspEthAgent.service
+
+ #rfc service file
+ install -D -m 0644 ${S}/systemd_units/rfc.service ${D}${systemd_unitdir}/system/rfc.service
+
+ install -D -m 0644 ${WORKDIR}/wifiinitialized.service ${D}${systemd_unitdir}/system/wifiinitialized.service
+ install -D -m 0644 ${WORKDIR}/checkturriswifisupport.service ${D}${systemd_unitdir}/system/checkturriswifisupport.service
+
+ install -D -m 0644 ${WORKDIR}/wifiinitialized.path ${D}${systemd_unitdir}/system/wifiinitialized.path
+ install -D -m 0644 ${WORKDIR}/turriswifiinitialized.path ${D}${systemd_unitdir}/system/turriswifiinitialized.path
+ install -D -m 0644 ${WORKDIR}/checkturriswifisupport.path ${D}${systemd_unitdir}/system/checkturriswifisupport.path
+
+ install -D -m 0644 ${WORKDIR}/wifi-initialized.target ${D}${systemd_unitdir}/system/wifi-initialized.target
+
+ install -D -m 0644 ${S}/systemd_units/ProcessResetDetect.service ${D}${systemd_unitdir}/system/ProcessResetDetect.service
+ install -D -m 0644 ${S}/systemd_units/ProcessResetDetect.path ${D}${systemd_unitdir}/system/ProcessResetDetect.path
+
+ # Install wrapper for breakpad (disabled to support External Source build)
+ #install -d ${D}${includedir}/ccsp
+ #install -m 644 ${S}/source/breakpad_wrapper/include/breakpad_wrapper.h ${D}${includedir}/ccsp
+
+ # Install "vendor information"
+ install -m 0644 ${WORKDIR}/ccsp_vendor.h ${D}${includedir}/ccsp
+
+ sed -i -- 's/NotifyAccess=.*/#NotifyAccess=main/g' ${D}${systemd_unitdir}/system/CcspCrSsp.service
+ sed -i -- 's/notify.*/forking/g' ${D}${systemd_unitdir}/system/CcspCrSsp.service
+
+ #copy rfc.properties into nvram
+ sed -i '/ExecStartPre/ a\ExecStartPre=-/bin/cp /etc/rfc.properties /nvram/' ${D}${systemd_unitdir}/system/rfc.service
+ #reduce sleep time to 12 sconds
+ sed -i 's/300/12/g' ${D}${systemd_unitdir}/system/rfc.service
+
+ #change for turris omnia
+ sed -i 's/PIDFile/#&/' ${D}${systemd_unitdir}/system/CcspPandMSsp.service
+
+ #WanManager - RdkWanManager.service
+ DISTRO_WAN_ENABLED="${@bb.utils.contains('DISTRO_FEATURES','rdkb_wan_manager','true','false',d)}"
+ if [ $DISTRO_WAN_ENABLED = 'true' ]; then
+ install -D -m 0644 ${S}/systemd_units/RdkWanManager.service ${D}${systemd_unitdir}/system/RdkWanManager.service
+ sed -i "/WorkingDirectory/a ExecStartPre=/bin/sh /lib/rdk/run_rm_key.sh" ${D}${systemd_unitdir}/system/RdkWanManager.service
+ sed -i "s/After=CcspCrSsp.service/After=CcspCrSsp.service utopia.service/g" ${D}${systemd_unitdir}/system/RdkWanManager.service
+ sed -i "s/CcspPandMSsp.service/CcspCrSsp.service CcspPandMSsp.service/g" ${D}${systemd_unitdir}/system/CcspEthAgent.service
+ install -D -m 0644 ${WORKDIR}/utopia.service ${D}${systemd_unitdir}/system/utopia.service
+ install -D -m 0644 ${S}/systemd_units/RdkTelcoVoiceManager.service ${D}${systemd_unitdir}/system/RdkTelcoVoiceManager.service
+ install -D -m 0644 ${S}/systemd_units/RdkVlanManager.service ${D}${systemd_unitdir}/system/RdkVlanManager.service
+ fi
+
+ ##### erouter0 ip issue
+ sed -i '/Factory/a \
+IsErouterRunningStatus=\`ifconfig erouter0 | grep RUNNING | grep -v grep | wc -l\` \
+if [ \"\$IsErouterRunningStatus\" == 0 ]; then \
+ethtool -s erouter0 speed 1000 \
+fi' ${D}/usr/ccsp/ccspPAMCPCheck.sh
+
+}
+
+do_install_append_dunfell_class-target () {
+ #for yocto 3.1, Making psm to run after gwprovethwan
+ sed -i '/CcspCrSsp.service/c After=CcspCrSsp.service gwprovethwan.service' ${D}${systemd_unitdir}/system/PsmSsp.service
+}
+
+SYSTEMD_SERVICE_${PN} += "ccspwifiagent.service"
+SYSTEMD_SERVICE_${PN} += "CcspCrSsp.service"
+SYSTEMD_SERVICE_${PN} += "CcspPandMSsp.service"
+SYSTEMD_SERVICE_${PN} += "PsmSsp.service"
+SYSTEMD_SERVICE_${PN} += "rdkbLogMonitor.service"
+SYSTEMD_SERVICE_${PN} += "CcspTandDSsp.service"
+SYSTEMD_SERVICE_${PN} += "CcspLMLite.service"
+SYSTEMD_SERVICE_${PN} += "CcspTr069PaSsp.service"
+SYSTEMD_SERVICE_${PN} += "snmpSubAgent.service"
+SYSTEMD_SERVICE_${PN} += "CcspEthAgent.service"
+SYSTEMD_SERVICE_${PN} += "wifiinitialized.service"
+SYSTEMD_SERVICE_${PN} += "checkturriswifisupport.service"
+SYSTEMD_SERVICE_${PN} += "wifiinitialized.path"
+SYSTEMD_SERVICE_${PN} += "turriswifiinitialized.path"
+SYSTEMD_SERVICE_${PN} += "checkturriswifisupport.path"
+SYSTEMD_SERVICE_${PN} += "wifi-initialized.target"
+SYSTEMD_SERVICE_${PN} += "ProcessResetDetect.path"
+SYSTEMD_SERVICE_${PN} += "ProcessResetDetect.service"
+SYSTEMD_SERVICE_${PN} += "rfc.service"
+SYSTEMD_SERVICE_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', 'RdkWanManager.service utopia.service ', '', d)}"
+
+FILES_${PN}_append = " \
+ /usr/ccsp/ccspSysConfigEarly.sh \
+ /usr/ccsp/ccspSysConfigLate.sh \
+ /usr/ccsp/utopiaInitCheck.sh \
+ /usr/ccsp/ccspPAMCPCheck.sh \
+ /usr/ccsp/ProcessResetCheck.sh \
+ ${systemd_unitdir}/system/ccspwifiagent.service \
+ ${systemd_unitdir}/system/CcspCrSsp.service \
+ ${systemd_unitdir}/system/CcspPandMSsp.service \
+ ${systemd_unitdir}/system/PsmSsp.service \
+ ${systemd_unitdir}/system/rdkbLogMonitor.service \
+ ${systemd_unitdir}/system/CcspTandDSsp.service \
+ ${systemd_unitdir}/system/CcspLMLite.service \
+ ${systemd_unitdir}/system/CcspTr069PaSsp.service \
+ ${systemd_unitdir}/system/snmpSubAgent.service \
+ ${systemd_unitdir}/system/CcspEthAgent.service \
+ ${systemd_unitdir}/system/wifiinitialized.service \
+ ${systemd_unitdir}/system/checkturriswifisupport.service \
+ ${systemd_unitdir}/system/wifiinitialized.path \
+ ${systemd_unitdir}/system/turriswifiinitialized.path \
+ ${systemd_unitdir}/system/checkturriswifisupport.path \
+ ${systemd_unitdir}/system/wifi-initialized.target \
+ ${systemd_unitdir}/system/ProcessResetDetect.path \
+ ${systemd_unitdir}/system/ProcessResetDetect.service \
+ ${systemd_unitdir}/system/rfc.service \
+"
+FILES_${PN}_append = "${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' ${systemd_unitdir}/system/RdkWanManager.service ${systemd_unitdir}/system/utopia.service ${systemd_unitdir}/system/RdkVlanManager.service ${systemd_unitdir}/system/RdkTelcoVoiceManager.service ', '', d)}"
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/0001-DBusLoop-SSL_state-TLS_ST_OK.patch b/recipes-ccsp/ccsp/ccsp-common-library/0001-DBusLoop-SSL_state-TLS_ST_OK.patch
new file mode 100644
index 0000000..770abff
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/0001-DBusLoop-SSL_state-TLS_ST_OK.patch
@@ -0,0 +1,52 @@
+From d69f7dc3304bb5dd8803cef63a1a96e7c102e153 Mon Sep 17 00:00:00 2001
+From: Jaga <jagadheesan_duraisamy@comcast.com>
+Date: Mon, 6 Apr 2020 17:29:42 +0000
+Subject: [PATCH] DBusLoop-SSL_state-TLS_ST_OK
+
+Reason for change: typedef DBusLoop struct, changed ssl->state
+to SSL_state(ssl) for openssl > 1.1 and SSL_get_state(ssl) for openssl >
+1.1.1
+
+Source: COMCAST
+License: Apache-2.0
+Upstream-Status: Pending
+Signed-off-by: Jaga <jagadheesan_duraisamy@comcast.com>
+---
+ source/ccsp/include/ccsp_message_bus.h | 2 ++
+ source/util_api/ansc/AnscPlatform/user_openssl.c | 10 +++++++++-
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/source/ccsp/include/ccsp_message_bus.h b/source/ccsp/include/ccsp_message_bus.h
+index 9fb9aae9..7c315be0 100644
+--- a/source/ccsp/include/ccsp_message_bus.h
++++ b/source/ccsp/include/ccsp_message_bus.h
+@@ -153,6 +153,8 @@ typedef struct _CCSP_MESSAGE_FILTER
+
+ } CCSP_MESSAGE_FILTER;
+
++typedef struct DBusLoop DBusLoop;
++
+ typedef struct _CCSP_MESSAGE_BUS_CONNECTION
+ {
+ DBusConnection *conn;
+diff --git a/source/util_api/ansc/AnscPlatform/user_openssl.c b/source/util_api/ansc/AnscPlatform/user_openssl.c
+index 7e5c2c7d..6d1f4f51 100644
+--- a/source/util_api/ansc/AnscPlatform/user_openssl.c
++++ b/source/util_api/ansc/AnscPlatform/user_openssl.c
+@@ -392,7 +392,15 @@ SSL * openssl_connect (int fd)
+
+ SSL_set_connect_state (ssl);
+
+- if (SSL_connect (ssl) <= 0 || ssl->state != SSL_ST_OK)
++ if (SSL_connect (ssl) <= 0 ||
++#if (OPENSSL_VERSION_NUMBER >= 0x10101000L)
++ SSL_get_state(ssl) != TLS_ST_OK)
++#elif (OPENSSL_VERSION_NUMBER >= 0x10100000L)
++ SSL_state(ssl) != TLS_ST_OK)
++#else
++ ssl->state != SSL_ST_OK)
++#endif
++
+ {
+ AnscTraceWarning(("openssl_connect - failed in SSL_set_connect_state \n"));
+ goto error;
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/0001-SSLeay_add_all_algorithms-remove-in-openssl-1.1.patch b/recipes-ccsp/ccsp/ccsp-common-library/0001-SSLeay_add_all_algorithms-remove-in-openssl-1.1.patch
new file mode 100644
index 0000000..2cca4be
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/0001-SSLeay_add_all_algorithms-remove-in-openssl-1.1.patch
@@ -0,0 +1,30 @@
+From d1b13416095d4fe513ee739de179913222539993 Mon Sep 17 00:00:00 2001
+From: Jaga <jagadheesan_duraisamy@comcast.com>
+Date: Mon, 6 Apr 2020 18:35:17 +0000
+Subject: [PATCH] SSLeay_add_all_algorithms remove in openssl 1.1
+
+Reason for change: Remove deprecated API SSLeay_add_all_algorithms for
+openssl 1.1 and above
+
+Source: COMCAST
+License: Apache-2.0
+Upstream-Status: Pending
+Signed-off-by: Jaga <jagadheesan_duraisamy@comcast.com>
+---
+ source/util_api/ansc/AnscPlatform/user_openssl.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/source/util_api/ansc/AnscPlatform/user_openssl.c b/source/util_api/ansc/AnscPlatform/user_openssl.c
+index 0d74871f..4cac8483 100644
+--- a/source/util_api/ansc/AnscPlatform/user_openssl.c
++++ b/source/util_api/ansc/AnscPlatform/user_openssl.c
+@@ -68,7 +68,9 @@ void initialize_openssl_lib()
+
+ SSL_library_init ();
+ SSL_load_error_strings ();
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ SSLeay_add_all_algorithms ();
++#endif
+ SSLeay_add_ssl_algorithms ();
+ }
+
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/0001-breakpad-wrapper.patch b/recipes-ccsp/ccsp/ccsp-common-library/0001-breakpad-wrapper.patch
new file mode 100644
index 0000000..8e3dcd7
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/0001-breakpad-wrapper.patch
@@ -0,0 +1,81 @@
+--- a/source/breakpad_wrapper/breakpad_wrapper.cpp
++++ b/source/breakpad_wrapper/breakpad_wrapper.cpp
+@@ -0,0 +1,20 @@
++#include <client/linux/handler/exception_handler.h>
++// called by 'google_breakpad::ExceptionHandler' on every crash
++namespace
++{
++bool breakpadCallback(const google_breakpad::MinidumpDescriptor& descriptor, void* context, bool succeeded)
++{
++ (void) descriptor;
++ (void) context;
++ return succeeded;
++}
++// Instantiate only one 'google_breakpad::ExceptionHandler'
++// - "/opt/minidumps" is canonical path that should be in sync with uploadDumps.sh script
++extern "C" void breakpad_ExceptionHandler()
++{
++ static google_breakpad::ExceptionHandler* excHandler = NULL;
++ delete excHandler;
++ excHandler = new google_breakpad::ExceptionHandler(google_breakpad::MinidumpDescriptor("/opt/minidumps"), NULL, breakpadCallback, NULL, true, -1);
++}
++}
++
+--- a/source/breakpad_wrapper/include/breakpad_wrapper.h
++++ b/source/breakpad_wrapper/include/breakpad_wrapper.h
+@@ -0,0 +1,8 @@
++#ifdef __cplusplus
++extern "C"
++{
++#endif
++void breakpad_ExceptionHandler();
++#ifdef __cplusplus
++}
++#endif
+--- a/source/Makefile.am
++++ b/source/Makefile.am
+@@ -16,4 +16,4 @@
+ # See the License for the specific language governing permissions and
+ # limitations under the License.
+ ##########################################################################
+-SUBDIRS = cosa debug_api ccsp util_api
++SUBDIRS = cosa debug_api ccsp util_api breakpad_wrapper
+--- a/source/breakpad_wrapper/Makefile.am
++++ b/source/breakpad_wrapper/Makefile.am
+@@ -0,0 +1,8 @@
++AM_CPPFLAGS = -Wall -Werror
++ACLOCAL_AMFLAGS = -I m4
++hardware_platform = i686-linux-gnu
++
++noinst_LTLIBRARIES = libCcspCommonLibrary_breakpad_wrapper.la
++libCcspCommonLibrary_breakpad_wrapper_la_CPPFLAGS = $(CPPFLAGS)
++libCcspCommonLibrary_breakpad_wrapper_la_SOURCES = breakpad_wrapper.cpp
++libCcspCommonLibrary_breakpad_wrapper_la_LDFLAGS = -lbreakpad_client
+--- a/configure.ac
++++ b/configure.ac
+@@ -34,6 +34,7 @@
+
+ # Checks for programs.
+ AC_PROG_CC
++AC_PROG_CXX
+ AC_PROG_INSTALL
+ AM_PROG_CC_C_O
+ AM_PROG_LIBTOOL(libtool)
+@@ -112,6 +113,7 @@
+ source/cosa/package/Makefile
+ source/cosa/Makefile
+ source/debug_api/Makefile
++ source/breakpad_wrapper/Makefile
+ source/ccsp/components/common/PoamIrepFolder/Makefile
+ source/ccsp/components/common/DataModel/dml/components/DslhVarEntity/Makefile
+ source/ccsp/components/common/DataModel/dml/components/DslhObjController/Makefile
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -65,6 +65,7 @@
+ source/cosa/package/bmc2/components/Bmc2ComTerminal/libCcspCommonLibrary_Bmc2ComTerminal.la \
+ source/cosa/package/bmc2/components/Bmc2ComDomain/libCcspCommonLibrary_Bmc2ComDomain.la \
+ source/debug_api/libCcspCommonLibrary_debug_api.la \
++ source/breakpad_wrapper/libCcspCommonLibrary_breakpad_wrapper.la \
+ source/ccsp/components/common/PoamIrepFolder/libCcspCommonLibrary_PoamIrepFolder.la \
+ source/ccsp/components/common/DataModel/dml/components/DslhVarEntity/libCcspCommonLibrary_DslhVarEntity.la \
+ source/ccsp/components/common/DataModel/dml/components/DslhObjController/libCcspCommonLibrary_DslhObjController.la \
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/0003-add-dependency-to-pandm.patch b/recipes-ccsp/ccsp/ccsp-common-library/0003-add-dependency-to-pandm.patch
new file mode 100644
index 0000000..3ff558b
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/0003-add-dependency-to-pandm.patch
@@ -0,0 +1,13 @@
+diff --git a/systemd_units/CcspPandMSsp.service b/systemd_units/CcspPandMSsp.service
+index 192724d5..fe49033f 100644
+--- a/systemd_units/CcspPandMSsp.service
++++ b/systemd_units/CcspPandMSsp.service
+@@ -19,7 +19,7 @@
+ [Unit]
+ Description=CcspPandMSsp service
+
+-After=PsmSsp.service
++After=gwprovethwan.service PsmSsp.service
+
+ [Service]
+ Type=forking
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/0004-remove-psm-db-reference.patch b/recipes-ccsp/ccsp/ccsp-common-library/0004-remove-psm-db-reference.patch
new file mode 100644
index 0000000..dd98f1c
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/0004-remove-psm-db-reference.patch
@@ -0,0 +1,12 @@
+diff --git a/systemd_units/PsmSsp.service b/systemd_units/PsmSsp.service
+index cb4d530d..648a55f9 100644
+--- a/systemd_units/PsmSsp.service
++++ b/systemd_units/PsmSsp.service
+@@ -29,7 +29,6 @@ Environment="Subsys=eRT."
+ Environment="LOG4C_RCPATH=/etc"
+ EnvironmentFile=/etc/device.properties
+ ExecStartPre=/bin/sh -c '(/usr/ccsp/utopiaInitCheck.sh)'
+-ExecStartPre=/bin/sh -c '(/usr/ccsp/log_psm.db.sh)'
+ ExecStart=/usr/bin/PsmSsp -subsys $Subsys
+ ExecStop=/bin/sh -c 'echo "`date`: Stopping/Restarting PsmSsp" >> ${PROCESS_RESTART_LOG}'
+ Restart=always
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/ccsp_vendor.h b/recipes-ccsp/ccsp/ccsp-common-library/ccsp_vendor.h
new file mode 100644
index 0000000..d942c1f
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/ccsp_vendor.h
@@ -0,0 +1,22 @@
+/*
+If not stated otherwise in this file or this component's LICENSE
+file the following copyright and licenses apply:
+
+Copyright [2019] [RDK Management]
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+#define CONFIG_VENDOR_NAME "Turris CZ"
+#define CONFIG_VENDOR_ID "0xFFFFFFFE"
+#define CONFIG_TI_GW_DESCRIPTION "Turris Omnia Gateway device"
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.path b/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.path
new file mode 100644
index 0000000..4f9c8d8
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.path
@@ -0,0 +1,9 @@
+[Unit]
+Description=Check Turris Wifi Support Initialized Path
+
+[Path]
+PathExists=/tmp/pam_initialized
+Unit=checkturriswifisupport.service
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.service b/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.service
new file mode 100644
index 0000000..e92810f
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/checkturriswifisupport.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Check WIFI support on Turris Omnia device
+After=hostapd.service
+
+[Service]
+Type=forking
+ExecStart=/bin/sh -c '/usr/ccsp/wifi/checkwifi.sh'
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/gwprovapp.conf b/recipes-ccsp/ccsp/ccsp-common-library/gwprovapp.conf
new file mode 100644
index 0000000..dde640b
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/gwprovapp.conf
@@ -0,0 +1,6 @@
+[Unit]
+After=network.target
+Wants=network.target
+
+[Service]
+ExecStart=/usr/bin/gw_prov_utopia
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/turriswifiinitialized.path b/recipes-ccsp/ccsp/ccsp-common-library/turriswifiinitialized.path
new file mode 100644
index 0000000..5b4da66
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/turriswifiinitialized.path
@@ -0,0 +1,9 @@
+[Unit]
+Description=TurrisOmnia WIFI Initialized Path
+
+[Path]
+PathExists=/tmp/wifi_driver_initialized
+Unit=ccspwifiagent.service
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/utopia.service b/recipes-ccsp/ccsp/ccsp-common-library/utopia.service
new file mode 100644
index 0000000..7df68b3
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/utopia.service
@@ -0,0 +1,34 @@
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2021 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+[Unit]
+Description=Utopia service
+
+After=mount-nonvol.service
+
+[Service]
+Type=forking
+WorkingDirectory=/etc/utopia
+EnvironmentFile=/etc/device.properties
+ExecStart=/bin/sh /etc/utopia/utopia_init.sh
+ExecStop=/bin/sh -c 'echo "Stopping/Restarting utopia_init.sh" >> ${PROCESS_RESTART_LOG}'
+
+StandardOutput=syslog+console
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/wifi-initialized.target b/recipes-ccsp/ccsp/ccsp-common-library/wifi-initialized.target
new file mode 100644
index 0000000..c6c1057
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/wifi-initialized.target
@@ -0,0 +1,3 @@
+[Unit]
+Description=WiFi Initialization Complete
+Documentation=man:systemd.special(7)
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/wifiinitialized.path b/recipes-ccsp/ccsp/ccsp-common-library/wifiinitialized.path
new file mode 100644
index 0000000..4cb7b45
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/wifiinitialized.path
@@ -0,0 +1,9 @@
+[Unit]
+Description= WiFi Initialized Path
+
+[Path]
+PathExists=/tmp/wifi_initialized
+Unit=wifi-initialized.target
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-ccsp/ccsp/ccsp-common-library/wifiinitialized.service b/recipes-ccsp/ccsp/ccsp-common-library/wifiinitialized.service
new file mode 100644
index 0000000..1fd98d6
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-common-library/wifiinitialized.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=WiFi Initialized service
+
+[Service]
+Type=simple
+ExecStart=/bin/echo "Wifi is initialized"
+RemainAfterExit=yes
+
+StandardOutput=syslog
diff --git a/recipes-ccsp/ccsp/ccsp-cr.bbappend b/recipes-ccsp/ccsp/ccsp-cr.bbappend
new file mode 100644
index 0000000..9362db4
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-cr.bbappend
@@ -0,0 +1,14 @@
+require ccsp_common_turris.inc
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI_append = " \
+ file://cr-deviceprofile_turris.xml \
+"
+
+do_install_append() {
+ # Config files and scripts
+ install -m 644 ${WORKDIR}/cr-deviceprofile_turris.xml ${D}/usr/ccsp/cr-deviceprofile.xml
+ install -m 644 ${WORKDIR}/cr-deviceprofile_turris.xml ${D}/usr/ccsp/cr-ethwan-deviceprofile.xml
+}
+
+LDFLAGS_append_dunfell = " -lpthread -lbreakpadwrapper"
diff --git a/recipes-ccsp/ccsp/ccsp-cr/cr-deviceprofile_turris.xml b/recipes-ccsp/ccsp/ccsp-cr/cr-deviceprofile_turris.xml
new file mode 100755
index 0000000..ac1d23e
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-cr/cr-deviceprofile_turris.xml
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="utf-8" ?>
+
+<deviceProfile>
+ <!-- Different CR must have different names -->
+ <name>com.cisco.spvtg.ccsp.CR</name>
+ <version>1</version>
+ <deviceName>VideoScape EP1.0</deviceName>
+ <components>
+ <component>
+ <name>com.cisco.spvtg.ccsp.CR</name> <version>1</version>
+ </component>
+ <component>
+ <name>com.cisco.spvtg.ccsp.psm</name> <version>1</version>
+ </component>
+<!--
+ <component>
+ <name>com.cisco.spvtg.ccsp.mta</name> <version>1</version>
+ </component>
+ <component>
+ <name>com.cisco.spvtg.ccsp.cm</name> <version>1</version>
+ </component>
+-->
+ <component>
+ <name>com.cisco.spvtg.ccsp.pam</name> <version>1</version>
+ </component>
+<!--
+ <component>
+ <name>com.cisco.spvtg.ccsp.tr069pa</name> <version>1</version>
+ </component>
+-->
+ <component>
+ <name>com.cisco.spvtg.ccsp.tdm</name> <version>1</version>
+ </component>
+<!--
+ <component>
+ <name>com.cisco.spvtg.ccsp.wecb</name> <version>1</version>
+ </component>
+-->
+ <component>
+ <name>com.cisco.spvtg.ccsp.wifi</name> <version>1</version>
+ </component>
+
+ <component>
+ <name>com.cisco.spvtg.ccsp.lmlite</name> <version>1</version>
+ </component>
+<!--
+ <component>
+ <name>com.cisco.spvtg.ccsp.ssd</name> <version>1</version>
+ </component>
+ <component>
+ <name>com.cisco.spvtg.ccsp.fu</name> <version>1</version>
+ </component>
+-->
+
+ </components>
+</deviceProfile>
diff --git a/recipes-ccsp/ccsp/ccsp-dmcli.bbappend b/recipes-ccsp/ccsp/ccsp-dmcli.bbappend
new file mode 100644
index 0000000..a4fc0c0
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-dmcli.bbappend
@@ -0,0 +1,7 @@
+require ccsp_common_turris.inc
+
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+
+do_install_append_turris () {
+ ln -sf ${bindir}/dmcli ${D}${bindir}/ccsp_bus_client_tool
+}
diff --git a/recipes-ccsp/ccsp/ccsp-epon-agent.bbappend b/recipes-ccsp/ccsp/ccsp-epon-agent.bbappend
new file mode 100644
index 0000000..41df9ff
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-epon-agent.bbappend
@@ -0,0 +1,3 @@
+require ccsp_common_turris.inc
+
+LDFLAGS_append_dunfell = " -lbreakpadwrapper"
diff --git a/recipes-ccsp/ccsp/ccsp-eth-agent.bbappend b/recipes-ccsp/ccsp/ccsp-eth-agent.bbappend
new file mode 100644
index 0000000..66dd286
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-eth-agent.bbappend
@@ -0,0 +1,11 @@
+require ccsp_common_turris.inc
+
+CFLAGS_aarch64_append = " -Werror=format-truncation=1 "
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+LDFLAGS_append =" \
+ -lsyscfg \
+ -lbreakpadwrapper \
+"
+LDFLAGS_append_dunfell = " -lpthread -lsafec-3.5.1"
diff --git a/recipes-ccsp/ccsp/ccsp-gwprovapp-epon.bbappend b/recipes-ccsp/ccsp/ccsp-gwprovapp-epon.bbappend
new file mode 100644
index 0000000..1836ce2
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-gwprovapp-epon.bbappend
@@ -0,0 +1 @@
+require ccsp_common_turris.inc
diff --git a/recipes-ccsp/ccsp/ccsp-gwprovapp-ethwan.bbappend b/recipes-ccsp/ccsp/ccsp-gwprovapp-ethwan.bbappend
new file mode 100644
index 0000000..767dd86
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-gwprovapp-ethwan.bbappend
@@ -0,0 +1,31 @@
+require ccsp_common_turris.inc
+
+export PLATFORM_TURRIS_ENABLED="yes"
+
+inherit systemd
+
+DEPENDS_remove_dunfell = "hal-gwprovappabs"
+DEPENDS_append_dunfell = " breakpad-wrapper rdk-logger utopia"
+
+LDFLAGS_remove_dunfell = "-lgwprovappabs"
+
+CFLAGS_append = " -Wno-unused-variable -Wno-sizeof-pointer-memaccess -Wno-unused-parameter -Wno-unused-but-set-variable "
+
+do_install_append () {
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/service/gwprovethwan.service ${D}${systemd_unitdir}/system
+ sed -i "s/After=rg_network.service/After=network.target/g" ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -i "/After=network.target/a wants=network.target" ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -e '/Type/ s/^#*/#/' -i ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -e '/ExecStartPre/ s/^#*/#/' -i ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -i "/utopia_init.sh/a ExecStartPre=-/bin/sh -c 'mkdir -p /rdklogs/logs/'" ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -e '/ExecStartPost/ s/^#*/#/' -i ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -i "/bin\/rm/a Restart=always" ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -i "s/StandardOutput=syslog/StandardOutput=syslog+console/g" ${D}${systemd_unitdir}/system/gwprovethwan.service
+ sed -i "s/wants=/Wants=/" ${D}${systemd_unitdir}/system/gwprovethwan.service
+}
+
+SYSTEMD_SERVICE_${PN} = "gwprovethwan.service"
+FILES_${PN} += " \
+ ${systemd_unitdir}/system/gwprovethwan.service \
+"
diff --git a/recipes-ccsp/ccsp/ccsp-gwprovapp.bbappend b/recipes-ccsp/ccsp/ccsp-gwprovapp.bbappend
new file mode 100644
index 0000000..5121b5f
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-gwprovapp.bbappend
@@ -0,0 +1,23 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+require ccsp_common_turris.inc
+
+SRC_URI += " file://turris-macro-gwprov.patch;apply=no"
+SRC_URI += " file://set-uplink-for-turris.patch;apply=no"
+
+# we need to patch to code for Turris
+do_turris_patches() {
+ cd ${S}
+ if [ ! -e patch_applied ]; then
+ patch -p1 < ${WORKDIR}/turris-macro-gwprov.patch
+ patch -p1 < ${WORKDIR}/set-uplink-for-turris.patch
+ touch patch_applied
+ fi
+}
+addtask turris_patches after do_unpack before do_compile
+
+export PLATFORM_TURRIS_ENABLED="yes"
+
+FILES_${PN} += " \
+ /usr/bin/gw_prov_utopia \
+"
diff --git a/recipes-ccsp/ccsp/ccsp-home-security.bbappend b/recipes-ccsp/ccsp/ccsp-home-security.bbappend
new file mode 100644
index 0000000..1836ce2
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-home-security.bbappend
@@ -0,0 +1 @@
+require ccsp_common_turris.inc
diff --git a/recipes-ccsp/ccsp/ccsp-hotspot.bbappend b/recipes-ccsp/ccsp/ccsp-hotspot.bbappend
new file mode 100644
index 0000000..6e99747
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-hotspot.bbappend
@@ -0,0 +1,4 @@
+require ccsp_common_turris.inc
+
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
diff --git a/recipes-ccsp/ccsp/ccsp-lm-lite.bbappend b/recipes-ccsp/ccsp/ccsp-lm-lite.bbappend
new file mode 100644
index 0000000..b7e65ec
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-lm-lite.bbappend
@@ -0,0 +1,6 @@
+require ccsp_common_turris.inc
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+LDFLAGS_append = " -Wl,--no-as-needed"
+
diff --git a/recipes-ccsp/ccsp/ccsp-logagent.bbappend b/recipes-ccsp/ccsp/ccsp-logagent.bbappend
new file mode 100644
index 0000000..8f3aafc
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-logagent.bbappend
@@ -0,0 +1,3 @@
+require ccsp_common_turris.inc
+
+LDFLAGS_append_dunfell = " -lpthread"
diff --git a/recipes-ccsp/ccsp/ccsp-misc.bbappend b/recipes-ccsp/ccsp/ccsp-misc.bbappend
new file mode 100644
index 0000000..925ae9e
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-misc.bbappend
@@ -0,0 +1,9 @@
+require ccsp_common_turris.inc
+
+DEPENDS_append_dunfell = " ccsp-lm-lite"
+
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+CFLAGS += " -DDHCPV4_CLIENT_UDHCPC -DDHCPV6_CLIENT_DIBBLER "
diff --git a/recipes-ccsp/ccsp/ccsp-mta-agent.bbappend b/recipes-ccsp/ccsp/ccsp-mta-agent.bbappend
new file mode 100644
index 0000000..0a03081
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-mta-agent.bbappend
@@ -0,0 +1,11 @@
+require ccsp_common_turris.inc
+
+DEPENDS_append_dunfell = " safec"
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+
+do_install_append() {
+ # Config files and scripts
+ install -m 644 ${S}/config/CcspMtaAgent.xml ${D}/usr/ccsp/mta/CcspMtaAgent.xml
+ install -m 644 ${S}/config/CcspMta.cfg ${D}/usr/ccsp/mta/CcspMta.cfg
+ install -m 644 ${S}/config/CcspMtaLib.cfg ${D}/usr/ccsp/mta/CcspMtaLib.cfg
+}
diff --git a/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend b/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend
new file mode 100644
index 0000000..1f592e7
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-p-and-m.bbappend
@@ -0,0 +1,133 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+require ccsp_common_turris.inc
+
+DEPENDS_append = " utopia curl "
+
+CFLAGS_append = " \
+ -I=${includedir}/utctx \
+ -I=${includedir}/utapi \
+"
+LDFLAGS_append =" \
+ -lsyscfg \
+ -lbreakpadwrapper \
+"
+
+LDFLAGS_remove = " \
+ -lmoca_mgnt \
+"
+
+CFLAGS_remove = "-Werror"
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+do_configure_prepend () {
+ #for WanManager support
+ #Below lines of code needs to be removed , once (Device.DHCPv4.Client.{i} and Device.DhCPv6,CLient.{i}) the mentioned parameters are permanently removed from TR181-USGv2.XML
+ DISTRO_WAN_ENABLED="${@bb.utils.contains('DISTRO_FEATURES','rdkb_wan_manager','true','false',d)}"
+if [ $DISTRO_WAN_ENABLED = 'true' ]; then
+if [ ! -f ${WORKDIR}/WanManager_XML_UPDATED ]; then
+ GREP_WORD=`cat -n ${S}/config-arm/TR181-USGv2.XML | grep 9536 | cut -d '<' -f2 | cut -d '>' -f2`
+ if [ "$GREP_WORD" = "ClientNumberOfEntries" ]; then
+ #for DHCPv4.Client.{i}.
+ sed -i '9534s/<parameter>/<!-- <parameter>/g' ${S}/config-arm/TR181-USGv2.XML
+ sed -i '9542s/<\/parameter>/<\/parameter>-->/g' ${S}/config-arm/TR181-USGv2.XML
+ sed -i '9642s/<object>/<!-- <object>/g' ${S}/config-arm/TR181-USGv2.XML
+ sed -i '10058s/<\/object>/<\/object>-->/g' ${S}/config-arm/TR181-USGv2.XML
+ #for DHCPv6.Client.{i}.
+ sed -i '10832s/<parameter>/<!-- <parameter>/g' ${S}/config-arm/TR181-USGv2.XML
+ sed -i '10836s/<\/parameter>/<\/parameter>-->/g' ${S}/config-arm/TR181-USGv2.XML
+ sed -i '10839s/<object>/<!-- <object>/g' ${S}/config-arm/TR181-USGv2.XML
+ sed -i '11138s/<\/object>/<\/object>-->/g' ${S}/config-arm/TR181-USGv2.XML
+ fi
+ touch ${WORKDIR}/WanManager_XML_UPDATED
+fi
+fi
+}
+
+do_install_append(){
+ # Config files and scripts
+ install -m 644 ${S}/config-arm/CcspDmLib.cfg ${D}/usr/ccsp/pam/CcspDmLib.cfg
+ install -m 644 ${S}/config-arm/CcspPam.cfg -t ${D}/usr/ccsp/pam
+ install -m 644 ${S}/config-arm/TR181-USGv2.XML -t ${D}/usr/ccsp/pam
+ install -m 755 ${S}/scripts/email_notification_monitor.sh ${D}/usr/ccsp/pam/email_notification_monitor.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/calc_random_time_to_reboot_dev.sh ${D}/usr/ccsp/pam/calc_random_time_to_reboot_dev.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/network_response.sh ${D}/usr/ccsp/pam/network_response.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/network_response.sh ${D}/etc/network_response.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/redirect_url.sh ${D}/usr/ccsp/pam/redirect_url.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/revert_redirect.sh ${D}/usr/ccsp/pam/revert_redirect.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/redirect_url.sh ${D}/etc/redirect_url.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/revert_redirect.sh ${D}/etc/revert_redirect.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/restart_services.sh ${D}/etc/restart_services.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/whitelist.sh ${D}/usr/ccsp/pam/whitelist.sh
+ install -m 755 ${S}/arch/intel_usg/boards/arm_shared/scripts/moca_status.sh ${D}/usr/ccsp/pam/moca_status.sh
+ install -m 777 ${D}/usr/bin/CcspPandMSsp -t ${D}/usr/ccsp/pam/
+
+ install -d ${D}/fss/gw/usr/sbin
+ ln -sf /sbin/ip.iproute2 ${D}/fss/gw/usr/sbin/ip
+
+ #captiveportal redirection
+ DISTRO_ENABLED="${@bb.utils.contains('DISTRO_FEATURES','webui_jst','true','false',d)}"
+ if [ $DISTRO_ENABLED = 'false' ]; then
+ sed -i "/captiveportaldhcp/a fi" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a lighttpd -f /var/lighttpd.conf" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a sleep 2" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a killall lighttpd" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a sed -i '\$d' /var/lighttpd.conf" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a sed -i '\$d' /var/lighttpd.conf" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a sed -e '/url.redirect/ s/^#*/#/' -i /var/lighttpd.conf" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a if [ \$CAPTIVEPORTAL == \"$\" ] ; then" ${D}/etc/revert_redirect.sh
+ sed -i "/captiveportaldhcp/a CAPTIVEPORTAL=\`cat /var/lighttpd.conf | grep captiveportal.php | cut -c1\`" ${D}/etc/revert_redirect.sh
+ sed -i "/dibbler-server start/a fi" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a fi" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a lighttpd -f \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a sleep 2" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a killall lighttpd" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a sed -i '\$d' \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a sed -i '\$d' \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a sed -e '/url.redirect/ s/^#*/#/' -i \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a if [ \$CAPTIVEPORTAL == \"\$\" ] ; then" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a CAPTIVEPORTAL=\`cat /var/lighttpd.conf | grep captiveportal.php | cut -c1\`" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a if [ \"\$CaptivePortal_flag\" == 1 ] && [ \"\$1\" == \"false\" ] ; then" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a fi" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a lighttpd -f \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a sleep 2" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a killall lighttpd" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a fi" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a echo \"\\\\\$HTTP[\\\\\"host\\\\\"] !~ \\\\\":8080\\\\\" { \\\\\$HTTP[\\\\\"url\\\\\"] !~ \\\\\"captiveportal.php\\\\\" { \\\\\$HTTP[\\\\\"referer\\\\\"] == \\\\\"\\\\\" { url.redirect = ( \\\\\".*\\\\\" => \\\\\"http://10.0.0.1/captiveportal.php\\\\\" ) url.redirect-code = 303 }\" >> \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a else" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a fi" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a sed -i \"/captiveportal.php/ s/^#*//g\" \$LIGHTTPD_CONF" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a else" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a echo \"Already lighttpd was successfully running with captiveportal changes\"" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a if [ \"\$lighttpd\" == \"\$\" ] ; then" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a if [ \"\$lighttpd_flag\" == 1 ] ; then" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a lighttpd=\`cat /var/lighttpd.conf | grep captiveportal.php | cut -c1\`" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a lighttpd_flag=\`cat /var/lighttpd.conf | grep captiveportal.php | wc -l\`" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a if [ \"\$CaptivePortal_flag\" == 1 ] && [ \"\$1\" == \"true\" ] ; then" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a fi" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a CaptivePortal_flag=1" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a else" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a CaptivePortal_flag=0" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a if [ -f /nvram/reverted ] ; then" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a LIGHTTPD_CONF=/var/lighttpd.conf" ${D}/etc/restart_services.sh
+ sed -i "/dibbler-server start/a #captiveportal redirection" ${D}/etc/restart_services.sh
+ fi
+
+########## ETHWAN Support
+ sed -i "s/www.comcast.net/www.google.com/g" ${D}/etc/partners_defaults.json
+ sed -i "s/\"Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.RDKB_UIBranding.AllowEthernetWAN\"\ :\ \"false\"\ \,/\"Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.RDKB_UIBranding.AllowEthernetWAN\" : \"true\" ,/g" ${D}/etc/partners_defaults.json
+
+}
+
+
+FILES_${PN}-ccsp += " \
+ ${prefix}/ccsp/pam/CcspPandMSsp \
+ /fss/gw/usr/sbin/ip \
+"
+
+RDEPENDS_${PN}-ccsp_append_dunfell = " bash"
diff --git a/recipes-ccsp/ccsp/ccsp-psm.bbappend b/recipes-ccsp/ccsp/ccsp-psm.bbappend
new file mode 100644
index 0000000..1a16ba4
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-psm.bbappend
@@ -0,0 +1,52 @@
+require ccsp_common_turris.inc
+
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
+
+do_install_append() {
+ # Config files and scripts
+ install -d ${D}/usr/ccsp/config
+ install -m 644 ${S}/config/bbhm_def_cfg_qemu.xml ${D}/usr/ccsp/config/bbhm_def_cfg.xml
+ install -m 755 ${S}/scripts/bbhm_patch.sh ${D}/usr/ccsp/psm/bbhm_patch.sh
+# sed -i '/NotifyWiFiChanges/a \
+# <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.SSID" type="astr">TURRIS_RDKB-AP0</Record> \
+# <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.SSID" type="astr">TURRIS_RDKB-AP1</Record> \
+# <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.1.Passphrase" type="astr">rdk@1234</Record> \
+# <Record name="eRT.com.cisco.spvtg.ccsp.Device.WiFi.Radio.SSID.2.Passphrase" type="astr">rdk@1234</Record>' ${D}/usr/ccsp/config/bbhm_def_cfg.xml
+
+#WanManager Feature
+ DISTRO_WAN_ENABLED="${@bb.utils.contains('DISTRO_FEATURES','rdkb_wan_manager','true','false',d)}"
+ if [ $DISTRO_WAN_ENABLED = 'true' ]; then
+ sed -i '/AccessPoint.16.vAPStatsEnable/a \
+ <!-- rdkb-wanmanager related --> \
+ <Record name="dmsb.wanmanager.wanenable" type="astr">1</Record> \
+ <Record name="dmsb.wanmanager.wanifcount" type="astr">1</Record> \
+ <Record name="dmsb.wanmanager.wanpolicy" type="astr">2</Record> \
+ <Record name="dmsb.wanmanager.wanidletimeout" type="astr">0</Record> \
+ <Record name="dmsb.selfheal.rebootstatus" type="astr">0</Record> \
+ <Record name="dmsb.wanmanager.if.1.Name" type="astr">eth2</Record> \
+ <Record name="dmsb.wanmanager.if.1.DisplayName" type="astr">WanOE</Record> \
+ <Record name="dmsb.wanmanager.if.1.Enable" type="astr">TRUE</Record> \
+ <Record name="dmsb.wanmanager.if.1.Type" type="astr">2</Record> \
+ <Record name="dmsb.wanmanager.if.1.Priority" type="astr">0</Record> \
+ <Record name="dmsb.wanmanager.if.1.SelectionTimeout" type="astr">0</Record> \
+ <Record name="dmsb.wanmanager.if.1.DynTriggerEnable" type="astr">FALSE</Record> \
+ <Record name="dmsb.wanmanager.if.1.DynTriggerDelay" type="astr">0</Record> \
+ <Record name="dmsb.wanmanager.if.1.Marking.List" type="astr">DATA</Record> \
+ <Record name="dmsb.wanmanager.if.1.Marking.DATA.Alias" type="astr">DATA</Record> \
+ <Record name="dmsb.wanmanager.if.1.Marking.DATA.SKBPort" type="astr">1</Record> \
+ <Record name="dmsb.wanmanager.if.1.Marking.DATA.SKBMark" type="astr"> </Record> \
+ <Record name="dmsb.wanmanager.if.1.Marking.DATA.EthernetPriorityMark" type="astr"></Record> \
+ <Record name="dmsb.wanmanager.if.1.PPPEnable" type="astr">FALSE</Record> \
+ <Record name="dmsb.wanmanager.if.1.PPPLinkType" type="astr">PPPoE</Record> \
+ <Record name="dmsb.wanmanager.if.1.PPPIPCPEnable" type="astr">TRUE</Record> \
+ <Record name="dmsb.wanmanager.if.1.PPPIPV6CPEnable" type="astr">TRUE</Record> \
+ <Record name="dmsb.wanmanager.if.1.PPPIPCPEnable" type="astr">TRUE</Record> \
+ <Record name="dmsb.wanmanager.if.1.ActiveLink" type="astr">TRUE</Record> \
+ <Record name="dmsb.wanmanager.if.1.EnableMAPT" type="astr">FALSE</Record> \
+ <Record name="dmsb.wanmanager.if.1.EnableDSLite" type="astr">FALSE</Record> \
+ <Record name="dmsb.wanmanager.if.1.EnableIPoEHealthCheck" type="astr">FALSE</Record> \
+ <Record name="dmsb.wanmanager.if.1.RebootOnConfiguration" type="astr">FALSE</Record>' ${D}/usr/ccsp/config/bbhm_def_cfg.xml
+ fi
+}
+
+LDFLAGS_append_dunfell = " -lpthread"
diff --git a/recipes-ccsp/ccsp/ccsp-snmp-pa.bbappend b/recipes-ccsp/ccsp/ccsp-snmp-pa.bbappend
new file mode 100644
index 0000000..1836ce2
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-snmp-pa.bbappend
@@ -0,0 +1 @@
+require ccsp_common_turris.inc
diff --git a/recipes-ccsp/ccsp/ccsp-tr069-pa.bbappend b/recipes-ccsp/ccsp/ccsp-tr069-pa.bbappend
new file mode 100644
index 0000000..fa6eb0c
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-tr069-pa.bbappend
@@ -0,0 +1,40 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+require ccsp_common_turris.inc
+LDFLAGS += "-Wl,--no-as-needed -lulog"
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+LDFLAGS_append_dunfell = " -lsafec-3.5.1 -lcrypto"
+
+do_install_append () {
+ # Config files and scripts
+ install -m 644 ${S}/config/ccsp_tr069_pa_certificate_cfg_arm.xml ${D}/usr/ccsp/tr069pa/ccsp_tr069_pa_certificate_cfg.xml
+ install -m 644 ${S}/config/ccsp_tr069_pa_cfg_arm.xml ${D}/usr/ccsp/tr069pa/ccsp_tr069_pa_cfg.xml
+ install -m 644 ${S}/config/ccsp_tr069_pa_mapper_arm.xml ${D}/usr/ccsp/tr069pa/ccsp_tr069_pa_mapper.xml
+ install -m 644 ${S}/config/sdm_arm.xml ${D}/usr/ccsp/tr069pa/sdm.xml
+
+ install -d ${D}/fss/gw/
+ install -d ${D}/fss/gw/usr/ccsp/
+ install -d ${D}/etc
+ install -m 777 ${D}/usr/bin/CcspTr069PaSsp -t ${D}/usr/ccsp/tr069pa
+
+ ln -sf /version.txt ${D}/fss/gw/version.txt
+ ln -sf /usr/ccsp/tr069pa/ ${D}/fss/gw/usr/ccsp/tr069pa
+ ln -sf /usr/ccsp/tr069pa/sdm.xml ${D}/usr/bin/sdm.xml
+ ln -sf /usr/ccsp/tr069pa/url ${D}${sysconfdir}/url
+ echo "5555" > ${D}/usr/ccsp/tr069pa/sharedkey
+}
+
+FILES_${PN}-ccsp += " \
+ ${prefix}/ccsp/tr069pa/CcspTr069PaSsp \
+"
+
+FILES_${PN} += " \
+ /fss/gw/usr/ccsp/ \
+ /fss/gw/version.txt \
+ /etc/url \
+"
+
+do_package_qa(){
+}
diff --git a/recipes-ccsp/ccsp/ccsp-webui-jst.bbappend b/recipes-ccsp/ccsp/ccsp-webui-jst.bbappend
new file mode 100644
index 0000000..e8b448a
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-webui-jst.bbappend
@@ -0,0 +1,44 @@
+require ccsp_common_turris.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+EXTRA_OECONF += "PHP_RPATH=no"
+
+SRC_URI += "${CMF_GIT_ROOT}/rdkb/devices/raspberrypi/sysint;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};destsuffix=git/devices;name=webuijst"
+SRCREV_webuijst = "${AUTOREV}"
+
+SRC_URI_append = " \
+ file://CcspWebUI.sh \
+ file://CcspWebUI.service \
+"
+inherit systemd
+do_install_append () {
+ install -d ${D}${sysconfdir}
+ install -d ${D}${base_libdir}/rdk/
+ install -d ${D}${systemd_unitdir}/system/
+
+ # delete wan0 reference for Turris
+ sed -i "/wan0:80/a echo \"This interface is not available in Turris\"" ${D}${sysconfdir}/webgui.sh
+ sed -i "/wan0:443/a echo \"This interface is not available in Turris\"" ${D}${sysconfdir}/webgui.sh
+ sed -i "s/if \[ \"\$BOX_TYPE\" == \"HUB4\" \]/if \[ \"\$BOX_TYPE\" = \"HUB4\" \]/g" ${D}${sysconfdir}/webgui.sh
+ sed -i '/wan0/d' ${D}${sysconfdir}/webgui.sh
+
+ #delete server.pem reference for TurrisOmnia
+ sed -e '/server.pem/ s/^#*/echo "Removed server.pem references for Turris"\n#/' -i ${D}${sysconfdir}/webgui.sh
+
+ install -m 755 ${WORKDIR}/CcspWebUI.sh ${D}${base_libdir}/rdk/
+ install -m 644 ${WORKDIR}/CcspWebUI.service ${D}${systemd_unitdir}/system/
+
+ sed -i '/Security.X_COMCAST-COM_KeyPassphrase/a \
+ \t\t\tsetStr("Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi", "false", true);' ${D}/usr/www2/actionHandler/ajaxSet_wireless_network_configuration_redirection.jst
+ sed -i "s/\$clients_RSSI\[strtoupper(\$Host\[\$i\.toString\(\)\]\['PhysAddress'\])\]/\$Host\[\$i\.toString\(\)\]\['X_CISCO_COM_RSSI'\]/g" ${D}/usr/www2/connected_devices_computers.jst
+ sed -i "s/\$wnStatus= (\$wan_enable==\"true\" \&\& \$wan_status==\"Down\") ? \"true\" : \"false\";/\$wnStatus= (\$wan_enable==\"true\" \&\& \$wan_status==\"Up\") ? \"true\" : \"false\";/g" ${D}/usr/www2/wan_network.jst
+ sed -i "s/if((!strcmp(\$url, \$Wan_IPv4) || ((inet_pton(\$url)!=\"\") || (inet_pton(\$Wan_IPv6!==\"\"))) \&\&(inet_pton(\$url) == inet_pton(\$Wan_IPv6)))){/if((!strcmp(\$url, \$Wan_IPv4) || ((inet_pton(\$url)!=\"\") \&\& (inet_pton(\$Wan_IPv6!==\"\"))) \&\&(inet_pton(\$url) == inet_pton(\$Wan_IPv6)))){/g" ${D}/usr/www2/index.jst
+ sed -i "s/\$Wan_IPv4 = getStr(\"Device.X_CISCO_COM_CableModem.IPAddress\");/\$Wan_IPv4 = getStr(\"Device.DeviceInfo.X_COMCAST-COM_CM_IP\");/g" ${D}/usr/www2/captiveportal.jst
+ sed -i "s/if((!strcmp(\$url, \$Wan_IPv4) || ((inet_pton(\$url)!=\"\") || (inet_pton(\$Wan_IPv6!==\"\"))) \&\&(inet_pton(\$url) == inet_pton(\$Wan_IPv6)))){/if((!strcmp(\$url, \$Wan_IPv4) || ((inet_pton(\$url)!=\"\") \&\& (inet_pton(\$Wan_IPv6!==\"\"))) \&\&(inet_pton(\$url) == inet_pton(\$Wan_IPv6)))){/g" ${D}/usr/www2/captiveportal.jst
+ sed -i '/\/\/ setStr("Device.WiFi.Radio."+\$r+".X_CISCO_COM_ApplySetting", "true", true);/ s/\/\///' ${D}/usr/www2/actionHandler/ajaxSet_wireless_network_configuration_edit.jst
+ sed -i "s/\/usr\/www/\/usr\/www2/g" ${D}${systemd_unitdir}/system/CcspWebUI.service
+}
+
+SYSTEMD_SERVICE_${PN} += "CcspWebUI.service"
+FILES_${PN} += "${systemd_unitdir}/system/CcspWebUI.service ${base_libdir}/rdk/*"
diff --git a/recipes-ccsp/ccsp/ccsp-webui-php.bbappend b/recipes-ccsp/ccsp/ccsp-webui-php.bbappend
new file mode 100644
index 0000000..913b9f2
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-webui-php.bbappend
@@ -0,0 +1,55 @@
+require ccsp_common_turris.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+EXTRA_OECONF += "PHP_RPATH=no"
+
+SRC_URI_append = " \
+ file://CcspWebUI.sh \
+ file://CcspWebUI.service \
+"
+
+do_install_append () {
+ install -d ${D}${sysconfdir}
+ install -m 755 ${S}/../Styles/xb3/config/php.ini ${D}${sysconfdir}
+
+ # delete wan0 reference for TurrisOmnia
+ sed -i "/wan0:80/a echo \"This interface is not available in Turris\"" ${D}${sysconfdir}/webgui.sh
+ sed -i "/wan0:443/a echo \"This interface is not available in Turris\"" ${D}${sysconfdir}/webgui.sh
+ sed -i '/wan0/d' ${D}${sysconfdir}/webgui.sh
+
+ #delete server.pem reference for TurrisOmnia
+ sed -e '/server.pem/ s/^#*/echo "Removed server.pem references for R-pi"\n#/' -i ${D}${sysconfdir}/webgui.sh
+
+ sed -i -e "s/'TCP',\ 'UDP',\ 'TCP\/UDP'/'TCP',\ 'UDP',\ 'BOTH'/g" ${D}/usr/www/actionHandler/ajax_managed_services.php
+ sed -i '/Security.X_COMCAST-COM_KeyPassphrase/a \
+ \t\t\tsetStr("Device.DeviceInfo.X_RDKCENTRAL-COM_ConfigureWiFi", "false", true);' ${D}/usr/www/actionHandler/ajaxSet_wireless_network_configuration_redirection.php
+ sed -i -e "s/https:\/\/webui-xb3-cpe-srvr.xcal.tv/http:\/\/'.\$ip_addr.'/g" ${D}/usr/www/index.php
+ sed -i -e "s/LIGHTTPD_PID=\`pidof lighttpd\`/LIGHTTPD_PID=\`pidof lighttpd php-cgi\`/g" ${D}${sysconfdir}/webgui.sh
+ sed -i -e "s/\/bin\/kill \$LIGHTTPD_PID/\/bin\/kill -9 \$LIGHTTPD_PID/g" ${D}${sysconfdir}/webgui.sh
+ #Remove Mesh-Mode Validation on TurrisOmnia
+ sed -i -e "s/&& (\$Mesh_Mode==\"false\")//g" ${D}/usr/www/actionHandler/ajaxSet_wireless_network_configuration_edit.php
+ sed -i "/setting ConfigureWiFi to true/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}${sysconfdir}/webgui.sh
+ sed -i "/setting ConfigureWiFi to true/a echo \"}\" >> \$LIGHTTPD_CONF" ${D}${sysconfdir}/webgui.sh
+ sed -i "/setting ConfigureWiFi to true/a echo \"\\\\\$HTTP[\\\\\"host\\\\\"] !~ \\\\\":8080\\\\\" { \\\\\$HTTP[\\\\\"url\\\\\"] !~ \\\\\"captiveportal.php\\\\\" { \\\\\$HTTP[\\\\\"referer\\\\\"] == \\\\\"\\\\\" { url.redirect = ( \\\\\".*\\\\\" => \\\\\"http://10.0.0.1/captiveportal.php\\\\\" ) url.redirect-code = 303 }\" >> \$LIGHTTPD_CONF" ${D}${sysconfdir}/webgui.sh
+ sed -i "/setting ConfigureWiFi to true/a sed -i \'\/server.modules = \(\/a \"mod_rewrite\",' \$LIGHTTPD_CONF" ${D}${sysconfdir}/webgui.sh
+ sed -i "/setting ConfigureWiFi to true/a sed -i \'\/server.modules = \(\/a \"mod_redirect\",' \$LIGHTTPD_CONF" ${D}${sysconfdir}/webgui.sh
+ sed -i "s/if((!strcmp(\$url, \$Wan_IPv4) || ((inet_pton(\$url)!=\"\") || (inet_pton(\$Wan_IPv6!==\"\"))) &&(inet_pton(\$url) == inet_pton(\$Wan_IPv6)))){/if(!strcmp(\$url, \$Wan_IPv4) || (inet_pton(\$url) == inet_pton(\$Wan_IPv6))){/g" ${D}/usr/www/index.php
+
+ install -m 755 ${WORKDIR}/CcspWebUI.sh ${D}${base_libdir}/rdk/
+ install -m 644 ${WORKDIR}/CcspWebUI.service ${D}${systemd_unitdir}/system/
+ sed -i "/jProgress/a alert(\'DOCSIS Support is not available in RPI Boards\'); die();" ${D}/usr/www/wan_network.php
+ sed -e '/jProgress/ s/^/\/\//' -i ${D}/usr/www/wan_network.php
+ sed -i "s/\$clients_RSSI\[strtoupper(\$Host\[\"\$i\"\]\['PhysAddress'\])\]/\$Host\[\$i\]\['X_CISCO_COM_RSSI'\]/g" ${D}/usr/www/connected_devices_computers.php
+}
+do_install_append_morty () {
+ #Locate svg file to load
+ echo "<?php \n\$files = glob('/run/log/bootchart-[0-9]*?-[0-9]*?.svg');\necho file_get_contents(\$files[0]);\n?>" > ${D}/usr/www/bootchart.php
+
+ #Include bootchart.php in nav.php
+ sed -i "/password_change.php/a echo '<li class="nav-bootchart"><a role="menuitem" href="bootchart.php">Bootchart</a></li>';" ${D}/usr/www/includes/nav.php
+}
+
+SYSTEMD_SERVICE_${PN} += "CcspWebUI.service"
+FILES_${PN} += "${sysconfdir}/php.ini ${systemd_unitdir}/system/CcspWebUI.service"
+
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend b/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend
new file mode 100644
index 0000000..49ab837
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent.bbappend
@@ -0,0 +1,59 @@
+require ccsp_common_turris.inc
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+LDFLAGS += " \
+ -lutopiautil \
+ "
+#CFLAGS_append = " -Wno-error -DWIFI_HAL_VERSION_3"
+CFLAGS_append = " -Wno-error"
+
+#work around for wifi restart_flag=false, for meshagent synchroniztaion
+do_configure_prepend() {
+sed -i '/wlanRestart == TRUE/!{p;d;};n;a #if defined(ENABLE_FEATURE_MESHWIFI)\n if ((sWiFiDmlSsidStoredCfg[wlanIndex].SSID, sWiFiDmlSsidRunningCfg[wlanIndex].SSID) != 0)\n {\n char arg[256] = {0};\n snprintf(arg, sizeof(arg), "RDK|%d|%s",wlanIndex,sWiFiDmlSsidStoredCfg[wlanIndex].SSID);\n char * const cmd[] = {"/usr/bin/sysevent", "set", "wifi_SSIDName", arg, NULL};\n execvp_wrapper(cmd);\n }\n #endif\n' ${S}/source/TR-181/sbapi/cosa_wifi_apis.c
+}
+
+DEPENDS_append_dunfell = " avro-c"
+
+SRC_URI_append = " \
+ file://wifiTelemetrySetup.sh \
+ file://checkwifi.sh \
+ file://radio_param_def.cfg \
+ file://synclease.sh \
+ file://handle_mesh-rename-opensync.patch;apply=no \
+ file://avoid_gssidcount_error.patch;apply=no \
+"
+
+# we need to patch to code for ccsp-wifi-agent
+do_turris_ccspwifiagent_patches() {
+ cd ${S}
+ if [ ! -e patch_applied ]; then
+ bbnote "Patching handle_mesh-rename-opensync.patch"
+ patch -p1 < ${WORKDIR}/handle_mesh-rename-opensync.patch ${S}/scripts/handle_mesh
+ patch -p1 < ${WORKDIR}/avoid_gssidcount_error.patch || echo "ERROR or Patch already applied"
+ touch patch_applied
+ fi
+}
+addtask turris_ccspwifiagent_patches after do_unpack before do_configure
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+do_install_append(){
+ install -m 777 ${D}/usr/bin/CcspWifiSsp -t ${D}/usr/ccsp/wifi/
+ install -m 755 ${S}/scripts/cosa_start_wifiagent.sh ${D}/usr/ccsp/wifi
+ install -m 777 ${WORKDIR}/wifiTelemetrySetup.sh ${D}/usr/ccsp/wifi/
+ install -m 777 ${WORKDIR}/checkwifi.sh ${D}/usr/ccsp/wifi/
+ install -m 777 ${WORKDIR}/radio_param_def.cfg ${D}/usr/ccsp/wifi/
+ install -m 777 ${WORKDIR}/synclease.sh ${D}/usr/ccsp/wifi/
+}
+
+FILES_${PN} += " \
+ ${prefix}/ccsp/wifi/CcspWifiSsp \
+ ${prefix}/ccsp/wifi/cosa_start_wifiagent.sh \
+ ${prefix}/ccsp/wifi/wifiTelemetrySetup.sh \
+ ${prefix}/ccsp/wifi/checkwifi.sh \
+ ${prefix}/ccsp/wifi/radio_param_def.cfg \
+ ${prefix}/ccsp/wifi/synclease.sh \
+"
+
+LDFLAGS_append_dunfell = " -lpthread"
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent/avoid_gssidcount_error.patch b/recipes-ccsp/ccsp/ccsp-wifi-agent/avoid_gssidcount_error.patch
new file mode 100644
index 0000000..28be7ff
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent/avoid_gssidcount_error.patch
@@ -0,0 +1,23 @@
+Signed-off-by: kaviya.kumaresan@ltts.com
+Subject: To avoid gSsidCount undeclared error while compiling Wifi_hal3.0
+
+diff --git a/source/TR-181/sbapi/cosa_wifi_apis.c b/source/TR-181/sbapi/cosa_wifi_apis.c
+index 37019bc..aba7811 100644
+--- a/source/TR-181/sbapi/cosa_wifi_apis.c
++++ b/source/TR-181/sbapi/cosa_wifi_apis.c
+@@ -9552,6 +9552,7 @@ CosaDmlWiFiFactoryReset
+ }
+ }
+ }
++#ifndef WIFI_HAL_VERSION_3
+ #if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ // Reset Band Steering parameters
+ int bsIndex = 0;
+@@ -9560,6 +9561,7 @@ CosaDmlWiFiFactoryReset
+ CosaDmlWiFiGetBSFactoryResetPsmData(bsIndex, bsIndex+1);
+ }
+ #endif
++#endif
+ } else
+ {
+ // Only Apply to FactoryResetSSID list
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent/checkwifi.sh b/recipes-ccsp/ccsp/ccsp-wifi-agent/checkwifi.sh
new file mode 100644
index 0000000..5903a74
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent/checkwifi.sh
@@ -0,0 +1,66 @@
+# If not stated otherwise in this file or this component's LICENSE
+# file the following copyright and licenses apply:
+#
+#Copyright [2019] [RDK Management]
+#
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+#!/bin/sh
+
+wifi_wifi0=`iwconfig wifi0|grep IEEE\ 802.11 | wc -l`
+wifi_wifi1=`iwconfig wifi1|grep IEEE\ 802.11 | wc -l`
+wifi_wifi2=`iwconfig wifi2|grep IEEE\ 802.11 | wc -l`
+wifi_wifi3=`iwconfig wifi3|grep IEEE\ 802.11 | wc -l`
+
+if [ $wifi_wifi0 == "1" ] ; then
+ flag=wifi0
+ wifi0=$(iwconfig wifi0|grep IEEE\ 802.11)
+elif [ $wifi_wifi1 == "1" ]; then
+ flag=wifi1
+ wifi0=$(iwconfig wifi1|grep IEEE\ 802.11)
+elif [ $wifi_wifi2 == "1" ]; then
+ flag=wifi2
+ wifi0=$(iwconfig wifi2|grep IEEE\ 802.11)
+elif [ $wifi_wifi3 == "1" ]; then
+ flag=wifi3
+ wifi0=$(iwconfig wifi3|grep IEEE\ 802.11)
+fi
+
+wifi_driver_init=${#wifi0}
+check_dual_band=1
+if [ $wifi_driver_init != 0 ]; then
+ echo "Wifi (single band) driver is initialized"
+ while [ $check_dual_band -le 5 ]
+ do
+ echo "checking for dual band support:$check_dual_band"
+ if [ $flag == "wifi0" ]; then
+ wifi_dual_band=1
+ elif [ $flag == "wifi1" ]; then
+ wifi_dual_band=1
+ elif [ $flag == "wifi2" ]; then
+ wifi_dual_band=1
+ elif [ $flag == "wifi3" ]; then
+ wifi_dual_band=1
+ fi
+ echo "$wifi_dual_band"
+ if [ $wifi_dual_band == 1 ]; then
+ break
+ fi
+ check_dual_band=`expr $check_dual_band + 1`
+ sleep 1;
+ done
+ sleep 1;
+ touch /tmp/wifi_driver_initialized
+else
+ echo "Wifi driver is not initialized"
+fi
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent/handle_mesh-rename-opensync.patch b/recipes-ccsp/ccsp/ccsp-wifi-agent/handle_mesh-rename-opensync.patch
new file mode 100644
index 0000000..8876f2f
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent/handle_mesh-rename-opensync.patch
@@ -0,0 +1,29 @@
+From 6bb8c296e3921ccc6a994590dcf5d9399952d3fb Mon Sep 17 00:00:00 2001
+From: Simon Chung <simon.c.chung@accenture.com>
+Date: Mon, 21 Mar 2022 12:29:18 +0000
+Subject: [PATCH] handle_mesh-rename-opensync
+
+Change-Id: I1924e9f771206c0997765a70697ae874cfb43b53
+---
+ scripts/handle_mesh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/scripts/handle_mesh b/scripts/handle_mesh
+index 65242561..b9cec6c1 100644
+--- a/scripts/handle_mesh
++++ b/scripts/handle_mesh
+@@ -71,9 +71,9 @@ else
+ /usr/opensync/scripts/managers.init $1
+ else
+ echo "Opensync will be effective only after reboot"
+- /usr/plume/scripts/managers.init $1
++ /usr/opensync/scripts/managers.init $1
+ fi
+ else
+- /usr/plume/scripts/managers.init $1
++ /usr/opensync/scripts/managers.init $1
+ fi
+ fi
+--
+2.28.0
+
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent/radio_param_def.cfg b/recipes-ccsp/ccsp/ccsp-wifi-agent/radio_param_def.cfg
new file mode 100644
index 0000000..6d63af6
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent/radio_param_def.cfg
@@ -0,0 +1,21 @@
+RADIO_ENABLE_0=1
+RADIO_ENABLE_1=1
+RADIO_CHANNEL_0=6
+RADIO_CHANNEL_1=36
+CHANNEL_MODE_0=20
+CHANNEL_MODE_1=20
+SSID_NAME_0=TURRIS_RDKB-AP0
+SSID_NAME_1=TURRIS_RDKB-AP1
+PRESHAREDKEY_0=rdk@1234
+PRESHAREDKEY_1=rdk@1234
+BEACONTYPE_0=11i
+BEACONTYPE_1=11i
+WPAENCRYPTIONMODE_0=TKIPandAESEncryption
+WPAENCRYPTIONMODE_1=TKIPandAESEncryption
+AUTHENTICATIONMODE_0=PSKAuthentication
+AUTHENTICATIONMODE_1=PSKAuthentication
+BASIC_RATES_0=10 20
+BASIC_RATES_1=60 90
+SUPPORTED_RATES_0=10 20 55 110 60 90 120 180 240 360 480 540
+SUPPORTED_RATES_1=60 90 120 180 240 360 480 540
+
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent/synclease.sh b/recipes-ccsp/ccsp/ccsp-wifi-agent/synclease.sh
new file mode 100644
index 0000000..2938d6d
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent/synclease.sh
@@ -0,0 +1 @@
+cp /nvram/dnsmasq.leases /tmp/dnsmasq.leases
diff --git a/recipes-ccsp/ccsp/ccsp-wifi-agent/wifiTelemetrySetup.sh b/recipes-ccsp/ccsp/ccsp-wifi-agent/wifiTelemetrySetup.sh
new file mode 100644
index 0000000..c7166fd
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-wifi-agent/wifiTelemetrySetup.sh
@@ -0,0 +1,18 @@
+# If not stated otherwise in this file or this component's LICENSE
+# file the following copyright and licenses apply:
+#
+#Copyright [2019] [RDK Management]
+#
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+#This script needs to be implemented once WiFi telemetery setup has been done
diff --git a/recipes-ccsp/ccsp/ccsp-xdns.bbappend b/recipes-ccsp/ccsp/ccsp-xdns.bbappend
new file mode 100644
index 0000000..30ce42d
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp-xdns.bbappend
@@ -0,0 +1,5 @@
+require ccsp_common_turris.inc
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+LDFLAGS_append_dunfell = " -lsafec-3.5.1"
diff --git a/recipes-ccsp/ccsp/ccsp_common_turris.inc b/recipes-ccsp/ccsp/ccsp_common_turris.inc
new file mode 100644
index 0000000..be9503d
--- /dev/null
+++ b/recipes-ccsp/ccsp/ccsp_common_turris.inc
@@ -0,0 +1,14 @@
+SUMMARY = "common inc for turris"
+
+CFLAGS_append += " -U_COSA_SIM_ -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-strict-aliasing \
+ -D_ANSC_LINUX -D_ANSC_USER -D_ANSC_LITTLE_ENDIAN_ -D_CCSP_CWMP_TCP_CONNREQ_HANDLER \
+ -D_DSLH_STUN_ -D_NO_PKI_KB5_SUPPORT -D_BBHM_SSE_FILE_IO -D_ANSC_USE_OPENSSL_ -DENABLE_SA_KEY \
+ -D_ANSC_AES_USED_ -D_NO_EXECINFO_H_ -DFEATURE_SUPPORT_SYSLOG \
+ -DBUILD_WEB -D_NO_ANSC_ZLIB_ -D_DEBUG -U_ANSC_IPV6_COMPATIBLE_ -DUSE_NOTIFY_COMPONENT \
+ -D_PLATFORM_TURRIS_ -DENABLE_SD_NOTIFY -DCOSA_DML_WIFI_FEATURE_LoadPsmDefaults -UPARODUS_ENABLE -DENABLE_FEATURE_MESHWIFI"
+CFLAGS_append += "${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' -DFEATURE_RDKB_WAN_MANAGER ', '', d)}"
+
+CFLAGS_append_aarch64 = " -D_64BIT_ARCH_SUPPORT_ "
+
+DEPENDS += "breakpad-wrapper"
+LDFLAGS += "-lbreakpadwrapper"
diff --git a/recipes-ccsp/ccsp/files/CcspWebUI.service b/recipes-ccsp/ccsp/files/CcspWebUI.service
new file mode 100644
index 0000000..19056b5
--- /dev/null
+++ b/recipes-ccsp/ccsp/files/CcspWebUI.service
@@ -0,0 +1,35 @@
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2019 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+
+[Unit]
+Description=CcspWebUI service
+After=gwprovethwan.service
+Wants=gwprovethwan.service
+
+[Service]
+Type=forking
+WorkingDirectory=/usr/www
+ExecStart=/bin/sh /lib/rdk/CcspWebUI.sh
+Restart=always
+StandardOutput=syslog+console
+
+[Install]
+WantedBy=multi-user.target
+
+
diff --git a/recipes-ccsp/ccsp/files/CcspWebUI.sh b/recipes-ccsp/ccsp/files/CcspWebUI.sh
new file mode 100644
index 0000000..b2d269b
--- /dev/null
+++ b/recipes-ccsp/ccsp/files/CcspWebUI.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2019 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+
+
+sleep 10
+
+LIGHTTPD_PROCESS=`ps aux | grep lighttpd | grep -v grep | wc -l`
+
+if [ $LIGHTTPD_PROCESS = 0 ]; then
+ /bin/sh /etc/webgui.sh
+else
+ echo "Lighttpd process was already running"
+ exit 0
+fi
diff --git a/recipes-ccsp/ccsp/files/set-uplink-for-turris.patch b/recipes-ccsp/ccsp/files/set-uplink-for-turris.patch
new file mode 100644
index 0000000..8a838fa
--- /dev/null
+++ b/recipes-ccsp/ccsp/files/set-uplink-for-turris.patch
@@ -0,0 +1,25 @@
+diff --git a/source/gw_prov_sm.c b/source/gw_prov_sm.c
+index 76cf208..983d1fa 100644
+--- a/source/gw_prov_sm.c
++++ b/source/gw_prov_sm.c
+@@ -88,7 +88,7 @@ char log_buff[1024];
+ #define NETUTILS_IPv6_GLOBAL_ADDR_LEN 128
+ #define ER_NETDEVNAME "erouter0"
+ #define IFNAME_WAN_0 "wan0"
+-#define IFNAME_ETH_0 "eth0"
++#define IFNAME_ETH_0 "eth2"
+ #define TLV202_42_FAVOR_DEPTH 1
+ #define TLV202_42_FAVOR_WIDTH 2
+
+@@ -2449,9 +2449,9 @@ static int GWP_act_ProvEntry_callback()
+ return -1;
+ }
+
+- system("ifconfig eth0 down");
++ system("ifconfig eth2 down");
+ memset(command,0,sizeof(command));
+- sprintf(command, "ip link set eth0 name %s", wanPhyName);
++ sprintf(command, "ip link set eth2 name %s", wanPhyName);
+ printf("****************value of command = %s**********************\n", command);
+ system(command);
+
diff --git a/recipes-ccsp/ccsp/files/turris-macro-gwprov.patch b/recipes-ccsp/ccsp/files/turris-macro-gwprov.patch
new file mode 100644
index 0000000..a23f320
--- /dev/null
+++ b/recipes-ccsp/ccsp/files/turris-macro-gwprov.patch
@@ -0,0 +1,350 @@
+diff --git a/configure.ac b/configure.ac
+index c4aeb55..7eded47 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -53,5 +53,6 @@ AC_CONFIG_FILES(
+ Makefile
+ )
+ AM_CONDITIONAL([PLATFORM_RASPBERRYPI_ENABLED], [test $PLATFORM_RASPBERRYPI_ENABLED = yes])
++AM_CONDITIONAL([PLATFORM_TURRIS_ENABLED], [test $PLATFORM_TURRIS_ENABLED = yes])
+ AC_OUTPUT
+
+diff --git a/source/Makefile.am b/source/Makefile.am
+index d7d99da..4cb1847 100644
+--- a/source/Makefile.am
++++ b/source/Makefile.am
+@@ -23,9 +23,13 @@ AM_CFLAGS += -DCONFIG_PRIMARY_NET_BRIDGE_MODE
+ if PLATFORM_RASPBERRYPI_ENABLED
+ AM_LDFLAGS = -lsysevent
+ else
++if PLATFORM_TURRIS_ENABLED
++AM_LDFLAGS = -lsysevent
++else
+ AM_LDFLAGS = -lgwprovappabs
+ AM_LDFLAGS += -lsysevent
+ endif
++endif
+ AM_LDFLAGS += -lsyscfg
+ AM_LDFLAGS += -lulog
+
+@@ -38,5 +42,11 @@ gw_prov_utopia_SOURCES = gw_prov_sm.c
+ if PLATFORM_RASPBERRYPI_ENABLED
+ gw_prov_utopia_LDFLAGS = -lsysevent -lsyscfg -lulog
+ else
++if PLATFORM_TURRIS_ENABLED
++gw_prov_utopia_LDFLAGS = -lsysevent -lsyscfg -lulog
++else
+ gw_prov_utopia_LDFLAGS = -lgwprovappabs -lsysevent -lsyscfg -lulog
+ endif
++endif
++gw_prov_utopia_LDFLAGS += -pthread
++gw_prov_utopia_LDFLAGS += -pthread
+diff --git a/source/gw_prov_sm.c b/source/gw_prov_sm.c
+index 7117be3..a8c154f 100644
+--- a/source/gw_prov_sm.c
++++ b/source/gw_prov_sm.c
+@@ -55,11 +55,11 @@
+ #include <sys/socket.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ #include <sys/types.h>
+ #endif
+ #include <unistd.h>
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ #include <ruli.h>
+ #endif
+ #include <sysevent/sysevent.h>
+@@ -68,7 +68,7 @@
+ #include "gw_prov_abstraction.h"
+ #include "Tr69_Tlv.h"
+ #include <autoconf.h>
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ #include "docsis_esafe_db.h"
+ #endif
+ #include <time.h>
+@@ -197,7 +197,7 @@ static token_t sysevent_token;
+ static int sysevent_fd_gs;
+ static token_t sysevent_token_gs;
+ static pthread_t sysevent_tid;
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ static pthread_t linkstate_tid;
+ #endif
+ static int phylink_wan_state = 0;
+@@ -264,7 +264,7 @@ static int getSyseventBridgeMode(int erouterMode, int bridgeMode) {
+ }
+
+
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ /**************************************************************************/
+ /*! \fn STATUS GW_TlvParserInit(void)
+ **************************************************************************
+@@ -736,7 +736,7 @@ static int GWP_SysCfgSetInt(const char *name, int int_value)
+ return syscfg_set(NULL, name, value);
+ }
+
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ /**************************************************************************/
+ /*! \fn static STATUS GWP_UpdateEsafeAdminMode()
+ **************************************************************************
+@@ -788,7 +788,7 @@ validate_mode(int* bridge_mode, int* eRouterMode)
+ GWPROV_PRINT(" %s : bridge_mode = %d , eRouterMode = %d \n", __FUNCTION__, *bridge_mode, *eRouterMode);
+ }
+
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ void docsis_gotEnable_callback(Uint8 state)
+ {
+ GWPROV_PRINT(" Entry %s , state = %d \n", __FUNCTION__, state);
+@@ -840,7 +840,7 @@ static void GWP_DocsisInited(void)
+ **************************************************************************/
+ static void GWP_EnableERouter(void)
+ {
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
+ /* Update ESAFE state */
+ GWP_UpdateEsafeAdminMode(eRouterMode);
+@@ -903,7 +903,7 @@ static void GWP_EnterRouterMode(void)
+ **************************************************************************/
+ static void GWP_DisableERouter(void)
+ {
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
+ /* Update ESAFE state */
+ GWP_UpdateEsafeAdminMode(eRouterMode);
+@@ -1049,7 +1049,7 @@ static void GWP_UpdateERouterMode(void)
+ }
+ else // remain enabled, switch mode
+ {
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ /* Update ESAFE state */
+ GWP_UpdateEsafeAdminMode(eRouterMode);
+ #endif
+@@ -1121,7 +1121,7 @@ static void GWP_ProcessUtopiaRestart(void)
+ // }
+ }
+
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ /**************************************************************************/
+ /*! \fn int GWP_ProcessIpv4Down();
+ **************************************************************************
+@@ -1428,13 +1428,13 @@ static void *GWP_sysevent_threadfunc(void *data)
+ {
+ if (strcmp(val, "up")==0)
+ {
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWP_ProcessIpv4Up();
+ #endif
+ }
+ else if (strcmp(val, "down")==0)
+ {
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWP_ProcessIpv4Down();
+ #endif
+ }
+@@ -1443,13 +1443,13 @@ static void *GWP_sysevent_threadfunc(void *data)
+ {
+ if (strcmp(val, "up")==0)
+ {
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWP_ProcessIpv6Up();
+ #endif
+ }
+ else if (strcmp(val, "down")==0)
+ {
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWP_ProcessIpv6Down();
+ #endif
+ }
+@@ -1492,7 +1492,7 @@ static void *GWP_sysevent_threadfunc(void *data)
+ {
+ if (strcmp(val, "started") == 0) {
+ if (!webui_started) {
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ if(strcmp(name, "bridge-status") == 0) {
+ GWP_DisableERouter();
+ }
+@@ -1536,7 +1536,7 @@ static void *GWP_sysevent_threadfunc(void *data)
+ Uint8 v6addr[ NETUTILS_IPv6_GLOBAL_ADDR_LEN / sizeof(Uint8) ];
+ Uint8 soladdr[ NETUTILS_IPv6_GLOBAL_ADDR_LEN / sizeof(Uint8) ];
+ inet_pton(AF_INET6, val, v6addr);
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ getMultiCastGroupAddress(v6addr,soladdr);
+ #endif
+ inet_ntop(AF_INET6, soladdr, val, sizeof(val));
+@@ -1621,7 +1621,7 @@ static int GWP_act_DocsisLinkUp_callback()
+ printf("\n**************************\n\n");
+
+
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ char *temp;
+ char command[128];
+ char wanPhyName[20];
+@@ -1678,7 +1678,7 @@ static int GWP_act_DocsisLinkUp_callback()
+ }
+
+
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ /**************************************************************************/
+ /*! \fn void *GWP_linkstate_threadfunc(void *)
+ **************************************************************************
+@@ -1796,7 +1796,7 @@ void GWP_Util_get_shell_output( char * cmd, char *out, int len )
+ }
+
+ /* GWP_UpdateTr069CfgThread() */
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ void GWP_UpdateTr069CfgThread( void *data )
+ {
+ int IsNeedtoProceedFurther = TRUE;
+@@ -1911,7 +1911,7 @@ void GWP_UpdateTr069CfgThread( void *data )
+ GWPROV_PRINT(" Exit %s \n", __FUNCTION__);
+ }
+ #endif
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ /**************************************************************************/
+ /*! \fn int GWP_act_DocsisCfgfile(SME_APP_T *app, SME_EVENT_T *event);
+ **************************************************************************
+@@ -2144,7 +2144,7 @@ static int GWP_act_DocsisInited_callback()
+ {
+ esafeErouterOperModeExtIf_e operMode;
+ //DOCSIS_Esafe_Db_Enable_e eRouterModeTmp;
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ DOCSIS_Esafe_Db_extIf_e eRouterModeTmp;
+ #endif
+ char macstr[20];
+@@ -2154,7 +2154,7 @@ static int GWP_act_DocsisInited_callback()
+ char soladdrStr[64];
+ int sysevent_bridge_mode = 0;
+ GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ /* Docsis initialized */
+ printf("Got DOCSIS Initialized\n");
+
+@@ -2198,7 +2198,7 @@ static int GWP_act_DocsisInited_callback()
+ // }
+ #if !defined(INTEL_PUMA7) && !defined(_COSA_BCM_MIPS_) && !defined(_COSA_BCM_ARM_)
+ printf("Not Initializing bridge_mode and eRouterMode for XB3\n");
+-#elif defined(_PLATFORM_RASPBERRYPI_)
++#elif defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ printf("Not Initializing bridge_mode and eRouterMode for Raspberry Pi\n");
+ #else
+ bridge_mode = GWP_SysCfgGetInt("bridge_mode");
+@@ -2212,12 +2212,12 @@ static int GWP_act_DocsisInited_callback()
+ system(sysevent_cmd);
+ #endif
+
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWP_DocsisInited();
+ #endif
+
+ system("sysevent set docsis-initialized 1");
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+
+ /* Must set the ESAFE Enable state before replying to the DocsisInit event */
+ eRouterModeTmp = eRouterMode;
+@@ -2279,7 +2279,7 @@ static int GWP_act_DocsisInited_callback()
+ }
+
+ //calculate cm base solicited node address
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ getInterfaceLinkLocalAddress(IFNAME_WAN_0, lladdr);
+
+
+@@ -2482,7 +2482,7 @@ static int GWP_act_DocsisInited_callback()
+ **************************************************************************/
+ static int GWP_act_ProvEntry_callback()
+ {
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ int uid = 0;
+ uid = getuid();
+ #endif
+@@ -2491,7 +2491,7 @@ static int GWP_act_ProvEntry_callback()
+ #ifdef MULTILAN_FEATURE
+ macaddr_t macAddr;
+ #endif
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
+ //system("sysevent set lan-start");
+
+@@ -2411,14 +2411,14 @@ static int GWP_act_ProvEntry_callback()
+
+ /* Now that we have the ICC que (SME) and we are registered on the docsis INIT */
+ /* event, we can notify PCD to continue */
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ sendProcessReadySignal();
+ #endif
+
+ /* Initialize Switch */
+ // VEN_SWT_InitSwitch();
+
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ printf("Thread to monitor link status \n");
+ pthread_create(&linkstate_tid, NULL, GWP_linkstate_threadfunc, NULL);
+ #endif
+@@ -2426,7 +2426,7 @@ static int GWP_act_ProvEntry_callback()
+ return 0;
+ }
+
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+ static int GWP_act_DocsisTftpOk_callback(){
+ GWPROV_PRINT(" Entry %s \n", __FUNCTION__);
+ gDocTftpOk = 1;
+@@ -2735,13 +2735,13 @@ int main(int argc, char *argv[])
+ #ifdef MULTILAN_FEATURE
+ char sysevent_cmd[80];
+ #endif
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ int uid = 0;
+ uid = getuid();
+ #endif
+ printf("Started gw_prov_utopia\n");
+
+-#if !defined(_PLATFORM_RASPBERRYPI_)
++#if !defined(_PLATFORM_RASPBERRYPI_) && !defined(_PLATFORM_TURRIS_)
+
+ #ifdef FEATURE_SUPPORT_RDKLOG
+ setenv("LOG4C_RCPATH","/rdklogger",1);
+diff --git a/source/include/gw_prov_abstraction.h b/source/include/gw_prov_abstraction.h
+index e5a45e0..536191a 100644
+--- a/source/include/gw_prov_abstraction.h
++++ b/source/include/gw_prov_abstraction.h
+@@ -62,7 +62,7 @@
+ #define GW_SUBTLV_TR069_CONNREQ_PASSWORD_EXTIF 6
+ #define GW_SUBTLV_TR069_ACS_OVERRIDE_EXTIF 7
+
+-#if defined(_PLATFORM_RASPBERRYPI_)
++#if defined(_PLATFORM_RASPBERRYPI_) || defined(_PLATFORM_TURRIS_)
+ typedef enum
+ {
+ False = 0,
diff --git a/recipes-ccsp/ccsp/harvester_git.bbappend b/recipes-ccsp/ccsp/harvester_git.bbappend
new file mode 100644
index 0000000..5b22fa5
--- /dev/null
+++ b/recipes-ccsp/ccsp/harvester_git.bbappend
@@ -0,0 +1,2 @@
+CFLAGS_append_aarch64 = " -D_64BIT_ARCH_SUPPORT_ "
+CFLAGS_append = " -DWIFI_HAL_VERSION_3"
diff --git a/recipes-ccsp/ccsp/jst.bbappend b/recipes-ccsp/ccsp/jst.bbappend
new file mode 100644
index 0000000..545cf5d
--- /dev/null
+++ b/recipes-ccsp/ccsp/jst.bbappend
@@ -0,0 +1,9 @@
+LDFLAGS_aarch64 += " -Wl,--no-as-needed"
+
+do_configure_prepend_aarch64 () {
+ sed -i "s/format_s\[loop2-1\]=0\;/\/\/format_s\[loop2-1\]=0\;/g" ${S}/source/jst_cosa.c
+}
+
+do_install_append_aarch64 () {
+ sed -i '/return \$arr.pop()/i \$arr.pop();' ${D}/usr/www2/includes/php.jst
+}
diff --git a/recipes-ccsp/ccsp/notify-comp.bbappend b/recipes-ccsp/ccsp/notify-comp.bbappend
new file mode 100644
index 0000000..476fad2
--- /dev/null
+++ b/recipes-ccsp/ccsp/notify-comp.bbappend
@@ -0,0 +1 @@
+LDFLAGS_append_dunfell = " -lrt"
diff --git a/recipes-ccsp/ccsp/parodus2ccsp.bbappend b/recipes-ccsp/ccsp/parodus2ccsp.bbappend
new file mode 100644
index 0000000..5d1ce0a
--- /dev/null
+++ b/recipes-ccsp/ccsp/parodus2ccsp.bbappend
@@ -0,0 +1,23 @@
+SRC_URI += "${CMF_GIT_ROOT}/rdk/devices/raspberrypi/webpa-client;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};destsuffix=git/devices;name=rdkbturris"
+
+SRCREV_rdkbturris = "${AUTOREV}"
+do_fetch[vardeps] += "SRCREV_rdkbturris"
+SRCREV_FORMAT .= "_rdkbturris"
+
+inherit systemd
+
+EXTRA_OECMAKE += "-DBUILD_RASPBERRYPI=ON "
+
+do_install_append_broadband () {
+ install -d ${D}${systemd_unitdir}/system
+ install -d ${D}${base_libdir_native}/rdk
+ install -m 0644 ${S}/devices/broadband/parodus2ccsp/systemd/webpabroadband.service ${D}${systemd_unitdir}/system
+ install -m 0755 ${S}/devices/broadband/parodus2ccsp/scripts/webpa_pre_setup.sh ${D}${base_libdir_native}/rdk
+}
+
+SYSTEMD_SERVICE_${PN}_append = " webpabroadband.service"
+
+FILES_${PN}_append = " \
+ ${systemd_unitdir}/system/webpabroadband.service \
+ ${base_libdir_native}/rdk/* \
+ "
diff --git a/recipes-ccsp/ccsp/rdk-wanmanager.bbappend b/recipes-ccsp/ccsp/rdk-wanmanager.bbappend
new file mode 100644
index 0000000..976a8cc
--- /dev/null
+++ b/recipes-ccsp/ccsp/rdk-wanmanager.bbappend
@@ -0,0 +1,3 @@
+do_compile_prepend () {
+ (python ${STAGING_BINDIR_NATIVE}/dm_pack_code_gen.py ${S}/config/RdkWanManager.xml ${S}/source/WanManager/dm_pack_datamodel.c)
+}
diff --git a/recipes-ccsp/ccsp/start-parodus.bbappend b/recipes-ccsp/ccsp/start-parodus.bbappend
new file mode 100644
index 0000000..1836ce2
--- /dev/null
+++ b/recipes-ccsp/ccsp/start-parodus.bbappend
@@ -0,0 +1 @@
+require ccsp_common_turris.inc
diff --git a/recipes-ccsp/hal/files/sta-network.patch b/recipes-ccsp/hal/files/sta-network.patch
new file mode 100644
index 0000000..48f3192
--- /dev/null
+++ b/recipes-ccsp/hal/files/sta-network.patch
@@ -0,0 +1,113 @@
+From 68113170930788e52f8fa6089a2882dc28f5693f Mon Sep 17 00:00:00 2001
+From: Simon Chung <simon.c.chung@accenture.com>
+Date: Thu, 2 Sep 2021 15:44:57 +0100
+Subject: [PATCH] sta-network
+
+Change-Id: Idaae3038a352e94d1f2810a8d73b7f77c8e47309
+---
+ wifi_hal.h | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 91 insertions(+)
+
+diff --git a/wifi_hal.h b/wifi_hal.h
+index 579418e..d284af4 100644
+--- a/wifi_hal.h
++++ b/wifi_hal.h
+@@ -110,4 +110,95 @@
+ * APIs to be deprecated. Not add new function or structure!
+ */
+ #include "wifi_hal_deprecated.h"
++
++/* DRAFT FOR CLIENT API */
++
++
++/* APPROACH 1*/
++typedef enum wifi_sta_network_flags {
++ WIFI_STA_NET_F_OPEN,
++ WIFI_STA_NET_F_PSK1,
++ WIFI_STA_NET_F_PSK2,WIFI_STA_NET_F_PSK_FT,
++ WIFI_STA_NET_F_AES,
++ WIFI_STA_NET_F_TKIP,
++ WIFI_STA_NET_F_4ADDR_MULTI_AP, /* future: easymesh's wds */
++ WIFI_STA_NET_F_OWE, /* future: opportunistic wireless encryption */
++ WIFI_STA_NET_F_SAE, /* future: wpa3 */
++} wifi_sta_network_flags_t;
++typedef enum wifi_sta_multi_ap_flag {
++ WIFI_STA_MULTI_AP_NOT_SUPPORTED,
++ WIFI_STA_MULTI_AP_NONE,
++ WIFI_STA_MULTI_AP_BHAUL_STA,
++} wifi_sta_multi_ap_flag_t;
++
++
++typedef struct wifi_sta_network {
++ int id;
++ char bridge[16]; /* valid for 4addr_multi_ap */
++ char ssid[32];
++ char psk[128];
++ char bssid[6]; /* 00:00:00:00:00:00 means any */
++ size_t ssid_len;
++ size_t psk_len;
++ int multi_ap;
++ char pairwise[64];
++ char proto[64];
++ char key_mgmt[64];
++ unsigned long flags; /* enum wifi_sta_network_flags */
++} wifi_sta_network_t;
++
++typedef struct wifi_sta_network_state {
++ struct wifi_sta_network desired_network;
++ char current_bssid[6]; /* 00:00:00:00:00:00 means disconnected */
++ int last_deauth_reason;
++ int last_disassoc_reason;
++} wifi_sta_network_state_t;
++
++typedef void (*wifi_sta_network_cb)(INT radioIndex, void *ctx);
++INT wifi_setStaNetwork(INT radioIndex, const wifi_sta_network_t *network);
++INT wifi_setStaNetworkSetEventCallback(INT radioIndex, wifi_sta_network_cb *cb, void *ctx);
++INT wifi_getStaNetworkState(INT radioIndex, wifi_sta_network_state_t *state);
++INT wifi_getStaNetworkCapabilities(INT radioIndex, INT *flags);
++
++/* APPROACH 2 */
++typedef struct {
++ CHAR ssid[33];
++ CHAR bssid[17];
++ CHAR passphrase[65];
++} wifi_staNetwork_t;
++
++INT wifi_getSTANetworks(INT apIndex, wifi_sta_network_t **out_staNetworks_array, INT out_array_size, BOOL *out_scan_cur_freq);
++
++INT wifi_setSTANetworks(INT apIndex, wifi_sta_network_t **staNetworks_array, INT array_size, BOOL scan_cur_freq);
++
++INT wifi_delSTANetworks(INT apIndex);
++
++
++/* notdefined approach */
++INT wifi_getSTANumberOfEntries(ULONG *output);
++INT wifi_getSTARadioIndex(INT ssidIndex, INT *radioIndex);
++INT wifi_getSTAName(INT apIndex, CHAR *output_string);
++INT wifi_getSTABSSID(INT ssidIndex, CHAR *output_string);
++INT wifi_getSTASSID(INT ssidIndex, CHAR *output_string);
++INT wifi_getSTAMAC(INT ssidIndex, CHAR *output_string);
++INT wifi_getSTAEnabled(INT ssidIndex, BOOL *enabled);
++INT wifi_setSTAEnabled(INT ssidIndex, BOOL enabled);
++
++typedef struct _wifi_client_associated_dev
++{
++ UCHAR MACAddress[6]; /**< The MAC address of an associated device. */
++ INT NetworkID; /**< Network ID */
++ INT connected; /**< If network is connected */
++ INT reason;
++ INT locally_generated;
++} wifi_client_associated_dev_t;
++
++typedef INT ( * wifi_client_event_callback)(INT apIndex, wifi_client_associated_dev_t *state);
++
++void wifi_client_event_callback_register(wifi_client_event_callback callback_proc);
++INT wifi_getApChannel(INT radioIndex,ULONG *output_ulong); //RDKB
++
++INT wifi_setApChannel(INT radioIndex, ULONG channel); //RDKB //AP only
++
++
+ #endif
+--
+2.28.0
+
diff --git a/recipes-ccsp/hal/hal-cm-generic_git.bbappend b/recipes-ccsp/hal/hal-cm-generic_git.bbappend
new file mode 100644
index 0000000..feb233c
--- /dev/null
+++ b/recipes-ccsp/hal/hal-cm-generic_git.bbappend
@@ -0,0 +1,5 @@
+do_configure_prepend(){
+ if ! cat ${S}/cm_hal.c | grep -w "INT cm_hal_snmpv3_kickstart_initialize(snmpv3_kickstart_table_t \*pKickstart_Table)" ; then
+ echo "INT cm_hal_snmpv3_kickstart_initialize(snmpv3_kickstart_table_t *pKickstart_Table) { return RETURN_OK; }" >> ${S}/cm_hal.c
+ fi
+}
diff --git a/recipes-ccsp/hal/hal-dhcpv4c-generic_git.bbappend b/recipes-ccsp/hal/hal-dhcpv4c-generic_git.bbappend
new file mode 100644
index 0000000..580439b
--- /dev/null
+++ b/recipes-ccsp/hal/hal-dhcpv4c-generic_git.bbappend
@@ -0,0 +1,9 @@
+SRC_URI += "git://gerrit.mediatek.inc/gateway/rdk-b/rdkb_hal;protocol=https;destsuffix=git/source/dhcpv4c/rdkb_hal"
+
+SRCREV = "${AUTOREV}"
+
+do_configure_prepend(){
+ rm ${S}/dhcpv4c_api.c
+ ln -sf ${S}/rdkb_hal/src/dhcpv4c/dhcpv4c_api.c ${S}/dhcpv4c_api.c
+}
+
diff --git a/recipes-ccsp/hal/hal-ethsw-generic_git.bbappend b/recipes-ccsp/hal/hal-ethsw-generic_git.bbappend
new file mode 100644
index 0000000..7c3b1b1
--- /dev/null
+++ b/recipes-ccsp/hal/hal-ethsw-generic_git.bbappend
@@ -0,0 +1,9 @@
+SRC_URI += "git://gerrit.mediatek.inc/gateway/rdk-b/rdkb_hal;protocol=https;destsuffix=git/source/ethsw/rdkb_hal"
+
+SRCREV = "${AUTOREV}"
+
+
+
+do_configure_prepend(){
+ ln -sf ${S}/rdkb_hal/src/ethsw/ccsp_hal_ethsw.c ${S}/ccsp_hal_ethsw.c
+}
diff --git a/recipes-ccsp/hal/hal-platform-generic_git.bbappend b/recipes-ccsp/hal/hal-platform-generic_git.bbappend
new file mode 100644
index 0000000..6e4c489
--- /dev/null
+++ b/recipes-ccsp/hal/hal-platform-generic_git.bbappend
@@ -0,0 +1,13 @@
+SRC_URI += "git://gerrit.mediatek.inc/gateway/rdk-b/rdkb_hal;protocol=https;destsuffix=git/source/platform/rdkb_hal"
+
+SRCREV = "${AUTOREV}"
+
+DEPENDS += "utopia-headers"
+CFLAGS_append = " \
+ -I=${includedir}/utctx \
+"
+
+do_configure_prepend(){
+ rm ${S}/platform_hal.c
+ ln -sf ${S}/rdkb_hal/src/platform/platform_hal.c ${S}/platform_hal.c
+}
diff --git a/recipes-ccsp/hal/hal-wifi-cfg80211_git.bbappend b/recipes-ccsp/hal/hal-wifi-cfg80211_git.bbappend
new file mode 100644
index 0000000..d53e9f8
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-cfg80211_git.bbappend
@@ -0,0 +1,19 @@
+
+BRANCH_MTK_IMPL= "nightly/20220329-dunfell"
+
+SRC_URI = "${CMF_GITHUB_ROOT}/hal-wifi-cfg80211;protocol=${CMF_GIT_PROTOCOL};branch=${BRANCH_MTK_IMPL};name=wifihal"
+
+FILESEXTRAPATHS_remove := "${THISDIR}/files:"
+FILESEXTRAPATHS_prepend := "${THISDIR}/hal-wifi-patches:"
+
+SRC_URI += "file://*.patch;apply=no"
+
+do_mtk_patches() {
+ cd ${S}/../../
+ if [ ! -e mtk_wifi_patch_applied ]; then
+ for i in ${WORKDIR}/*.patch; do patch -p1 < $i; done
+ fi
+ touch mtk_wifi_patch_applied
+}
+addtask mtk_patches after do_unpack before do_compile
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0001-patch-HAL-implement-wifi_setRadioCountryCode-wifi_ge.patch b/recipes-ccsp/hal/hal-wifi-patches/0001-patch-HAL-implement-wifi_setRadioCountryCode-wifi_ge.patch
new file mode 100644
index 0000000..28b7cfd
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0001-patch-HAL-implement-wifi_setRadioCountryCode-wifi_ge.patch
@@ -0,0 +1,70 @@
+From b9c9912e64f040ce214679925a434ec54685f1b0 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Tue, 22 Feb 2022 17:02:42 +0800
+Subject: [PATCH 01/18] [patch] HAL: implement wifi_setRadioCountryCode() &
+ wifi_getRadioCountryCode()
+
+Change-Id: I32f948112e924379da5e1f8a5300257171841589
+---
+ source/wifi/wifi_hal.c | 37 +++++++++++++++++++++++++++++++++++--
+ 1 file changed, 35 insertions(+), 2 deletions(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 6a11b049..14452dd4 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -907,9 +907,16 @@ INT wifi_createInitialConfigFiles()
+ // outputs the country code to a max 64 character string
+ INT wifi_getRadioCountryCode(INT radioIndex, CHAR *output_string)
+ {
+- if (NULL == output_string)
++ char buf[MAX_BUF_SIZE] = {0}, cmd[MAX_CMD_SIZE] = {0}, *value;
++ if(!output_string || !(radioIndex==0 || radioIndex==1))
++ return RETURN_ERR;
++
++ sprintf(cmd,"hostapd_cli -i %s%d status driver | grep country | cut -d '=' -f2", AP_PREFIX, radioIndex);
++ _syscmd(cmd, buf, sizeof(buf));
++ if(strlen(buf) > 0)
++ snprintf(output_string, 64, "%s", buf);
++ else
+ return RETURN_ERR;
+- snprintf(output_string, 64, "841");
+
+ return RETURN_OK;
+ }
+@@ -917,6 +924,32 @@ INT wifi_getRadioCountryCode(INT radioIndex, CHAR *output_string)
+ INT wifi_setRadioCountryCode(INT radioIndex, CHAR *CountryCode)
+ {
+ //Set wifi config. Wait for wifi reset to apply
++ char str[MAX_BUF_SIZE]={'\0'};
++ char cmd[MAX_CMD_SIZE]={'\0'};
++ struct params params;
++ char config_file[MAX_BUF_SIZE] = {0};
++
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
++ if(NULL == CountryCode || strlen(CountryCode) >= 32 )
++ return RETURN_ERR;
++
++ params.name = "country_code";
++ params.value = CountryCode;
++ sprintf(config_file,"%s%d.conf",CONFIG_PREFIX, radioIndex);
++ int ret = wifi_hostapdWrite(config_file, ¶ms, 1);
++ if (ret) {
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s: wifi_hostapdWrite() return %d\n"
++ ,__func__, ret);
++ }
++
++ ret = wifi_hostapdProcessUpdate(radioIndex, ¶ms, 1);
++ if (ret) {
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s: wifi_hostapdProcessUpdate() return %d\n"
++ ,__func__, ret);
++ }
++ wifi_reloadAp(radioIndex);
++ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
++
+ return RETURN_OK;
+ }
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0002-patch-HAL-refactor-wifi_getRadioChannel.patch b/recipes-ccsp/hal/hal-wifi-patches/0002-patch-HAL-refactor-wifi_getRadioChannel.patch
new file mode 100644
index 0000000..89e9eef
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0002-patch-HAL-refactor-wifi_getRadioChannel.patch
@@ -0,0 +1,47 @@
+From 22612dd89f434aac2383f0601e3a5d921896eb11 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Wed, 23 Feb 2022 11:40:41 +0800
+Subject: [PATCH 02/18] [patch] HAL: refactor wifi_getRadioChannel()
+
+Change-Id: Idf011ea57255837f1cdd1ee62ef3dc9d391090d0
+---
+ source/wifi/wifi_hal.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 14452dd4..19f7508c 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -29,7 +29,7 @@ Copyright (c) 2007 Mike Kershaw
+ Copyright (c) 2008-2009 Luis R. Rodriguez
+ Licensed under the ISC license
+ */
+-
++#define MTK_IMPL
+ #define HAL_NETLINK_IMPL
+
+ #include <stdio.h>
+@@ -1593,6 +1593,12 @@ INT wifi_getRadioChannelsInUse(INT radioIndex, CHAR *output_string) //RDKB
+ //Get the running channel number
+ INT wifi_getRadioChannel(INT radioIndex,ULONG *output_ulong) //RDKB
+ {
++#ifdef MTK_IMPL
++ if(!wifi_getApChannel(radioIndex, output_ulong))
++ return RETURN_OK;
++ else
++ return RETURN_ERR;
++#else
+ char cmd[1024] = {0}, buf[5] = {0};
+ char interface_name[50] = {0};
+
+@@ -1613,6 +1619,7 @@ INT wifi_getRadioChannel(INT radioIndex,ULONG *output_ulong) //RDKB
+
+ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
+ return RETURN_OK;
++#endif
+ }
+
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0003-patch-HAL-implement-wifi_reset.patch b/recipes-ccsp/hal/hal-wifi-patches/0003-patch-HAL-implement-wifi_reset.patch
new file mode 100644
index 0000000..01512c6
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0003-patch-HAL-implement-wifi_reset.patch
@@ -0,0 +1,28 @@
+From 0d63e3eeb35f082a51f03517ad2dcff2609c5a4f Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Wed, 23 Feb 2022 14:33:12 +0800
+Subject: [PATCH 03/18] [patch] HAL: implement wifi_reset()
+
+Change-Id: I8e969e2f167c96852c02374b463bf9567de40365
+---
+ source/wifi/wifi_hal.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 19f7508c..be9d4f67 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -848,6 +848,10 @@ INT wifi_init() //RDKB
+ INT wifi_reset()
+ {
+ //TODO: resets the wifi subsystem, deletes all APs
++ system("systemctl stop hostapd.service");
++ sleep(2);
++ system("systemctl start hostapd.service");
++ sleep(5);
+ return RETURN_OK;
+ }
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0005-patch-HAL-implement-wifi_down.patch b/recipes-ccsp/hal/hal-wifi-patches/0005-patch-HAL-implement-wifi_down.patch
new file mode 100644
index 0000000..bbab9ce
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0005-patch-HAL-implement-wifi_down.patch
@@ -0,0 +1,26 @@
+From c838f621e562f77ef9e659c317951540410a0741 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Wed, 2 Mar 2022 15:43:20 +0800
+Subject: [PATCH 05/18] [patch] HAL: implement wifi_down()
+
+Change-Id: I578a2afd5aa6c9b7fe2ad3c114d62bbfe800ac1c
+---
+ source/wifi/wifi_hal.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index ed26dbff..187de56c 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -877,6 +877,8 @@ INT wifi_reset()
+ INT wifi_down()
+ {
+ //TODO: turns off transmit power for the entire Wifi subsystem, for all radios
++ system("systemctl stop hostapd.service");
++ sleep(2);
+ return RETURN_OK;
+ }
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0006-patch-HAL-implement-wifi_getApSecurityMFPConfig.patch b/recipes-ccsp/hal/hal-wifi-patches/0006-patch-HAL-implement-wifi_getApSecurityMFPConfig.patch
new file mode 100644
index 0000000..1a8a51e
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0006-patch-HAL-implement-wifi_getApSecurityMFPConfig.patch
@@ -0,0 +1,47 @@
+From de6ce6e2bffdd24772903f13161f1784fd739f09 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Fri, 4 Mar 2022 18:02:33 +0800
+Subject: [PATCH 06/18] [patch] HAL: implement wifi_getApSecurityMFPConfig()
+
+Change-Id: I778dfabf00408f75109e122742894acf82fff799
+---
+ source/wifi/wifi_hal.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 187de56c..090db60f 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -6187,6 +6187,29 @@ INT wifi_getApSecurityWpaRekeyInterval(INT apIndex, INT *output_int)
+ //To-do
+ INT wifi_getApSecurityMFPConfig(INT apIndex, CHAR *output_string)
+ {
++ char output[16]={'\0'};
++ char config_file[MAX_BUF_SIZE] = {0};
++
++ if (!output_string)
++ return RETURN_ERR;
++
++ sprintf(config_file, "%s%d.conf", CONFIG_PREFIX, apIndex);
++ wifi_hostapdRead(config_file, "ieee80211w", output, sizeof(output));
++
++ if (strlen(output) == 0)
++ snprintf(output_string, 64, "Disabled");
++ else if (strncmp(output, "0", 1) == 0)
++ snprintf(output_string, 64, "Disabled");
++ else if (strncmp(output, "1", 1) == 0)
++ snprintf(output_string, 64, "Optional");
++ else if (strncmp(output, "2", 1) == 0)
++ snprintf(output_string, 64, "Required");
++ else {
++ wifi_dbg_printf("\n[%s]: Unexpected ieee80211w=%s", __func__, output);
++ return RETURN_ERR;
++ }
++
++ wifi_dbg_printf("\n[%s]: ieee80211w is : %s", __func__, output);
+ return RETURN_OK;
+ }
+ INT wifi_setApSecurityMFPConfig(INT apIndex, CHAR *MfpConfig)
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0007-patch-HAL-implement-wifi_setApSecurityMFPConfig.patch b/recipes-ccsp/hal/hal-wifi-patches/0007-patch-HAL-implement-wifi_setApSecurityMFPConfig.patch
new file mode 100644
index 0000000..17dad1f
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0007-patch-HAL-implement-wifi_setApSecurityMFPConfig.patch
@@ -0,0 +1,47 @@
+From a99b5bf7bcae0aa2d2f161cd28ef0f34c52b31ad Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 7 Mar 2022 10:50:32 +0800
+Subject: [PATCH 07/18] [patch] HAL: implement wifi_setApSecurityMFPConfig()
+
+Change-Id: If05c3550c2f9a152cfea2b8323c6c23973a881ca
+---
+ source/wifi/wifi_hal.c | 23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 090db60f..4f54626b 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -6214,6 +6214,29 @@ INT wifi_getApSecurityMFPConfig(INT apIndex, CHAR *output_string)
+ }
+ INT wifi_setApSecurityMFPConfig(INT apIndex, CHAR *MfpConfig)
+ {
++ char str[MAX_BUF_SIZE]={'\0'};
++ char cmd[MAX_CMD_SIZE]={'\0'};
++ struct params params;
++ char config_file[MAX_BUF_SIZE] = {0};
++
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
++ if(NULL == MfpConfig || strlen(MfpConfig) >= 32 )
++ return RETURN_ERR;
++
++ params.name = "ieee80211w";
++ if (strncmp(MfpConfig, "Disabled", strlen("Disabled")) == 0)
++ params.value = "0";
++ else if (strncmp(MfpConfig, "Optional", strlen("Optional")) == 0)
++ params.value = "1";
++ else if (strncmp(MfpConfig, "Required", strlen("Required")) == 0)
++ params.value = "2";
++ else{
++ wifi_dbg_printf("%s: invalid MfpConfig. Input has to be Disabled, Optional or Required \n", __func__);
++ return RETURN_ERR;
++ }
++ sprintf(config_file, "%s%d.conf", CONFIG_PREFIX, apIndex);
++ wifi_hostapdWrite(config_file, ¶ms, 1);
++ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n", __func__, __LINE__);
+ return RETURN_OK;
+ }
+ INT wifi_getRadioAutoChannelEnable(INT radioIndex, BOOL *output_bool)
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0008-patch-HAL-implement-ApMaxAssociatedDevice-and-WaterM.patch b/recipes-ccsp/hal/hal-wifi-patches/0008-patch-HAL-implement-ApMaxAssociatedDevice-and-WaterM.patch
new file mode 100644
index 0000000..4891c35
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0008-patch-HAL-implement-ApMaxAssociatedDevice-and-WaterM.patch
@@ -0,0 +1,108 @@
+From 3a8aee661b87ff9bd9f4d8c38334d74b947e75bb Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 7 Mar 2022 17:48:02 +0800
+Subject: [PATCH 08/18] [patch] HAL: implement ApMaxAssociatedDevice() and
+ WaterMarkThreshold()
+
+Change-Id: Ieae8fb5003b01eb4a13471c7f2a2d788dcf981a8
+---
+ source/wifi/wifi_hal.c | 57 +++++++++++++++++++++++++++++++++++++++---
+ 1 file changed, 54 insertions(+), 3 deletions(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 4f54626b..3ddbc802 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -93,6 +93,7 @@ Licensed under the ISC license
+
+ #define MAX_BUF_SIZE 128
+ #define MAX_CMD_SIZE 1024
++#define MAX_ASSOCIATED_STA_NUM 2007
+
+ //Uncomment to enable debug logs
+ //#define WIFI_DEBUG
+@@ -4536,14 +4537,60 @@ INT wifi_getApMaxAssociatedDevices(INT apIndex, UINT *output_uint)
+ //get the running status from driver
+ if(!output_uint)
+ return RETURN_ERR;
+- *output_uint = 5;
++
++ char output[16]={'\0'};
++ char config_file[MAX_BUF_SIZE] = {0};
++
++ sprintf(config_file, "%s%d.conf", CONFIG_PREFIX, apIndex);
++ wifi_hostapdRead(config_file, "max_num_sta", output, sizeof(output));
++ if (strlen(output) == 0) *output_uint = MAX_ASSOCIATED_STA_NUM;
++ else {
++ int device_num = atoi(output);
++ if (device_num > MAX_ASSOCIATED_STA_NUM || device_num < 0) {
++ wifi_dbg_printf("\n[%s]: get max_num_sta error: %d", __func__, device_num);
++ return RETURN_ERR;
++ }
++ else {
++ *output_uint = device_num;
++ }
++ }
++
+ return RETURN_OK;
+ }
+
+ INT wifi_setApMaxAssociatedDevices(INT apIndex, UINT number)
+ {
+ //store to wifi config, apply instantly
+- return RETURN_ERR;
++ char str[MAX_BUF_SIZE]={'\0'};
++ char cmd[MAX_CMD_SIZE]={'\0'};
++ struct params params;
++ char config_file[MAX_BUF_SIZE] = {0};
++
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
++ if (number > MAX_ASSOCIATED_STA_NUM || number < 0) {
++ WIFI_ENTRY_EXIT_DEBUG("%s: Invalid input\n",__func__);
++ return RETURN_ERR;
++ }
++ sprintf(str, "%d", number);
++ params.name = "max_num_sta";
++ params.value = str;
++
++ sprintf(config_file,"%s%d.conf",CONFIG_PREFIX, apIndex);
++ int ret = wifi_hostapdWrite(config_file, ¶ms, 1);
++ if (ret) {
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s: wifi_hostapdWrite() return %d\n"
++ ,__func__, ret);
++ }
++
++ ret = wifi_hostapdProcessUpdate(apIndex, ¶ms, 1);
++ if (ret) {
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s: wifi_hostapdProcessUpdate() return %d\n"
++ ,__func__, ret);
++ }
++ wifi_reloadAp(apIndex);
++ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
++
++ return RETURN_OK;
+ }
+
+ //The HighWatermarkThreshold value that is lesser than or equal to MaxAssociatedDevices. Setting this parameter does not actually limit the number of clients that can associate with this access point as that is controlled by MaxAssociatedDevices. MaxAssociatedDevices or 50. The default value of this parameter should be equal to MaxAssociatedDevices. In case MaxAssociatedDevices is 0 (zero), the default value of this parameter should be 50. A value of 0 means that there is no specific limit and Watermark calculation algorithm should be turned off.
+@@ -4552,13 +4599,17 @@ INT wifi_getApAssociatedDevicesHighWatermarkThreshold(INT apIndex, UINT *output_
+ //get the current threshold
+ if(!output_uint)
+ return RETURN_ERR;
+- *output_uint = 50;
++ wifi_getApMaxAssociatedDevices(apIndex, output_uint);
++ if (*output_uint == 0)
++ *output_uint = 50;
+ return RETURN_OK;
+ }
+
+ INT wifi_setApAssociatedDevicesHighWatermarkThreshold(INT apIndex, UINT Threshold)
+ {
+ //store the config, reset threshold, reset AssociatedDevicesHighWatermarkThresholdReached, reset AssociatedDevicesHighWatermarkDate to current time
++ if (!wifi_setApMaxAssociatedDevices(apIndex, Threshold))
++ return RETURN_OK;
+ return RETURN_ERR;
+ }
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0009-patch-HAL-implement-wifi_getApWmmUapsdEnable.patch b/recipes-ccsp/hal/hal-wifi-patches/0009-patch-HAL-implement-wifi_getApWmmUapsdEnable.patch
new file mode 100644
index 0000000..2319aeb
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0009-patch-HAL-implement-wifi_getApWmmUapsdEnable.patch
@@ -0,0 +1,36 @@
+From 5e446b7ed3ee1040ccacc90747f69879fec5f4d6 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 7 Mar 2022 19:11:24 +0800
+Subject: [PATCH 09/18] [patch] HAL: implement wifi_getApWmmUapsdEnable()
+
+Change-Id: I4127956b14d984dc8470d66423f4b7560e48708f
+---
+ source/wifi/wifi_hal.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 3ddbc802..680b4283 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -4513,7 +4513,17 @@ INT wifi_getApWmmUapsdEnable(INT apIndex, BOOL *output)
+ //get the running status from driver
+ if(!output)
+ return RETURN_ERR;
+- *output=TRUE;
++
++ char config_file[MAX_BUF_SIZE] = {0};
++ char buf[16] = {0};
++
++ sprintf(config_file,"%s%d.conf",CONFIG_PREFIX,apIndex);
++ wifi_hostapdRead(config_file, "uapsd_advertisement_enabled", buf, sizeof(buf));
++ if (strncmp("1",buf,1) == 0)
++ *output = TRUE;
++ else
++ *output = FALSE;
++
+ return RETURN_OK;
+ }
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0010-patch-HAL-implement-wifi_getApWmmEnable.patch b/recipes-ccsp/hal/hal-wifi-patches/0010-patch-HAL-implement-wifi_getApWmmEnable.patch
new file mode 100644
index 0000000..a901c8f
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0010-patch-HAL-implement-wifi_getApWmmEnable.patch
@@ -0,0 +1,36 @@
+From 22017539d25420018d654e8f92ae517eacb08335 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 7 Mar 2022 19:12:13 +0800
+Subject: [PATCH 10/18] [patch] HAL: implement wifi_getApWmmEnable()
+
+Change-Id: I5baf1c0402fac4795ff52e58bce8be92b9fbf13d
+---
+ source/wifi/wifi_hal.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 680b4283..4e220ed6 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -4496,7 +4496,17 @@ INT wifi_getApWmmEnable(INT apIndex, BOOL *output)
+ //get the running status from driver
+ if(!output)
+ return RETURN_ERR;
+- *output=TRUE;
++
++ char config_file[MAX_BUF_SIZE] = {0};
++ char buf[16] = {0};
++
++ sprintf(config_file,"%s%d.conf",CONFIG_PREFIX,apIndex);
++ wifi_hostapdRead(config_file, "wmm_enabled", buf, sizeof(buf));
++ if (strncmp("1",buf,1) == 0)
++ *output = TRUE;
++ else
++ *output = FALSE;
++
+ return RETURN_OK;
+ }
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0011-patch-HAL-implement-wifi_setApWmmEnable.patch b/recipes-ccsp/hal/hal-wifi-patches/0011-patch-HAL-implement-wifi_setApWmmEnable.patch
new file mode 100644
index 0000000..7e6d7c8
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0011-patch-HAL-implement-wifi_setApWmmEnable.patch
@@ -0,0 +1,39 @@
+From bd22b8ef61e88e1e379925aecb6224bc3cd43963 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 7 Mar 2022 19:17:56 +0800
+Subject: [PATCH 11/18] [patch] HAL: implement wifi_setApWmmEnable()
+
+Change-Id: Ifee29de1c42ef26528d26996937db7c959d8fd06
+---
+ source/wifi/wifi_hal.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 4e220ed6..62350c1b 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -4514,7 +4514,20 @@ INT wifi_getApWmmEnable(INT apIndex, BOOL *output)
+ INT wifi_setApWmmEnable(INT apIndex, BOOL enable)
+ {
+ //Save config and apply instantly.
+- return RETURN_ERR;
++ char config_file[MAX_BUF_SIZE] = {0};
++ struct params list;
++
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
++ list.name = "wmm_enabled";
++ list.value = enable?"1":"0";
++
++ sprintf(config_file,"%s%d.conf",CONFIG_PREFIX,apIndex);
++ wifi_hostapdWrite(config_file, &list, 1);
++ wifi_hostapdProcessUpdate(apIndex, &list, 1);
++ wifi_reloadAp(apIndex);
++ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
++
++ return RETURN_OK;
+ }
+
+ //Whether U-APSD support is currently enabled. When enabled, this is indicated in beacon frames. Note: U-APSD can only be enabled if WMM is also enabled.
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0012-patch-HAL-implement-wifi_setApWmmUapsdEnable.patch b/recipes-ccsp/hal/hal-wifi-patches/0012-patch-HAL-implement-wifi_setApWmmUapsdEnable.patch
new file mode 100644
index 0000000..bdb7ac5
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0012-patch-HAL-implement-wifi_setApWmmUapsdEnable.patch
@@ -0,0 +1,39 @@
+From 10e72bb7444664bfcd111713bfbfe2701772c8d5 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 7 Mar 2022 19:18:56 +0800
+Subject: [PATCH 12/18] [patch] HAL: implement wifi_setApWmmUapsdEnable()
+
+Change-Id: I9d3d86f06d9b276ca3624e3679356aa6da3ea591
+---
+ source/wifi/wifi_hal.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 62350c1b..cb5c6109 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -4554,7 +4554,20 @@ INT wifi_getApWmmUapsdEnable(INT apIndex, BOOL *output)
+ INT wifi_setApWmmUapsdEnable(INT apIndex, BOOL enable)
+ {
+ //save config and apply instantly.
+- return RETURN_ERR;
++ char config_file[MAX_BUF_SIZE] = {0};
++ struct params list;
++
++ WIFI_ENTRY_EXIT_DEBUG("Inside %s:%d\n",__func__, __LINE__);
++ list.name = "uapsd_advertisement_enabled";
++ list.value = enable?"1":"0";
++
++ sprintf(config_file,"%s%d.conf",CONFIG_PREFIX,apIndex);
++ wifi_hostapdWrite(config_file, &list, 1);
++ wifi_hostapdProcessUpdate(apIndex, &list, 1);
++ wifi_reloadAp(apIndex);
++ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
++
++ return RETURN_OK;
+ }
+
+ // Sets the WMM ACK polity on the hardware. AckPolicy false means do not acknowledge, true means acknowledge
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0013-patch-HAL-implement-wifi_getProxyArp.patch b/recipes-ccsp/hal/hal-wifi-patches/0013-patch-HAL-implement-wifi_getProxyArp.patch
new file mode 100644
index 0000000..f687b02
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0013-patch-HAL-implement-wifi_getProxyArp.patch
@@ -0,0 +1,43 @@
+From 3d2602233dc6190f9627fe48beb6ed05b5546783 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Tue, 8 Mar 2022 16:33:44 +0800
+Subject: [PATCH 13/18] [patch] HAL: implement wifi_getProxyArp()
+
+Change-Id: I9e1d04eac09fe7ae1d43600a6c8549feb0ea7858
+---
+ source/wifi/wifi_hal.c | 22 ++++++++++++++++++++++
+ 1 file changed, 22 insertions(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index cb5c6109..f10e16ab 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -8957,3 +8957,25 @@ INT wifi_getApAssociatedDevice(INT ap_index, CHAR *output_buf, INT output_buf_si
+ return RETURN_OK;
+ }
+ #endif
++
++INT wifi_getProxyArp(INT apIndex, BOOL *enable)
++{
++ char output[16]={'\0'};
++ char config_file[MAX_BUF_SIZE] = {0};
++
++ if (!enable)
++ return RETURN_ERR;
++
++ sprintf(config_file, "%s%d.conf", CONFIG_PREFIX, apIndex);
++ wifi_hostapdRead(config_file, "proxy_arp", output, sizeof(output));
++
++ if (strlen(output) == 0)
++ *enable = FALSE;
++ else if (strncmp(output, "1", 1) == 0)
++ *enable = TRUE;
++ else
++ *enable = FALSE;
++
++ wifi_dbg_printf("\n[%s]: proxy_arp is : %s", __func__, output);
++ return RETURN_OK;
++}
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0014-PATCH-HAL-Specify-MTK-driver.patch b/recipes-ccsp/hal/hal-wifi-patches/0014-PATCH-HAL-Specify-MTK-driver.patch
new file mode 100644
index 0000000..bf00326
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0014-PATCH-HAL-Specify-MTK-driver.patch
@@ -0,0 +1,31 @@
+From cc12618b6c8ba2fb49209f87feadf33f45d766c7 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Wed, 16 Mar 2022 15:31:36 +0800
+Subject: [PATCH 14/18] [PATCH] HAL: Specify MTK driver
+
+Change-Id: Icdafb2cca3bbf5cbe5378f656590fc4261aebec0
+---
+ source/wifi/wifi_hal.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index f10e16ab..533226b5 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -65,8 +65,13 @@ Licensed under the ISC license
+ //#define ACL_PREFIX "/tmp/wifi_acl_list" //RDKB convention
+ #define SOCK_PREFIX "/var/run/hostapd/wifi"
+ #define VAP_STATUS_FILE "/tmp/vap-status"
++#ifdef MTK_IMPL
++#define DRIVER_2GHZ "mt7915e"
++#define DRIVER_5GHZ "mt7915e"
++#else
+ #define DRIVER_2GHZ "ath9k"
+ #define DRIVER_5GHZ "ath10k_pci"
++#endif
+
+ /*
+ MAX_APS - Number of all AP available in system
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0015-patch-HAL-refactor-wifi_getApMacAddressControlMode.patch b/recipes-ccsp/hal/hal-wifi-patches/0015-patch-HAL-refactor-wifi_getApMacAddressControlMode.patch
new file mode 100644
index 0000000..31fa49c
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0015-patch-HAL-refactor-wifi_getApMacAddressControlMode.patch
@@ -0,0 +1,43 @@
+From 522c439c6253be13a508464bb9e9676a057c09f1 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 14 Mar 2022 19:06:29 +0800
+Subject: [PATCH 15/18] [patch] HAL: refactor wifi_getApMacAddressControlMode()
+
+Change-Id: I612e055e60ef9a48f2f7d719cb9baf486644b5be
+---
+ source/wifi/wifi_hal.c | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 533226b5..05413f5e 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -6736,7 +6736,24 @@ INT wifi_getApMacAddressControlMode(INT apIndex, INT *output_filterMode)
+ //_syscmd(cmd, buf, sizeof(buf));
+ sprintf(config_file, "%s%d.conf", CONFIG_PREFIX, apIndex);
+ wifi_hostapdRead(config_file, "macaddr_acl", buf, sizeof(buf));
+- *output_filterMode = atoi(buf);
++ if(strlen(buf) == 0) {
++ *output_filterMode = 0;
++ }
++ else {
++ int macaddr_acl_mode = atoi(buf);
++ if (macaddr_acl_mode == 1) {
++ *output_filterMode = 1;
++ } else if (macaddr_acl_mode == 0) {
++ wifi_hostapdRead(config_file, "deny_mac_file", buf, sizeof(buf));
++ if (strlen(buf) == 0) {
++ *output_filterMode = 0;
++ } else {
++ *output_filterMode = 2;
++ }
++ } else {
++ return RETURN_ERR;
++ }
++ }
+
+ return RETURN_OK;
+ }
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0016-PATCH-HAL-refactor-wifi_setApMacAddressControlMode.patch b/recipes-ccsp/hal/hal-wifi-patches/0016-PATCH-HAL-refactor-wifi_setApMacAddressControlMode.patch
new file mode 100644
index 0000000..98f23c9
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0016-PATCH-HAL-refactor-wifi_setApMacAddressControlMode.patch
@@ -0,0 +1,70 @@
+From 5175e19e0a628baff0aad73d2397e9a23bc3dc7d Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 14 Mar 2022 19:40:08 +0800
+Subject: [PATCH] HAL: refactor wifi_setApMacAddressControlMode()
+
+Change-Id: Ia9bdb3b6ac683a8634bd726b6d472eb133d258d0
+---
+ source/wifi/wifi_hal.c | 31 ++++++++++++++++++++++++++++---
+ 1 file changed, 28 insertions(+), 3 deletions(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 5f5ac68..0ed1e85 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -68,6 +68,7 @@ Licensed under the ISC license
+ #define IF_NAME_SIZE 50
+ #define CONFIG_PREFIX "/nvram/hostapd"
+ #define ACL_PREFIX "/tmp/hostapd-acl"
++#define DENY_PREFIX "/tmp/hostapd-deny"
+ //#define ACL_PREFIX "/tmp/wifi_acl_list" //RDKB convention
+ #define SOCK_PREFIX "/var/run/hostapd/wifi"
+ #define VAP_STATUS_FILE "/tmp/vap-status"
+@@ -4308,17 +4309,41 @@ INT wifi_setApMacAddressControlMode(INT apIndex, INT filterMode)
+ struct params list[2];
+ char buf[MAX_BUF_SIZE] = {0};
+ char config_file[MAX_BUF_SIZE] = {0}, acl_file[MAX_BUF_SIZE] = {0};
++ char deny_file[MAX_BUF_SIZE] = {0};
+
+ list[0].name = "macaddr_acl";
+- sprintf(buf, "%d", filterMode);
+- list[0].value = buf ;
+
+- if (filterMode == 1 || filterMode == 2) {//TODO: check for filterMode(2)
++ if (filterMode == 0) {
++ sprintf(buf, "%d", 0);
++ list[0].value = buf;
++
++ char cmd[128], rtn[128];
++ snprintf(cmd, sizeof(cmd), "hostapd_cli -i %s%d deny_acl CLEAR", AP_PREFIX, apIndex);
++ _syscmd(cmd, rtn, sizeof(rtn));
++ memset(cmd,0,sizeof(cmd));
++ // Delete deny_mac_file in hostapd configuration
++ snprintf(cmd, sizeof(cmd), "sed -i '/deny_mac_file=/d' %s%d.conf ", CONFIG_PREFIX, apIndex);
++ _syscmd(cmd, rtn, sizeof(rtn));
++ }
++ else if (filterMode == 1) {
++ sprintf(buf, "%d", filterMode);
++ list[0].value = buf;
+ sprintf(acl_file,"%s%d",ACL_PREFIX,apIndex);
+ list[1].name = "accept_mac_file";
+ list[1].value = acl_file;
+ items = 2;
++ } else if (filterMode == 2) {
++ //TODO: deny_mac_file
++ sprintf(buf, "%d", 0);
++ list[0].value = buf;
++ list[1].name = "deny_mac_file";
++ sprintf(deny_file,"%s%d", DENY_PREFIX,apIndex);
++ list[1].value = deny_file;
++ items = 2;
++ } else {
++ return RETURN_ERR;
+ }
++
+ sprintf(config_file,"%s%d.conf",CONFIG_PREFIX,apIndex);
+ wifi_hostapdWrite(config_file, list, items);
+
+--
+2.18.0
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0017-PATCH-HAL-refactor-wifi_setApSsidAdvertisementEnable.patch b/recipes-ccsp/hal/hal-wifi-patches/0017-PATCH-HAL-refactor-wifi_setApSsidAdvertisementEnable.patch
new file mode 100644
index 0000000..055943a
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0017-PATCH-HAL-refactor-wifi_setApSsidAdvertisementEnable.patch
@@ -0,0 +1,26 @@
+From df5ff0159878e1b71cb6c2e223226cf7b5644a3a Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Mon, 14 Mar 2022 20:43:14 +0800
+Subject: [PATCH 17/18] [PATCH] HAL: refactor
+ wifi_setApSsidAdvertisementEnable()
+
+Change-Id: I5d17d443e0763b6728561548117c8a5b047ed882
+---
+ source/wifi/wifi_hal.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 6be09577..e44a9d02 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -4481,6 +4481,7 @@ INT wifi_setApSsidAdvertisementEnable(INT apIndex, BOOL enable)
+ wifi_hostapdWrite(config_file, &list, 1);
+ wifi_hostapdProcessUpdate(apIndex, &list, 1);
+ //TODO: call hostapd_cli for dynamic_config_control
++ wifi_reloadAp(apIndex);
+ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
+
+ return RETURN_OK;
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0018-patch-HAL-enhance-wifi_getApWpsConfigurationState.patch b/recipes-ccsp/hal/hal-wifi-patches/0018-patch-HAL-enhance-wifi_getApWpsConfigurationState.patch
new file mode 100644
index 0000000..c50a2ac
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0018-patch-HAL-enhance-wifi_getApWpsConfigurationState.patch
@@ -0,0 +1,26 @@
+From 969e24609034a30bb45321e3098ac7ed49d9ca6c Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Wed, 23 Feb 2022 11:27:47 +0800
+Subject: [PATCH 18/18] [patch] HAL: enhance wifi_getApWpsConfigurationState()
+
+Change-Id: Ibecd442a3884d6b4f17b623ee5c696d04a7b9754
+---
+ source/wifi/wifi_hal.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index e44a9d02..13af7e36 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -5181,7 +5181,7 @@ INT wifi_getApWpsConfigurationState(INT apIndex, CHAR *output_string)
+ snprintf(cmd, sizeof(cmd), "hostapd_cli -i %s%d get_config | grep wps_state | cut -d'=' -f2", AP_PREFIX, apIndex);
+ _syscmd(cmd, buf, sizeof(buf));
+
+- if(!strcmp(buf, "configured"))
++ if(!strncmp(buf, "configured", 10))
+ snprintf(output_string, 32, "Configured");
+ WIFI_ENTRY_EXIT_DEBUG("Exiting %s:%d\n",__func__, __LINE__);
+
+--
+2.29.2
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0019-patch-HAL-refactor-wifi_getRadioEnable.patch b/recipes-ccsp/hal/hal-wifi-patches/0019-patch-HAL-refactor-wifi_getRadioEnable.patch
new file mode 100644
index 0000000..e2a4720
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0019-patch-HAL-refactor-wifi_getRadioEnable.patch
@@ -0,0 +1,38 @@
+From 801018bbcf3427713997b1ead85fec6c9acaf2bb Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Wed, 6 Apr 2022 09:20:37 +0800
+Subject: [PATCH] HAL: refactor wifi_getRadioEnable()
+
+---
+ source/wifi/wifi_hal.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 1d07d19..c753d99 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -1025,13 +1025,18 @@ INT wifi_getRadioEnable(INT radioIndex, BOOL *output_bool) //RDKB
+
+ snprintf(interface_path, sizeof(interface_path), "/sys/class/net/%s%d/address", RADIO_PREFIX, radioIndex);
+ fp = fopen(interface_path, "r");
+- if(fp)
++ if(!fp)
+ {
+- *output_bool = TRUE;
+- fclose(fp);
++ return RETURN_OK;
+ }
+ //TODO: check if hostapd with config is running
++ char buf[MAX_BUF_SIZE] = {0}, cmd[MAX_CMD_SIZE] = {0};
++ sprintf(cmd, "hostapd_cli -i %s%d status | grep state | cut -d '=' -f2", AP_PREFIX, radioIndex);
++ _syscmd(cmd, buf, sizeof(buf));
+
++ if(!strncmp(buf, "ENABLED", 7))
++ *output_bool = TRUE;
++ fclose(fp);
+ return RETURN_OK;
+ }
+
+--
+2.18.0
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0020-HAL-add-wifi_getApDenyAclDevics-and-refactor-wifi_ki.patch b/recipes-ccsp/hal/hal-wifi-patches/0020-HAL-add-wifi_getApDenyAclDevics-and-refactor-wifi_ki.patch
new file mode 100644
index 0000000..9990695
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0020-HAL-add-wifi_getApDenyAclDevics-and-refactor-wifi_ki.patch
@@ -0,0 +1,70 @@
+From b0ea47cacafdc1aa512afd04129a23267d7d3533 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Wed, 6 Apr 2022 16:34:31 +0800
+Subject: [PATCH 1/2] HAL: add wifi_getApDenyAclDevics() and refactor
+ wifi_kickApAclAssociatedDevices()
+
+According to the description of wifi_kickApAclAssociatedDevice(), wifi_kickApAclAssociatedDevices()
+have to kicks the devices written in the deny mac lsit. But current Implementation
+kicks the devices in the accept list. This commit is created to refactor this API.
+---
+ source/wifi/wifi_hal.c | 26 +++++++++++++++++---------
+ 1 file changed, 17 insertions(+), 9 deletions(-)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index c753d99..6427a43 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -4068,6 +4068,20 @@ INT wifi_getApAclDevices(INT apIndex, CHAR *macArray, UINT buf_size)
+ return RETURN_OK;
+ }
+
++INT wifi_getApDenyAclDevices(INT apIndex, CHAR *macArray, UINT buf_size)
++{
++ char cmd[MAX_CMD_SIZE]={'\0'};
++ int ret = 0;
++
++ sprintf(cmd, "hostapd_cli -i %s%d deny_acl SHOW | awk '{print $1}'", AP_PREFIX,apIndex);
++ ret = _syscmd(cmd,macArray,buf_size);
++ if (ret != 0)
++ return RETURN_ERR;
++
++ return RETURN_OK;
++}
++
++
+ // Get the list of stations associated per AP
+ INT wifi_getApDevicesAssociated(INT apIndex, CHAR *macArray, UINT buf_size)
+ {
+@@ -4159,7 +4173,7 @@ INT wifi_kickApAclAssociatedDevices(INT apIndex, BOOL enable)
+ char aclArray[512] = {0}, *acl = NULL;
+ char assocArray[512] = {0}, *asso = NULL;
+
+- wifi_getApAclDevices(apIndex, aclArray, sizeof(aclArray));
++ wifi_getApDenyAclDevices(apIndex, aclArray, sizeof(aclArray));
+ wifi_getApDevicesAssociated(apIndex, assocArray, sizeof(assocArray));
+
+ // if there are no devices connected there is nothing to do
+@@ -4176,17 +4190,11 @@ INT wifi_kickApAclAssociatedDevices(INT apIndex, BOOL enable)
+
+ acl = strtok(NULL, "\r\n");
+ }
++ wifi_setApMacAddressControlMode(apIndex, 2);
+ }
+ else
+ {
+- //kick off the MAC which is not in ACL array (allow list)
+- asso = strtok(assocArray, "\r\n");
+- while (asso != NULL) {
+- if (strlen(asso) >= 17 && !strcasestr(aclArray, asso))
+- wifi_kickApAssociatedDevice(apIndex, asso);
+-
+- asso = strtok(NULL, "\r\n");
+- }
++ wifi_setApMacAddressControlMode(apIndex, 0);
+ }
+
+ #if 0
+--
+2.18.0
+
diff --git a/recipes-ccsp/hal/hal-wifi-patches/0021-HAL-add-wifi_getRadioStatsEnable.patch b/recipes-ccsp/hal/hal-wifi-patches/0021-HAL-add-wifi_getRadioStatsEnable.patch
new file mode 100644
index 0000000..4f70998
--- /dev/null
+++ b/recipes-ccsp/hal/hal-wifi-patches/0021-HAL-add-wifi_getRadioStatsEnable.patch
@@ -0,0 +1,28 @@
+From d8375d65c9a32bef94c44f8ec4fc689aaebc70d5 Mon Sep 17 00:00:00 2001
+From: "howard.hsu" <howard-yh.hsu@mediatek.com>
+Date: Fri, 8 Apr 2022 14:37:43 +0800
+Subject: [PATCH] HAL: add wifi_getRadioStatsEnable()
+
+---
+ source/wifi/wifi_hal.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/source/wifi/wifi_hal.c b/source/wifi/wifi_hal.c
+index 2e60367..a70ff15 100644
+--- a/source/wifi/wifi_hal.c
++++ b/source/wifi/wifi_hal.c
+@@ -9652,3 +9652,11 @@ INT wifi_getProxyArp(INT apIndex, BOOL *enable)
+ wifi_dbg_printf("\n[%s]: proxy_arp is : %s", __func__, output);
+ return RETURN_OK;
+ }
++
++INT wifi_getRadioStatsEnable(INT radioIndex, BOOL *output_enable)
++{
++ if (NULL == output_enable || !(radioIndex==0 || radioIndex==1))
++ return RETURN_ERR;
++ *output_enable=TRUE;
++ return RETURN_OK;
++}
+--
+2.18.0
+
diff --git a/recipes-ccsp/hal/halinterface.bbappend b/recipes-ccsp/hal/halinterface.bbappend
new file mode 100644
index 0000000..d439c25
--- /dev/null
+++ b/recipes-ccsp/hal/halinterface.bbappend
@@ -0,0 +1,14 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI += "file://sta-network.patch;apply=no"
+
+#This is workaround for missing do_patch when RDK uses external sources
+do_turris_patches() {
+ cd ${S}
+ if [ ! -e patch_applied ]; then
+ patch -p1 < ${WORKDIR}/sta-network.patch
+ touch patch_applied
+ fi
+}
+addtask turris_patches after do_unpack before do_compile
+
+CFLAGS_append = " -DWIFI_HAL_VERSION_3"
diff --git a/recipes-ccsp/util/test-and-diagnostic.bbappend b/recipes-ccsp/util/test-and-diagnostic.bbappend
new file mode 100644
index 0000000..104c861
--- /dev/null
+++ b/recipes-ccsp/util/test-and-diagnostic.bbappend
@@ -0,0 +1,8 @@
+require recipes-ccsp/ccsp/ccsp_common_turris.inc
+
+do_install_append () {
+ # Test and Diagonastics XML
+ install -m 644 ${S}/config/TestAndDiagnostic_arm.XML ${D}/usr/ccsp/tad/TestAndDiagnostic.XML
+}
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
diff --git a/recipes-ccsp/util/utopia-headers.bb b/recipes-ccsp/util/utopia-headers.bb
new file mode 100644
index 0000000..1d14402
--- /dev/null
+++ b/recipes-ccsp/util/utopia-headers.bb
@@ -0,0 +1,26 @@
+SUMMARY = "CCSP Utopia"
+HOMEPAGE = "http://github.com/belvedere-yocto/Utopia"
+
+LICENSE = "Apache-2.0 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=baa21dec03307f641a150889224a157f"
+SRC_URI = "${CMF_GIT_ROOT}/rdkb/components/opensource/ccsp/Utopia;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};name=Utopia"
+
+SRCREV_Utopia = "${AUTOREV}"
+PV = "${RDK_RELEASE}"
+
+S = "${WORKDIR}/git"
+
+# this is a header package only, nothing to build
+do_compile[noexec] = "1"
+do_configure[noexec] = "1"
+
+# also get rid of the default dependency added in bitbake.conf
+# since there is no 'main' package generated (empty)
+RDEPENDS_${PN}-dev = ""
+
+do_install() {
+ install -D -m 0644 ${S}/source/include/autoconf.h ${D}${includedir}/utctx/autoconf.h
+ install -D -m 0644 ${S}/source/utctx/lib/utctx.h ${D}${includedir}/utctx/utctx.h
+ install -D -m 0644 ${S}/source/utctx/lib/utctx_api.h ${D}${includedir}/utctx/utctx_api.h
+ install -D -m 0644 ${S}/source/utctx/lib/utctx_rwlock.h ${D}${includedir}/utctx/utctx_rwlock.h
+}
diff --git a/recipes-ccsp/util/utopia.bbappend b/recipes-ccsp/util/utopia.bbappend
new file mode 100644
index 0000000..9f12407
--- /dev/null
+++ b/recipes-ccsp/util/utopia.bbappend
@@ -0,0 +1,218 @@
+require recipes-ccsp/ccsp/ccsp_common_turris.inc
+
+DEPENDS_append = " kernel-autoconf utopia-headers libsyswrapper telemetry"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+EXTRA_OECONF_append = " --with-ccsp-arch=arm"
+
+SRC_URI_append = " \
+ file://0001-fix-lan-handler-for-turris.patch;apply=no \
+ file://0003-remove-autoconf.patch;apply=no \
+ file://system_defaults \
+"
+SRC_URI_append_dunfell = "file://0001-Work-around-for-brlan0-issue.patch;apply=no"
+
+SRC_URI += "file://posix-gwprovapp.patch;apply=no"
+#This patch will add dummy swctl api which is originally given by brcm for XB3.
+SRC_URI += "file://0002-fix-swctl-missing-api.patch;apply=no"
+SRC_URI += "file://firewall-secure-onboard.patch;apply=no"
+SRC_URI += "file://dhcp_script.sh"
+
+LDFLAGS_append = " \
+ -lsecure_wrapper \
+"
+
+CFLAGS_append = " -Wno-format-extra-args -Wno-error "
+CFLAGS_append += "${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' -D_WAN_MANAGER_ENABLED_', '', d)}"
+
+# we need to patch to code for Turris
+do_turris_patches() {
+ cd ${S}
+ if [ ! -e turris_patch_applied ]; then
+ bbnote "Patching 0001-fix-lan-handler-for-turris.patch"
+ patch -p1 < ${WORKDIR}/0001-fix-lan-handler-for-turris.patch
+
+ bbnote "Patching posix-gwprovapp.patch"
+ patch -p1 < ${WORKDIR}/posix-gwprovapp.patch
+
+ bbnote "Patching 0002-fix-swctl-missing-api.patch"
+ patch -p1 < ${WORKDIR}/0002-fix-swctl-missing-api.patch
+
+ bbnote "Patching firewall-secure-onboard.patch"
+ patch -p1 < ${WORKDIR}/firewall-secure-onboard.patch || echo "ERROR or Patch already applied"
+
+ touch turris_patch_applied
+ fi
+}
+
+do_turris_patches-append_dunfell() {
+ cd ${S}
+ if [ ! -e dunfell_turris_patch_applied ]; then
+ patch -p1 < ${WORKDIR}/0001-Work-around-for-brlan0-issue.patch
+ fi
+ touch dunfell_turris_patch_applied
+}
+
+addtask turris_patches after do_unpack before do_compile
+
+do_install_append() {
+
+ # Don't install header files which are provided by utopia-headers
+ rm -f ${D}${includedir}/utctx/autoconf.h
+ rm -f ${D}${includedir}/utctx/utctx.h
+ rm -f ${D}${includedir}/utctx/utctx_api.h
+ rm -f ${D}${includedir}/utctx/utctx_rwlock.h
+
+ # Config files and scripts
+ install -d ${D}/rdklogs
+ install -d ${D}/fss/gw/bin
+ install -d ${D}/fss/gw/usr/bin
+ install -d ${D}/fss/gw/usr/sbin
+ install -d ${D}/fss/gw/etc/utopia/service.d
+ install -d ${D}/var/spool/cron/crontabs
+
+ install -d ${D}${sbindir}/
+ install -d ${D}${sysconfdir}/utopia/service.d
+ install -d ${D}${sysconfdir}/utopia/registration.d
+ install -d ${D}${sysconfdir}/utopia/post.d
+ install -d ${D}${sysconfdir}/IGD
+ install -d ${D}${sysconfdir}/utopia/service.d/service_bridge
+ install -d ${D}${sysconfdir}/utopia/service.d/service_ddns
+ install -d ${D}${sysconfdir}/utopia/service.d/service_dhcp_server
+ install -d ${D}${sysconfdir}/utopia/service.d/service_lan
+ install -d ${D}${sysconfdir}/utopia/service.d/service_multinet
+ install -d ${D}${sysconfdir}/utopia/service.d/service_syslog
+ install -d ${D}${sysconfdir}/utopia/service.d/service_wan
+
+ install -m 755 ${S}/source/scripts/init/system/utopia_init.sh ${D}${sysconfdir}/utopia/
+ install -m 644 ${S}/source/scripts/init/defaults/system_defaults_arm ${D}${sysconfdir}/utopia/system_defaults
+ install -m 755 ${S}/source/scripts/init/service.d/*.sh ${D}${sysconfdir}/utopia/service.d/
+ install -m 755 ${S}/source/scripts/init/service.d/service_bridge/*.sh ${D}${sysconfdir}/utopia/service.d/service_bridge
+ install -m 755 ${S}/source/scripts/init/service.d/service_ddns/*.sh ${D}${sysconfdir}/utopia/service.d/service_ddns
+ install -m 755 ${S}/source/scripts/init/service.d/service_dhcp_server/* ${D}${sysconfdir}/utopia/service.d/service_dhcp_server
+ install -m 755 ${S}/source/scripts/init/service.d/service_lan/*.sh ${D}${sysconfdir}/utopia/service.d/service_lan
+ install -m 755 ${S}/source/scripts/init/service.d/service_multinet/*.sh ${D}${sysconfdir}/utopia/service.d/service_multinet
+ install -m 755 ${S}/source/scripts/init/service.d/service_syslog/*.sh ${D}${sysconfdir}/utopia/service.d/service_syslog
+ install -m 755 ${S}/source/scripts/init/service.d/service_wan/*.sh ${D}${sysconfdir}/utopia/service.d/service_wan
+ install -m 755 ${S}/source/scripts/init/service.d/service_firewall/firewall_log_handle.sh ${D}${sysconfdir}/utopia/service.d/
+ install -m 644 ${S}/source/igd/src/inc/*.xml ${D}${sysconfdir}/IGD
+ install -D -m 644 ${S}/source/scripts/init/syslog_conf/syslog.conf_default ${D}/fss/gw/${sysconfdir}/syslog.conf.${BPN}
+ install -m 755 ${S}/source/scripts/init/syslog_conf/log_start.sh ${D}${sbindir}/
+ install -m 755 ${S}/source/scripts/init/syslog_conf/log_handle.sh ${D}${sbindir}/
+ install -m 755 ${S}/source/scripts/init/syslog_conf/syslog_conf_tool.sh ${D}${sbindir}/
+ install -m 644 ${S}/source/scripts/init/service.d/event_flags ${D}${sysconfdir}/utopia/service.d/
+ install -m 644 ${S}/source/scripts/init/service.d/rt_tables ${D}${sysconfdir}/utopia/service.d/rt_tables
+ install -m 755 ${S}/source/scripts/init/service.d/service_cosa_arm.sh ${D}${sysconfdir}/utopia/service.d/service_cosa.sh
+ install -m 755 ${S}/source/scripts/init/service.d/service_dhcpv6_client_arm.sh ${D}${sysconfdir}/utopia/service.d/service_dhcpv6_client.sh
+ install -m 755 ${S}/source/scripts/init/system/need_wifi_default.sh ${D}${sysconfdir}/utopia/
+ touch ${D}${sysconfdir}/dhcp_static_hosts
+ #turris omnia uses default service_bridge.sh for now
+ install -m 755 ${S}/source/scripts/init/service.d/service_bridge.sh ${D}${sysconfdir}/utopia/service.d/service_bridge.sh
+
+ install -m 755 ${WORKDIR}/dhcp_script.sh ${D}${sysconfdir}/
+ #Removing service_dhcp_server.sh as dnsmasq is invoked by service_dhcp binary
+ rm ${D}${sysconfdir}/utopia/service.d/service_dhcp_server.sh
+
+ # Creating symbolic links to install files in specific directory as in legacy builds
+ ln -sf /usr/bin/10_firewall ${D}${sysconfdir}/utopia/post.d/10_firewall
+ ln -sf /usr/bin/service_multinet_exec ${D}${sysconfdir}/utopia/service.d/service_multinet_exec
+ ln -sf /usr/bin/10_mcastproxy ${D}${sysconfdir}/utopia/post.d/10_mcastproxy
+ ln -sf /usr/bin/10_mldproxy ${D}${sysconfdir}/utopia/post.d/10_mldproxy
+ ln -sf /usr/bin/15_igd ${D}${sysconfdir}/utopia/post.d/15_igd
+ ln -sf /usr/bin/15_misc ${D}${sysconfdir}/utopia/post.d/15_misc
+ ln -sf /usr/bin/02_bridge ${D}${sysconfdir}/utopia/registration.d/02_bridge
+ ln -sf /usr/bin/02_forwarding ${D}${sysconfdir}/utopia/registration.d/02_forwarding
+ ln -sf /usr/bin/02_ipv4 ${D}${sysconfdir}/utopia/registration.d/02_ipv4
+ ln -sf /usr/bin/02_lanHandler ${D}${sysconfdir}/utopia/registration.d/02_lanHandler
+ ln -sf /usr/bin/02_multinet ${D}${sysconfdir}/utopia/registration.d/02_multinet
+ ln -sf /usr/bin/02_wan ${D}${sysconfdir}/utopia/registration.d/02_wan
+ ln -sf /usr/bin/02_lan ${D}${sysconfdir}/utopia/registration.d/02_lan
+ ln -sf /usr/bin/15_ccsphs ${D}${sysconfdir}/utopia/registration.d/15_ccsphs
+ ln -sf /usr/bin/15_ddnsclient ${D}${sysconfdir}/utopia/registration.d/15_ddnsclient
+ ln -sf /usr/bin/15_dhcp_server ${D}${sysconfdir}/utopia/registration.d/15_dhcp_server
+ ln -sf /usr/bin/15_hotspot ${D}${sysconfdir}/utopia/registration.d/15_hotspot
+ ln -sf /usr/bin/15_ssh_server ${D}${sysconfdir}/utopia/registration.d/15_ssh_server
+ ln -sf /usr/bin/15_wecb ${D}${sysconfdir}/utopia/registration.d/15_wecb
+ ln -sf /usr/bin/20_routing ${D}${sysconfdir}/utopia/registration.d/20_routing
+ ln -sf /usr/bin/25_crond ${D}${sysconfdir}/utopia/registration.d/25_crond
+ ln -sf /usr/bin/26_potd ${D}${sysconfdir}/utopia/registration.d/26_potd
+ ln -sf /usr/bin/33_cosa ${D}${sysconfdir}/utopia/registration.d/33_cosa
+ ln -sf /usr/bin/syscfg ${D}${bindir}/syscfg_create
+ ln -sf /usr/bin/syscfg ${D}${bindir}/syscfg_destroy
+ ln -sf /usr/bin/firewall ${D}/fss/gw/usr/bin/firewall
+ ln -sf /usr/bin/GenFWLog ${D}/fss/gw/usr/bin/GenFWLog
+ ln -sf /etc/utopia/service.d/log_capture_path.sh ${D}/fss/gw/etc/utopia/service.d/log_capture_path.sh
+ ln -sf /etc/utopia/service.d/log_env_var.sh ${D}/fss/gw/etc/utopia/service.d/log_env_var.sh
+ ln -sf /usr/bin/syseventd_fork_helper ${D}/fss/gw/usr/bin/syseventd_fork_helper
+ ln -sf /usr/sbin/log_start.sh ${D}/fss/gw/usr/sbin/log_start.sh
+ ln -sf /usr/sbin/log_handle.sh ${D}/fss/gw/usr/sbin/log_handle.sh
+ ln -sf /etc/syslog.conf.utopia ${D}/fss/gw/etc/syslog.conf.utopia
+ ln -sf /etc/utopia/service.d/misc_handler.sh ${D}/fss/gw/etc/utopia/service.d/misc_handler.sh
+
+ install -m 755 ${WORKDIR}/system_defaults ${D}${sysconfdir}/utopia/system_defaults
+ sed -i -e "s/ifconfig wan0/ifconfig erouter0/g" ${D}/etc/utopia/service.d/service_sshd.sh
+ sed -i -e "s/dropbear -E -s -b \/etc\/sshbanner.txt/dropbear -R -E /g" ${D}/etc/utopia/service.d/service_sshd.sh
+ sed -i -e "/dropbear -R -E -a -r/s/$/ -B/" ${D}${sysconfdir}/utopia/service.d/service_sshd.sh
+
+ #MSG_QUEUE files are not present in turris
+ sed -i '/TOT_MSG_MAX=\$/ s/^/#/g' ${D}${sysconfdir}/utopia/utopia_init.sh
+
+ echo "###TurrisOmnia specific lines###" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "#TODO: Need to replaced once the sky version 2 code is available" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "sysevent set lan-start 0" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "sysevent set bridge-stop 0" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "sysevent set bridge_mode 0" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "sysevent set dhcp_server-resync 0" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "sysevent set ethwan-initialized 1" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "syscfg set eth_wan_enabled true" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "syscfg commit" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "echo 1 > \/proc\/sys\/net\/ipv4\/ip_forward" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+
+ echo "sysevent set bridge_mode \`syscfg get bridge_mode\`" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo "sysevent set lan-status started" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+ echo 'echo_t "[utopia][init] completed creating utopia_inited flag"' >> ${D}${sysconfdir}/utopia/utopia_init.sh
+
+#WanManager Feature
+ DISTRO_WAN_ENABLED="${@bb.utils.contains('DISTRO_FEATURES','rdkb_wan_manager','true','false',d)}"
+ if [ $DISTRO_WAN_ENABLED = 'true' ]; then
+ sed -i '/cron/a \
+\# Creating the dibbler directory for its pid files in \/tmp \
+mkdir -p \/tmp\/dibbler ' ${D}${sysconfdir}/utopia/utopia_init.sh
+
+ sed -i '/log_capture_path.sh/a \
+mkdir -p \/nvram \
+rm -f \/nvram\/dnsmasq.leases \
+cp \/usr\/ccsp\/ccsp_msg.cfg \/tmp \
+touch \/tmp\/cp_subsys_ert \
+ln -s \/var\/spool\/cron\/crontabs \/ \
+mkdir -p \/var\/run\/firewall \
+touch \/nvram\/ETHWAN_ENABLE ' ${D}${sysconfdir}/utopia/utopia_init.sh
+
+
+ sed -i '/lan-status started/a \
+sysevent set wan-status started ' ${D}${sysconfdir}/utopia/utopia_init.sh
+ fi
+
+ echo "touch -f /tmp/utopia_inited" >> ${D}${sysconfdir}/utopia/utopia_init.sh
+
+}
+
+do_install_append_dunfell() {
+ #Following line is for adding Backhaul interface entries in dnsmasq.conf
+ sed -i '/XB6/i \ \ \ \ \ \ \ elif [ "$BOX_TYPE" = "turris" ]; then\n\ \ \ \ \ \ \ \ \ \ \ echo "interface=wifi2" >> $LOCAL_DHCP_CONF\n\ \ \ \ \ \ \ \ \ \ \ echo "dhcp-range=169.254.0.2,169.254.0.254,255.255.255.0,infinite" >> $LOCAL_DHCP_CONF\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if [ "1" == "$NAMESERVERENABLED" ] && [ "$WAN_DHCP_NS" != "" ]; then\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ echo "${PREFIX}""dhcp-option=wifi2,6,$WAN_DHCP_NS" >> $LOCAL_DHCP_CONF\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fi\n\n\ \ \ \ \ \ \ \ \ \ \ echo "interface=wifi3" >> $LOCAL_DHCP_CONF\n\ \ \ \ \ \ \ \ \ \ \ echo "dhcp-range=169.254.1.2,169.254.1.254,255.255.255.0,infinite" >> $LOCAL_DHCP_CONF\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if [ "1" == "$NAMESERVERENABLED" ] && [ "$WAN_DHCP_NS" != "" ]; then\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ echo "${PREFIX}""dhcp-option=wifi3,6,$WAN_DHCP_NS" >> $LOCAL_DHCP_CONF\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fi\n\n\ \ \ \ \ \ \ \ \ \ \ echo "interface=br-home" >> $LOCAL_DHCP_CONF\n\ \ \ \ \ \ \ \ \ \ \ echo "dhcp-range=192.168.1.2,192.168.1.253,255.255.255.0,7d" >> $LOCAL_DHCP_CONF\n\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if [ "1" == "$NAMESERVERENABLED" ] && [ "$WAN_DHCP_NS" != "" ]; then\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ echo "${PREFIX}""dhcp-option=br-home,6,$WAN_DHCP_NS" >> $LOCAL_DHCP_CONF\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ fi\n' ${D}${sysconfdir}/utopia/service.d/service_dhcp_server/dhcp_server_functions.sh
+}
+
+FILES_${PN} += " \
+ /rdklogs/ \
+ /fss/gw/bin/ \
+ /fss/gw/usr/bin/ \
+ /fss/gw/usr/sbin/ \
+ /var/spool/cron/crontabs \
+ /fss/gw/etc/utopia/* \
+ /etc/utopia/system_defaults \
+"
+
+# 0001-fix-lan-handler-for-turris.patch contains bash specific syntax which doesn't run with busybox sh
+RDEPENDS_${PN} += "bash"
+
diff --git a/recipes-ccsp/util/utopia/0001-Work-around-for-brlan0-issue.patch b/recipes-ccsp/util/utopia/0001-Work-around-for-brlan0-issue.patch
new file mode 100644
index 0000000..09895c3
--- /dev/null
+++ b/recipes-ccsp/util/utopia/0001-Work-around-for-brlan0-issue.patch
@@ -0,0 +1,29 @@
+From 6d1fbccb0f1bf9057055f3802d19d6d2d549a213 Mon Sep 17 00:00:00 2001
+From: "rajakumaran.a" <rajakumaran.a@lnttechservices.com>
+Date: Mon, 22 Jun 2020 09:08:27 +0000
+Subject: [PATCH] Work around for brlan0 issue
+
+Signed-off-by: rajakumaran.a <rajakumaran.a@lnttechservices.com>
+---
+ source/scripts/init/service.d/lan_handler.sh | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/source/scripts/init/service.d/lan_handler.sh b/source/scripts/init/service.d/lan_handler.sh
+index 73f274f7..e84090cd 100755
+--- a/source/scripts/init/service.d/lan_handler.sh
++++ b/source/scripts/init/service.d/lan_handler.sh
+@@ -369,6 +369,11 @@ case "$1" in
+ echo_t "Calling lan-start"
+ eval '$THIS lan-start NULL'
+ fi
++ if [ "$BOX_TYPE" = "turris" ]; then
++ sleep 2
++ echo_t "Calling lan-start"
++ eval '$THIS lan-start NULL'
++ fi
+ elif [ "$BOX_TYPE" = "TCCBR" ]; then
+ if [ "$INST" = "" ]; then
+ echo "*****SET THE PRIMARY LAN ******" > /dev/null
+--
+2.17.1
+
diff --git a/recipes-ccsp/util/utopia/0001-fix-lan-handler-for-turris.patch b/recipes-ccsp/util/utopia/0001-fix-lan-handler-for-turris.patch
new file mode 100644
index 0000000..273d9ad
--- /dev/null
+++ b/recipes-ccsp/util/utopia/0001-fix-lan-handler-for-turris.patch
@@ -0,0 +1,55 @@
+From 9cfe9b080409315cc9057459aa34d28f35334b6b Mon Sep 17 00:00:00 2001
+From: Simon Chung <simon.c.chung@accenture.com>
+Date: Tue, 9 Mar 2021 11:56:00 +0000
+Subject: [PATCH] Refresh of the patch originally added by:
+
+ d46de29 RDKCMF-3935 Modify gwprovapp state machine for Raspberry Pi events
+ d9a1ea9 RDKCMF-3919: RDK-B on RPI: update Utopia lan_handler sh patch
+ 3ab4cf5 RDKCMF-3804 - Initial check-in for RDK-B on Raspberry Pi 2 and 3
+
+Since the previous version of the patch did not contain any diff
+context, it was being applied at a fixed offset in lan_handler.sh.
+That fixed offset has become incorrect as lan_handler.sh has been
+updated.
+
+Unfortunately none of the commits which previously added or updated
+the patch give any indication of what the patch does or why it's
+needed.
+
+Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
+---
+ source/scripts/init/service.d/lan_handler.sh | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/source/scripts/init/service.d/lan_handler.sh b/source/scripts/init/service.d/lan_handler.sh
+index 7fd1b46c..4e95ed54 100755
+--- a/source/scripts/init/service.d/lan_handler.sh
++++ b/source/scripts/init/service.d/lan_handler.sh
+@@ -284,6 +284,24 @@ case "$1" in
+ sysevent set multinet-up 9
+ fi
+
++ # --------------------------------------------------------------------
++ # Turris Omnia specific change begin
++ # --------------------------------------------------------------------
++
++ PHY_BRIDGE_IFNAME=`syscfg get lan_ifname`
++ PHY_ETH_IFNAMES=`syscfg get lan_ethernet_physical_ifnames`
++ IFS=' ' read -r -a PHY_ETH_IFNAME_ARRAY <<< "$PHY_ETH_IFNAMES"
++ for PHY_ETH_IFNAME in "${PHY_ETH_IFNAME_ARRAY[@]}"
++ do
++ echo "LAN HANDLER : PHY_ETH_IFNAME = $PHY_ETH_IFNAME"
++ ifconfig $PHY_ETH_IFNAME up
++ brctl addif $PHY_BRIDGE_IFNAME $PHY_ETH_IFNAME
++ done
++
++ # --------------------------------------------------------------------
++ # Turris Omnia specific change end
++ # --------------------------------------------------------------------
++
+ echo_t "LAN HANDLER : Triggering RDKB_FIREWALL_RESTART after nfqhandler"
+ t2CountNotify "SYS_SH_RDKB_FIREWALL_RESTART"
+ sysevent set firewall-restart
+--
+2.28.0
+
diff --git a/recipes-ccsp/util/utopia/0002-fix-swctl-missing-api.patch b/recipes-ccsp/util/utopia/0002-fix-swctl-missing-api.patch
new file mode 100644
index 0000000..32ddf84
--- /dev/null
+++ b/recipes-ccsp/util/utopia/0002-fix-swctl-missing-api.patch
@@ -0,0 +1,13 @@
+diff --git a/source/service_multinet/Puma6_plat/handle_sw.c b/source/service_multinet/Puma6_plat/handle_sw.c
+index b7020d51..7768fb99 100755
+--- a/source/service_multinet/Puma6_plat/handle_sw.c
++++ b/source/service_multinet/Puma6_plat/handle_sw.c
+@@ -86,6 +86,8 @@ void sw_remove_member(char *from_member, char *to_remove_mem)
+ strncpy(from_member, l_cTemp, (strlen(l_cTemp)+1));
+ }
+
++INT swctl(const int command, const int port, const int vid, const int membertag, const int vlanmode, const int efm, const char *mac, const char *magic){return 0;}
++
+ //handle_moca is a function for configuring MOCA port
+ void handle_moca(int vlan_id, int *tagged, int add)
+ {
diff --git a/recipes-ccsp/util/utopia/0003-remove-autoconf.patch b/recipes-ccsp/util/utopia/0003-remove-autoconf.patch
new file mode 100644
index 0000000..618d0a3
--- /dev/null
+++ b/recipes-ccsp/util/utopia/0003-remove-autoconf.patch
@@ -0,0 +1,5684 @@
+--- a/source/include/autoconf.h 2016-09-03 15:35:05.308965959 +0800
++++ /dev/null 2016-08-29 11:24:05.528000151 +0800
+@@ -1,5681 +0,0 @@
+-/*
+- * If not stated otherwise in this file or this component's Licenses.txt file the
+- * following copyright and licenses apply:
+- *
+- * Copyright 2015 RDK Management
+- *
+- * Licensed under the Apache License, Version 2.0 (the "License");
+- * you may not use this file except in compliance with the License.
+- * You may obtain a copy of the License at
+- *
+- * http://www.apache.org/licenses/LICENSE-2.0
+- *
+- * Unless required by applicable law or agreed to in writing, software
+- * distributed under the License is distributed on an "AS IS" BASIS,
+- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+- * See the License for the specific language governing permissions and
+- * limitations under the License.
+-*/
+-
+-/*
+- *
+- * Automatically generated file; DO NOT EDIT.
+- * Linux/x86_64 3.11.0-20-generic Kernel Configuration
+- *
+- */
+-#define CONFIG_IP6_NF_MATCH_AH_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_861_MODULE 1
+-#define CONFIG_RING_BUFFER 1
+-#define CONFIG_UWB_HWA_MODULE 1
+-#define CONFIG_SND_SOC_WM8804_MODULE 1
+-#define CONFIG_NF_CONNTRACK_H323_MODULE 1
+-#define CONFIG_HAVE_ARCH_SECCOMP_FILTER 1
+-#define CONFIG_IP6_NF_SECURITY_MODULE 1
+-#define CONFIG_SCSI_DMA 1
+-#define CONFIG_TWL6040_CORE 1
+-#define CONFIG_INTEL_IDLE 1
+-#define CONFIG_TCP_MD5SIG 1
+-#define CONFIG_KERNEL_GZIP 1
+-#define CONFIG_MICROCODE_MODULE 1
+-#define CONFIG_ATM_ENI_MODULE 1
+-#define CONFIG_SND_SOC_ML26124_MODULE 1
+-#define CONFIG_TOUCHSCREEN_INEXIO_MODULE 1
+-#define CONFIG_BATMAN_ADV_NC 1
+-#define CONFIG_RTC_DRV_WM831X_MODULE 1
+-#define CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK 1
+-#define CONFIG_TOUCHSCREEN_WM9705 1
+-#define CONFIG_INPUT_KEYBOARD 1
+-#define CONFIG_KPROBE_EVENT 1
+-#define CONFIG_SENSORS_ABITUGURU_MODULE 1
+-#define CONFIG_MEMORY_ISOLATION 1
+-#define CONFIG_SLUB_CPU_PARTIAL 1
+-#define CONFIG_USB_C67X00_HCD_MODULE 1
+-#define CONFIG_RFS_ACCEL 1
+-#define CONFIG_COMEDI_TEST_MODULE 1
+-#define CONFIG_TI_DAC7512_MODULE 1
+-#define CONFIG_IP_NF_TARGET_REDIRECT_MODULE 1
+-#define CONFIG_SERIO_ALTERA_PS2_MODULE 1
+-#define CONFIG_DRM_GMA500_MODULE 1
+-#define CONFIG_CRC32 1
+-#define CONFIG_I2C_BOARDINFO 1
+-#define CONFIG_ATH9K_HTC_DEBUGFS 1
+-#define CONFIG_DMI_SYSFS_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_LTLK_MODULE 1
+-#define CONFIG_NF_NAT_PROTO_SCTP_MODULE 1
+-#define CONFIG_USB_ALI_M5632 1
+-#define CONFIG_GPIO_IT8761E_MODULE 1
+-#define CONFIG_DM_SNAPSHOT_MODULE 1
+-#define CONFIG_TOUCHSCREEN_WM831X_MODULE 1
+-#define CONFIG_MFD_WM831X_I2C 1
+-#define CONFIG_SCSI_DC390T_MODULE 1
+-#define CONFIG_CAIF_MODULE 1
+-#define CONFIG_IR_JVC_DECODER_MODULE 1
+-#define CONFIG_X86_MCE 1
+-#define CONFIG_PCMCIA_QLOGIC_MODULE 1
+-#define CONFIG_USB_CONFIGFS_NCM 1
+-#define CONFIG_DRM_NOUVEAU_MODULE 1
+-#define CONFIG_FSCACHE_MODULE 1
+-#define CONFIG_COMEDI_USBDUX_MODULE 1
+-#define CONFIG_PARPORT_NOT_PC 1
+-#define CONFIG_NETFILTER_XT_MATCH_CPU_MODULE 1
+-#define CONFIG_DVB_ISL6405_MODULE 1
+-#define CONFIG_B43_BCMA_PIO 1
+-#define CONFIG_AD7192_MODULE 1
+-#define CONFIG_SENSORS_MAX1668_MODULE 1
+-#define CONFIG_EXT3_FS_XATTR 1
+-#define CONFIG_GPIO_AMD8111_MODULE 1
+-#define CONFIG_SUNRPC_SWAP 1
+-#define CONFIG_FB_TILEBLITTING 1
+-#define CONFIG_TCM_QLA2XXX_MODULE 1
+-#define CONFIG_IR_MCE_KBD_DECODER_MODULE 1
+-#define CONFIG_IXGBE_DCB 1
+-#define CONFIG_CPU_FREQ_GOV_CONSERVATIVE 1
+-#define CONFIG_SECCOMP 1
+-#define CONFIG_HIGH_RES_TIMERS 1
+-#define CONFIG_PCMCIA_AXNET_MODULE 1
+-#define CONFIG_SPI_TOPCLIFF_PCH_MODULE 1
+-#define CONFIG_COMMON_CLK_WM831X_MODULE 1
+-#define CONFIG_VIDEO_WM8739_MODULE 1
+-#define CONFIG_MFD_CROS_EC_MODULE 1
+-#define CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG 1024
+-#define CONFIG_BLK_DEV_DM 1
+-#define CONFIG_RTC_DRV_88PM80X_MODULE 1
+-#define CONFIG_BLK_DEV_RSXX_MODULE 1
+-#define CONFIG_R3964_MODULE 1
+-#define CONFIG_MTD_NAND_ECC_BCH 1
+-#define CONFIG_USB_SERIAL_HP4X_MODULE 1
+-#define CONFIG_VLAN_8021Q_MODULE 1
+-#define CONFIG_IP_MULTIPLE_TABLES 1
+-#define CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT 1
+-#define CONFIG_VFIO_PCI_VGA 1
+-#define CONFIG_ACPI_BGRT 1
+-#define CONFIG_MTD_NETSC520_MODULE 1
+-#define CONFIG_XEN_DOM0 1
+-#define CONFIG_FIRMWARE_MEMMAP 1
+-#define CONFIG_SSB_SDIOHOST 1
+-#define CONFIG_FIX_EARLYCON_MEM 1
+-#define CONFIG_BT_RFCOMM_MODULE 1
+-#define CONFIG_LEDS_TRIGGER_HEARTBEAT_MODULE 1
+-#define CONFIG_EXT3_DEFAULTS_TO_ORDERED 1
+-#define CONFIG_DEV_APPLETALK_MODULE 1
+-#define CONFIG_OMAP_USB3_MODULE 1
+-#define CONFIG_CHARGER_LP8727_MODULE 1
+-#define CONFIG_SCSI_INITIO_MODULE 1
+-#define CONFIG_DVB_TDA1004X_MODULE 1
+-#define CONFIG_XZ_DEC_IA64 1
+-#define CONFIG_INPUT_RETU_PWRBUTTON_MODULE 1
+-#define CONFIG_JOYSTICK_ADI_MODULE 1
+-#define CONFIG_DVB_BCM3510_MODULE 1
+-#define CONFIG_INOTIFY_USER 1
+-#define CONFIG_I7300_IDLE_MODULE 1
+-#define CONFIG_NF_CONNTRACK_NETBIOS_NS_MODULE 1
+-#define CONFIG_HDMI 1
+-#define CONFIG_SCSI_DH_MODULE 1
+-#define CONFIG_SCSI_LOGGING 1
+-#define CONFIG_FB_CYBER2000_DDC 1
+-#define CONFIG_BRIDGE_EBT_T_FILTER_MODULE 1
+-#define CONFIG_NETWORK_FILESYSTEMS 1
+-#define CONFIG_JOYSTICK_IFORCE_232 1
+-#define CONFIG_KVM_INTEL_MODULE 1
+-#define CONFIG_ASUS_LAPTOP_MODULE 1
+-#define CONFIG_LEDS_OT200_MODULE 1
+-#define CONFIG_CRYPTO_MD4_MODULE 1
+-#define CONFIG_BCMA_HOST_PCI 1
+-#define CONFIG_AD7298_MODULE 1
+-#define CONFIG_SATA_AHCI_PLATFORM_MODULE 1
+-#define CONFIG_USB_SI470X_MODULE 1
+-#define CONFIG_X86_MINIMUM_CPU_FAMILY 64
+-#define CONFIG_AD7923_MODULE 1
+-#define CONFIG_SCSI_BFA_FC_MODULE 1
+-#define CONFIG_CPU_FREQ_GOV_ONDEMAND 1
+-#define CONFIG_AMD_IOMMU_STATS 1
+-#define CONFIG_SENSORS_LM95245_MODULE 1
+-#define CONFIG_USB_GSPCA_JL2005BCD_MODULE 1
+-#define CONFIG_RTC_DRV_MC13XXX_MODULE 1
+-#define CONFIG_AMD_PHY 1
+-#define CONFIG_VIDEO_CX18_ALSA_MODULE 1
+-#define CONFIG_BT_HCIBFUSB_MODULE 1
+-#define CONFIG_CRYSTALHD_MODULE 1
+-#define CONFIG_SND_SOC_CS42L73_MODULE 1
+-#define CONFIG_PLX_HERMES_MODULE 1
+-#define CONFIG_PARAVIRT_SPINLOCKS 1
+-#define CONFIG_CGROUP_DEVICE 1
+-#define CONFIG_WL12XX_MODULE 1
+-#define CONFIG_RADIO_TIMBERDALE_MODULE 1
+-#define CONFIG_X86_TSC 1
+-#define CONFIG_PPP_SYNC_TTY_MODULE 1
+-#define CONFIG_ARCH_SUSPEND_POSSIBLE 1
+-#define CONFIG_MFD_TPS65090 1
+-#define CONFIG_NCPFS_PACKET_SIGNING 1
+-#define CONFIG_DA9055_WATCHDOG_MODULE 1
+-#define CONFIG_COMPAT_NETLINK_MESSAGES 1
+-#define CONFIG_INLINE_WRITE_UNLOCK_IRQ 1
+-#define CONFIG_RC_CORE_MODULE 1
+-#define CONFIG_USB_G_SERIAL_MODULE 1
+-#define CONFIG_SND_SOC_TPA6130A2_MODULE 1
+-#define CONFIG_LEDS_PCA955X_MODULE 1
+-#define CONFIG_NLS_MAC_TURKISH_MODULE 1
+-#define CONFIG_IP_VS_NQ_MODULE 1
+-#define CONFIG_DVB_DRXD_MODULE 1
+-#define CONFIG_SENSORS_LTC4245_MODULE 1
+-#define CONFIG_HID_SPEEDLINK_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_APOLLO_MODULE 1
+-#define CONFIG_HIBERNATION 1
+-#define CONFIG_BLK_DEV_NBD_MODULE 1
+-#define CONFIG_PNPACPI 1
+-#define CONFIG_AD7280_MODULE 1
+-#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1
+-#define CONFIG_JOYSTICK_SPACEORB_MODULE 1
+-#define CONFIG_EDAC_I5400_MODULE 1
+-#define CONFIG_TCP_CONG_HTCP_MODULE 1
+-#define CONFIG_EXT4_FS_POSIX_ACL 1
+-#define CONFIG_SERIAL_RP2_MODULE 1
+-#define CONFIG_SCSI_DEBUG_MODULE 1
+-#define CONFIG_DRM_I915_MODULE 1
+-#define CONFIG_BINFMT_MISC_MODULE 1
+-#define CONFIG_SENSORS_AD7314_MODULE 1
+-#define CONFIG_VME_CA91CX42_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_HELPER_MODULE 1
+-#define CONFIG_SSB_POSSIBLE 1
+-#define CONFIG_NFS_V4_2 1
+-#define CONFIG_BRIDGE_EBT_T_NAT_MODULE 1
+-#define CONFIG_VIDEO_SAA7134_MODULE 1
+-#define CONFIG_NF_NAT_SIP_MODULE 1
+-#define CONFIG_USB_F_EEM_MODULE 1
+-#define CONFIG_SENSORS_W83792D_MODULE 1
+-#define CONFIG_VIDEO_ZORAN_BUZ_MODULE 1
+-#define CONFIG_MMU_NOTIFIER 1
+-#define CONFIG_SYSV68_PARTITION 1
+-#define CONFIG_RADIO_SHARK_MODULE 1
+-#define CONFIG_ASYMMETRIC_KEY_TYPE 1
+-#define CONFIG_NET_9P_RDMA_MODULE 1
+-#define CONFIG_TRANSPARENT_HUGEPAGE_MADVISE 1
+-#define CONFIG_DRM_RADEON_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_STATISTIC_MODULE 1
+-#define CONFIG_COMEDI_NI_PCIMIO_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_1032_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_855_MODULE 1
+-#define CONFIG_MTD_CMDLINE_PARTS_MODULE 1
+-#define CONFIG_ESI_DONGLE_MODULE 1
+-#define CONFIG_SECURITY_YAMA 1
+-#define CONFIG_VIDEO_SAA7127_MODULE 1
+-#define CONFIG_I2C_ISMT_MODULE 1
+-#define CONFIG_UHID_MODULE 1
+-#define CONFIG_NETCONSOLE_DYNAMIC 1
+-#define CONFIG_EDAC_I5100_MODULE 1
+-#define CONFIG_DVB_EC100_MODULE 1
+-#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1
+-#define CONFIG_SIGNATURE 1
+-#define CONFIG_RTC_DRV_PCF50633_MODULE 1
+-#define CONFIG_HDLC_RAW_MODULE 1
+-#define CONFIG_B43LEGACY_LEDS 1
+-#define CONFIG_USB_SERIAL_SAFE_MODULE 1
+-#define CONFIG_KEYBOARD_CROS_EC_MODULE 1
+-#define CONFIG_BRIDGE_NF_EBTABLES_MODULE 1
+-#define CONFIG_MTD_LATCH_ADDR_MODULE 1
+-#define CONFIG_PATA_ARASAN_CF_MODULE 1
+-#define CONFIG_DVB_LG2160_MODULE 1
+-#define CONFIG_MTD_AMD76XROM_MODULE 1
+-#define CONFIG_USB_OHCI_LITTLE_ENDIAN 1
+-#define CONFIG_NET_SCH_FIFO 1
+-#define CONFIG_REISERFS_FS_MODULE 1
+-#define CONFIG_SATA_NV_MODULE 1
+-#define CONFIG_FSNOTIFY 1
+-#define CONFIG_CRYPTO_RMD128_MODULE 1
+-#define CONFIG_LEDS_MAX8997_MODULE 1
+-#define CONFIG_BLK_DEV_LOOP_MIN_COUNT 8
+-#define CONFIG_STP_MODULE 1
+-#define CONFIG_USB_GSPCA_SQ905_MODULE 1
+-#define CONFIG_MFD_TPS65910 1
+-#define CONFIG_DVB_AU8522_MODULE 1
+-#define CONFIG_INET6_TUNNEL_MODULE 1
+-#define CONFIG_REGULATOR_MAX8925_MODULE 1
+-#define CONFIG_VIA_FIR_MODULE 1
+-#define CONFIG_SCSI_DC395x_MODULE 1
+-#define CONFIG_DVB_M88RS2000_MODULE 1
+-#define CONFIG_NF_CONNTRACK_SIP_MODULE 1
+-#define CONFIG_STACK_TRACER 1
+-#define CONFIG_MEDIA_ATTACH 1
+-#define CONFIG_SND_NM256_MODULE 1
+-#define CONFIG_CRYPTO_MANAGER_DISABLE_TESTS 1
+-#define CONFIG_HIDRAW 1
+-#define CONFIG_NET_SCH_FQ_CODEL_MODULE 1
+-#define CONFIG_WIL6210_ISR_COR 1
+-#define CONFIG_SENSORS_ADM1025_MODULE 1
+-#define CONFIG_KSDAZZLE_DONGLE_MODULE 1
+-#define CONFIG_HAVE_KERNEL_LZMA 1
+-#define CONFIG_HID_PRODIKEYS_MODULE 1
+-#define CONFIG_I2O_PROC_MODULE 1
+-#define CONFIG_RT2X00_LIB_LEDS 1
+-#define CONFIG_UNIX_DIAG_MODULE 1
+-#define CONFIG_VCNL4000_MODULE 1
+-#define CONFIG_IP_VS_SED_MODULE 1
+-#define CONFIG_GENERIC_SMP_IDLE_THREAD 1
+-#define CONFIG_MOUSE_CYAPA_MODULE 1
+-#define CONFIG_DVB_DS3000_MODULE 1
+-#define CONFIG_FB_S1D13XXX_MODULE 1
+-#define CONFIG_MTD_SST25L_MODULE 1
+-#define CONFIG_ARCH_SUPPORTS_NUMA_BALANCING 1
+-#define CONFIG_REGULATOR_LP3971_MODULE 1
+-#define CONFIG_DM_FLAKEY_MODULE 1
+-#define CONFIG_VME_USER_MODULE 1
+-#define CONFIG_PATA_OPTIDMA_MODULE 1
+-#define CONFIG_DYNAMIC_DEBUG 1
+-#define CONFIG_MEDIA_PARPORT_SUPPORT 1
+-#define CONFIG_MACVTAP_MODULE 1
+-#define CONFIG_LEDS_REGULATOR_MODULE 1
+-#define CONFIG_CHELSIO_T4VF_MODULE 1
+-#define CONFIG_HAVE_MEMORY_PRESENT 1
+-#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1
+-#define CONFIG_BRIDGE_EBT_REDIRECT_MODULE 1
+-#define CONFIG_XEN_COMPAT_XENFS 1
+-#define CONFIG_COMEDI_NI_TIOCMD_MODULE 1
+-#define CONFIG_MEDIA_DIGITAL_TV_SUPPORT 1
+-#define CONFIG_8139CP_MODULE 1
+-#define CONFIG_SERIAL_8250_RSA 1
+-#define CONFIG_FIB_RULES 1
+-#define CONFIG_HID_ACRUX_FF 1
+-#define CONFIG_CRYPTO_CRCT10DIF 1
+-#define CONFIG_W1_SLAVE_DS2408_MODULE 1
+-#define CONFIG_USB_CONFIGFS_OBEX 1
+-#define CONFIG_DVB_FIREDTV_INPUT 1
+-#define CONFIG_SND_ES1968_INPUT 1
+-#define CONFIG_IP_VS_NFCT 1
+-#define CONFIG_RT_GROUP_SCHED 1
+-#define CONFIG_HID_EMS_FF_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_16XX_MODULE 1
+-#define CONFIG_VLAN_8021Q_GVRP 1
+-#define CONFIG_IWLWIFI_DEBUGFS 1
+-#define CONFIG_IP_SET_HASH_NETIFACE_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_DECPC_MODULE 1
+-#define CONFIG_IP6_NF_MANGLE_MODULE 1
+-#define CONFIG_NET_DSA_TAG_DSA 1
+-#define CONFIG_MTD_PLATRAM_MODULE 1
+-#define CONFIG_SCSI_CONSTANTS 1
+-#define CONFIG_HAVE_IRQ_TIME_ACCOUNTING 1
+-#define CONFIG_CFAG12864B_MODULE 1
+-#define CONFIG_BT_MRVL_SDIO_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_REALM_MODULE 1
+-#define CONFIG_BT_HCIBPA10X_MODULE 1
+-#define CONFIG_MEGARAID_NEWGEN 1
+-#define CONFIG_INTEL_TXT 1
+-#define CONFIG_MFD_CROS_EC_SPI_MODULE 1
+-#define CONFIG_SQUASHFS_XATTR 1
+-#define CONFIG_IP_VS_RR_MODULE 1
+-#define CONFIG_IPV6 1
+-#define CONFIG_USB_SERIAL_QUALCOMM_MODULE 1
+-#define CONFIG_NET_9P_MODULE 1
+-#define CONFIG_REGULATOR_TPS62360_MODULE 1
+-#define CONFIG_CRYPTO_AEAD_MODULE 1
+-#define CONFIG_USB_GADGET_TARGET_MODULE 1
+-#define CONFIG_FB_HECUBA_MODULE 1
+-#define CONFIG_AUDIT_ARCH 1
+-#define CONFIG_SND_SOC_WM8995_MODULE 1
+-#define CONFIG_COMPAT 1
+-#define CONFIG_BQL 1
+-#define CONFIG_ADJD_S311_MODULE 1
+-#define CONFIG_INPUT_MOUSEDEV_PSAUX 1
+-#define CONFIG_HAVE_KERNEL_BZIP2 1
+-#define CONFIG_COMEDI_ADDI_APCI_3501_MODULE 1
+-#define CONFIG_DEFAULT_TCP_CONG "cubic"
+-#define CONFIG_MCP4725_MODULE 1
+-#define CONFIG_UEVENT_HELPER_PATH ""
+-#define CONFIG_NTB_NETDEV_MODULE 1
+-#define CONFIG_DEVTMPFS 1
+-#define CONFIG_NET_CLS_FLOW_MODULE 1
+-#define CONFIG_PROCESSOR_SELECT 1
+-#define CONFIG_SENSORS_MAX8688_MODULE 1
+-#define CONFIG_SENSORS_PC87427_MODULE 1
+-#define CONFIG_SM_FTL_MODULE 1
+-#define CONFIG_PNFS_FILE_LAYOUT_MODULE 1
+-#define CONFIG_NET_IPVTI_MODULE 1
+-#define CONFIG_I82092_MODULE 1
+-#define CONFIG_SCSI_PMCRAID_MODULE 1
+-#define CONFIG_DVB_ISL6423_MODULE 1
+-#define CONFIG_FB_S3_DDC 1
+-#define CONFIG_PATA_SC1200_MODULE 1
+-#define CONFIG_USB_STORAGE_USBAT_MODULE 1
+-#define CONFIG_REISERFS_FS_POSIX_ACL 1
+-#define CONFIG_INFINIBAND_USER_MEM 1
+-#define CONFIG_SND_SOC_DA9055_MODULE 1
+-#define CONFIG_GPIO_MAX7301_MODULE 1
+-#define CONFIG_INPUT_88PM80X_ONKEY_MODULE 1
+-#define CONFIG_APPLE_GMUX_MODULE 1
+-#define CONFIG_NF_NAT_PROTO_GRE_MODULE 1
+-#define CONFIG_YENTA_RICOH 1
+-#define CONFIG_SUNRPC_BACKCHANNEL 1
+-#define CONFIG_NLS_ISO8859_7_MODULE 1
+-#define CONFIG_CRYPTO_PCBC_MODULE 1
+-#define CONFIG_IP6_NF_TARGET_REJECT_MODULE 1
+-#define CONFIG_UPROBES 1
+-#define CONFIG_SND_HDA_INPUT_JACK 1
+-#define CONFIG_HISAX_FRITZPCI 1
+-#define CONFIG_HID_APPLEIR_MODULE 1
+-#define CONFIG_ASYNC_MEMCPY_MODULE 1
+-#define CONFIG_RTC_DRV_MAX8998_MODULE 1
+-#define CONFIG_PCH_PHUB_MODULE 1
+-#define CONFIG_ADIS16480_MODULE 1
+-#define CONFIG_X86_POWERNOW_K8 1
+-#define CONFIG_ARCH_SPARSEMEM_ENABLE 1
+-#define CONFIG_SND_SOC_MAX98095_MODULE 1
+-#define CONFIG_V4L_TEST_DRIVERS 1
+-#define CONFIG_SC1200_WDT_MODULE 1
+-#define CONFIG_DCDBAS_MODULE 1
+-#define CONFIG_RTC_DRV_DS1305_MODULE 1
+-#define CONFIG_CAIF_SPI_SLAVE_MODULE 1
+-#define CONFIG_IR_NEC_DECODER_MODULE 1
+-#define CONFIG_HOTPLUG_CPU 1
+-#define CONFIG_USB_SERIAL_MOS7840_MODULE 1
+-#define CONFIG_NLS_MAC_CYRILLIC_MODULE 1
+-#define CONFIG_USB_SL811_HCD_ISO 1
+-#define CONFIG_PM_SLEEP_DEBUG 1
+-#define CONFIG_VIDEO_BWQCAM_MODULE 1
+-#define CONFIG_SND_MAESTRO3_INPUT 1
+-#define CONFIG_MEDIA_PCI_SUPPORT 1
+-#define CONFIG_WLAN 1
+-#define CONFIG_AFFS_FS_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_1516_MODULE 1
+-#define CONFIG_ATM_FIRESTREAM_MODULE 1
+-#define CONFIG_NAMESPACES 1
+-#define CONFIG_W1_SLAVE_DS2423_MODULE 1
+-#define CONFIG_L2TP_DEBUGFS_MODULE 1
+-#define CONFIG_HAVE_CMPXCHG_DOUBLE 1
+-#define CONFIG_NSC_FIR_MODULE 1
+-#define CONFIG_USB_NET_INT51X1_MODULE 1
+-#define CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION_MODULE 1
+-#define CONFIG_DEFAULT_MESSAGE_LOGLEVEL 4
+-#define CONFIG_KGDB_SERIAL_CONSOLE 1
+-#define CONFIG_PATA_ATP867X_MODULE 1
+-#define CONFIG_SFI 1
+-#define CONFIG_DW_DMAC_PCI_MODULE 1
+-#define CONFIG_IA32_EMULATION 1
+-#define CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1
+-#define CONFIG_USB_CONFIGFS_MODULE 1
+-#define CONFIG_COMEDI_CONTEC_PCI_DIO_MODULE 1
+-#define CONFIG_BLK_DEV_BSG 1
+-#define CONFIG_LEDS_WM8350_MODULE 1
+-#define CONFIG_ENIC_MODULE 1
+-#define CONFIG_SCSI_ISCI_MODULE 1
+-#define CONFIG_SENSORS_MAX6697_MODULE 1
+-#define CONFIG_PATA_SERVERWORKS_MODULE 1
+-#define CONFIG_CONNECTOR 1
+-#define CONFIG_MEDIA_USB_SUPPORT 1
+-#define CONFIG_NETFILTER_XT_TARGET_RATEEST_MODULE 1
+-#define CONFIG_PCIEAER 1
+-#define CONFIG_EPIC100_MODULE 1
+-#define CONFIG_SCTP_COOKIE_HMAC_SHA1 1
+-#define CONFIG_BRIDGE_EBT_ARPREPLY_MODULE 1
+-#define CONFIG_BACKLIGHT_APPLE_MODULE 1
+-#define CONFIG_B43LEGACY_DMA_AND_PIO_MODE 1
+-#define CONFIG_MEM_SOFT_DIRTY 1
+-#define CONFIG_PARIDE_MODULE 1
+-#define CONFIG_INTEGRITY 1
+-#define CONFIG_DVB_MAX_ADAPTERS 8
+-#define CONFIG_SENSORS_SIS5595_MODULE 1
+-#define CONFIG_CW1200_WLAN_SDIO_MODULE 1
+-#define CONFIG_DM_MULTIPATH_QL_MODULE 1
+-#define CONFIG_LEGACY_PTYS 1
+-#define CONFIG_LIBERTAS_USB_MODULE 1
+-#define CONFIG_JFS_FS_MODULE 1
+-#define CONFIG_CAN_EMS_USB_MODULE 1
+-#define CONFIG_XFRM_IPCOMP_MODULE 1
+-#define CONFIG_CRYPTO_RNG2 1
+-#define CONFIG_UIO_CIF_MODULE 1
+-#define CONFIG_USB_PWC_INPUT_EVDEV 1
+-#define CONFIG_FUSION_FC_MODULE 1
+-#define CONFIG_NETFILTER_NETLINK_QUEUE_MODULE 1
+-#define CONFIG_NET_ACT_CSUM_MODULE 1
+-#define CONFIG_RTLLIB_CRYPTO_CCMP_MODULE 1
+-#define CONFIG_CEPH_LIB_USE_DNS_RESOLVER 1
+-#define CONFIG_RTC_DRV_AB3100_MODULE 1
+-#define CONFIG_SND_SOC_AD193X_MODULE 1
+-#define CONFIG_SCSI_MPT3SAS_MODULE 1
+-#define CONFIG_NFTL_RW 1
+-#define CONFIG_MFD_MC13XXX_MODULE 1
+-#define CONFIG_MSDOS_FS_MODULE 1
+-#define CONFIG_SENSORS_ISL29028_MODULE 1
+-#define CONFIG_USB_U_SERIAL_MODULE 1
+-#define CONFIG_FB_VGA16_MODULE 1
+-#define CONFIG_SCSI_FLASHPOINT 1
+-#define CONFIG_NET_CLS_CGROUP_MODULE 1
+-#define CONFIG_XEN_MAX_DOMAIN_MEMORY 500
+-#define CONFIG_TUN 1
+-#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1
+-#define CONFIG_ISDN_AUDIO 1
+-#define CONFIG_ATM_IDT77252_MODULE 1
+-#define CONFIG_DVB_AU8522_V4L_MODULE 1
+-#define CONFIG_AD9832_MODULE 1
+-#define CONFIG_IIO_KFIFO_BUF_MODULE 1
+-#define CONFIG_ENCLOSURE_SERVICES_MODULE 1
+-#define CONFIG_IPV6_PIMSM_V2 1
+-#define CONFIG_SENSORS_ADS1015_MODULE 1
+-#define CONFIG_WIZNET_BUS_ANY 1
+-#define CONFIG_BNX2_MODULE 1
+-#define CONFIG_CAN_MODULE 1
+-#define CONFIG_SND_VX222_MODULE 1
+-#define CONFIG_CFG80211_MODULE 1
+-#define CONFIG_SSB_BLOCKIO 1
+-#define CONFIG_MTD_BLOCK_RO_MODULE 1
+-#define CONFIG_EQUALIZER_MODULE 1
+-#define CONFIG_COMEDI_JR3_PCI_MODULE 1
+-#define CONFIG_SND_AU8810_MODULE 1
+-#define CONFIG_GPIO_LYNXPOINT 1
+-#define CONFIG_NLS_CODEPAGE_1250_MODULE 1
+-#define CONFIG_COMEDI_NI_6527_MODULE 1
+-#define CONFIG_CED1401_MODULE 1
+-#define CONFIG_DM_CRYPT_MODULE 1
+-#define CONFIG_REED_SOLOMON_ENC8 1
+-#define CONFIG_SERIAL_8250 1
+-#define CONFIG_RTC_DRV_ISL12022_MODULE 1
+-#define CONFIG_NET_TCPPROBE_MODULE 1
+-#define CONFIG_NCP_FS_MODULE 1
+-#define CONFIG_XEN_GNTDEV_MODULE 1
+-#define CONFIG_XZ_DEC_TEST_MODULE 1
+-#define CONFIG_SENSORS_W83793_MODULE 1
+-#define CONFIG_B43LEGACY_PIO 1
+-#define CONFIG_LZO_DECOMPRESS 1
+-#define CONFIG_USB_EHCI_ROOT_HUB_TT 1
+-#define CONFIG_LIBERTAS_THINFIRM_MODULE 1
+-#define CONFIG_IP_VS_PROTO_AH 1
+-#define CONFIG_EXOFS_FS_MODULE 1
+-#define CONFIG_IOMMU_SUPPORT 1
+-#define CONFIG_SAMSUNG_USB3PHY_MODULE 1
+-#define CONFIG_HID_BELKIN_MODULE 1
+-#define CONFIG_VIDEO_IR_I2C_MODULE 1
+-#define CONFIG_ROMFS_BACKED_BY_BLOCK 1
+-#define CONFIG_VFIO_IOMMU_TYPE1_MODULE 1
+-#define CONFIG_DVB_STV0367_MODULE 1
+-#define CONFIG_STMMAC_PLATFORM 1
+-#define CONFIG_LEDS_TRIGGER_CAMERA_MODULE 1
+-#define CONFIG_ISDN_TTY_FAX 1
+-#define CONFIG_TIPC_PORTS 8191
+-#define CONFIG_NLS_CODEPAGE_862_MODULE 1
+-#define CONFIG_NFSD_MODULE 1
+-#define CONFIG_ISDN_DRV_AVMB1_C4_MODULE 1
+-#define CONFIG_SENSORS_TSL2550_MODULE 1
+-#define CONFIG_ITG3200_MODULE 1
+-#define CONFIG_COMPAT_BINFMT_ELF 1
+-#define CONFIG_VFIO_PCI_MODULE 1
+-#define CONFIG_VIDEO_IVTV_ALSA_MODULE 1
+-#define CONFIG_PATA_MPIIX_MODULE 1
+-#define CONFIG_USB_SERIAL_OPTION_MODULE 1
+-#define CONFIG_HID_ACRUX_MODULE 1
+-#define CONFIG_RD_LZMA 1
+-#define CONFIG_USB_GSPCA_SE401_MODULE 1
+-#define CONFIG_CRYPTO_SALSA20_MODULE 1
+-#define CONFIG_USB 1
+-#define CONFIG_PATA_SIL680_MODULE 1
+-#define CONFIG_ACPI_IPMI_MODULE 1
+-#define CONFIG_SND_SOC_DA7210_MODULE 1
+-#define CONFIG_CHARGER_MAX8998_MODULE 1
+-#define CONFIG_MMC_SDHCI_PCI_MODULE 1
+-#define CONFIG_USB_SPEEDTOUCH_MODULE 1
+-#define CONFIG_I2C_XILINX_MODULE 1
+-#define CONFIG_SND_SOC_TLV320DAC33_MODULE 1
+-#define CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK 1
+-#define CONFIG_REGULATOR_88PM8607 1
+-#define CONFIG_ALIM7101_WDT_MODULE 1
+-#define CONFIG_ACPI_PCI_SLOT 1
+-#define CONFIG_MODULES_USE_ELF_RELA 1
+-#define CONFIG_AD5686_MODULE 1
+-#define CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT 1
+-#define CONFIG_BTREE 1
+-#define CONFIG_CRYPTO_HMAC 1
+-#define CONFIG_INPUT_ADXL34X_SPI_MODULE 1
+-#define CONFIG_ETHERNET 1
+-#define CONFIG_SND_SOC_WM8900_MODULE 1
+-#define CONFIG_PATA_CMD640_PCI_MODULE 1
+-#define CONFIG_NET_SCH_CODEL_MODULE 1
+-#define CONFIG_JFFS2_LZO 1
+-#define CONFIG_INPUT_BMA150_MODULE 1
+-#define CONFIG_USB_GSPCA_JEILINJ_MODULE 1
+-#define CONFIG_SCHED_OMIT_FRAME_POINTER 1
+-#define CONFIG_RETU_WATCHDOG_MODULE 1
+-#define CONFIG_BRANCH_PROFILE_NONE 1
+-#define CONFIG_SCSI_SCAN_ASYNC 1
+-#define CONFIG_SPI_DW_MMIO_MODULE 1
+-#define CONFIG_CRC_ITU_T_MODULE 1
+-#define CONFIG_SND_HRTIMER_MODULE 1
+-#define CONFIG_ALI_FIR_MODULE 1
+-#define CONFIG_DQL 1
+-#define CONFIG_RAPIDIO_DISC_TIMEOUT 30
+-#define CONFIG_VXLAN_MODULE 1
+-#define CONFIG_PARPORT_PC_PCMCIA_MODULE 1
+-#define CONFIG_FRAMEBUFFER_CONSOLE 1
+-#define CONFIG_NET_DCCPPROBE_MODULE 1
+-#define CONFIG_DM_ZERO_MODULE 1
+-#define CONFIG_DVB_DIB8000_MODULE 1
+-#define CONFIG_X86_SUPPORTS_MEMORY_FAILURE 1
+-#define CONFIG_SBC8360_WDT_MODULE 1
+-#define CONFIG_SND_SEQUENCER_MODULE 1
+-#define CONFIG_TCP_CONG_LP_MODULE 1
+-#define CONFIG_INPUT_GP2A_MODULE 1
+-#define CONFIG_AD5064_MODULE 1
+-#define CONFIG_GAMEPORT_EMU10K1_MODULE 1
+-#define CONFIG_WL1251_SPI_MODULE 1
+-#define CONFIG_COREDUMP 1
+-#define CONFIG_AD9951_MODULE 1
+-#define CONFIG_USB_NET_GL620A_MODULE 1
+-#define CONFIG_MICREL_KS8995MA_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_1500_MODULE 1
+-#define CONFIG_GPIO_74X164_MODULE 1
+-#define CONFIG_MOVABLE_NODE 1
+-#define CONFIG_SND_OPL3_LIB_MODULE 1
+-#define CONFIG_IP_NF_ARPTABLES_MODULE 1
+-#define CONFIG_DVB_USB_GP8PSK_MODULE 1
+-#define CONFIG_USB_SERIAL_GENERIC 1
+-#define CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4_MODULE 1
+-#define CONFIG_HID_CHERRY_MODULE 1
+-#define CONFIG_XEN_PRIVILEGED_GUEST 1
+-#define CONFIG_PC87413_WDT_MODULE 1
+-#define CONFIG_JFFS2_COMPRESSION_OPTIONS 1
+-#define CONFIG_BATTERY_MAX17040_MODULE 1
+-#define CONFIG_ACPI_QUICKSTART_MODULE 1
+-#define CONFIG_MKISS_MODULE 1
+-#define CONFIG_USE_PERCPU_NUMA_NODE_ID 1
+-#define CONFIG_HID_SUNPLUS_MODULE 1
+-#define CONFIG_INPUT_ADXL34X_MODULE 1
+-#define CONFIG_KSZ884X_PCI_MODULE 1
+-#define CONFIG_HID_PICOLCD_MODULE 1
+-#define CONFIG_BCMA_POSSIBLE 1
+-#define CONFIG_USB_CONFIGFS_RNDIS 1
+-#define CONFIG_NET_SCH_SFB_MODULE 1
+-#define CONFIG_LEDS_LP5521_MODULE 1
+-#define CONFIG_FUSION_CTL_MODULE 1
+-#define CONFIG_TULIP_MODULE 1
+-#define CONFIG_AF_RXRPC_MODULE 1
+-#define CONFIG_CIFS_ACL 1
+-#define CONFIG_ZRAM_MODULE 1
+-#define CONFIG_XEN_SELFBALLOONING 1
+-#define CONFIG_CRYPTO_CAST5_MODULE 1
+-#define CONFIG_VGA_ARB 1
+-#define CONFIG_SENSORS_CORETEMP_MODULE 1
+-#define CONFIG_PARIDE_FIT2_MODULE 1
+-#define CONFIG_FB_CARMINE_DRAM_EVAL 1
+-#define CONFIG_FB_NVIDIA_BACKLIGHT 1
+-#define CONFIG_SND_SOC_MODULE 1
+-#define CONFIG_WL_TI 1
+-#define CONFIG_NET_DSA_MV88E6060_MODULE 1
+-#define CONFIG_REGULATOR_TPS51632_MODULE 1
+-#define CONFIG_FIREWIRE_SBP2_MODULE 1
+-#define CONFIG_MFD_MAX77693 1
+-#define CONFIG_SECURITY_TOMOYO_POLICY_LOADER "/sbin/tomoyo-init"
+-#define CONFIG_NET_IPGRE_DEMUX_MODULE 1
+-#define CONFIG_MEDIA_TUNER_XC5000_MODULE 1
+-#define CONFIG_NET_POLL_CONTROLLER 1
+-#define CONFIG_PRINTK 1
+-#define CONFIG_NCPFS_EXTRAS 1
+-#define CONFIG_SPEAKUP_SYNTH_BNS_MODULE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1
+-#define CONFIG_SFC_MODULE 1
+-#define CONFIG_PHANTOM_MODULE 1
+-#define CONFIG_HTC_I2CPLD 1
+-#define CONFIG_FORCEDETH_MODULE 1
+-#define CONFIG_COMEDI_DAS08_CS_MODULE 1
+-#define CONFIG_FB_SYS_FILLRECT_MODULE 1
+-#define CONFIG_TIMERFD 1
+-#define CONFIG_HID_THRUSTMASTER_MODULE 1
+-#define CONFIG_USB_DYNAMIC_MINORS 1
+-#define CONFIG_SENSORS_MAX16065_MODULE 1
+-#define CONFIG_TOUCHSCREEN_CYTTSP_I2C_MODULE 1
+-#define CONFIG_SENSORS_I5K_AMB_MODULE 1
+-#define CONFIG_DNS_RESOLVER 1
+-#define CONFIG_ITCO_VENDOR_SUPPORT 1
+-#define CONFIG_TRACEPOINTS 1
+-#define CONFIG_B43_PHY_LP 1
+-#define CONFIG_MTD_CFI_I2 1
+-#define CONFIG_CRYPTO_AUTHENC_MODULE 1
+-#define CONFIG_AT803X_PHY 1
+-#define CONFIG_DVB_SP8870_MODULE 1
+-#define CONFIG_I6300ESB_WDT_MODULE 1
+-#define CONFIG_GPIO_ML_IOH_MODULE 1
+-#define CONFIG_YENTA_MODULE 1
+-#define CONFIG_USB_GPIO_VBUS_MODULE 1
+-#define CONFIG_W1_MASTER_DS2482_MODULE 1
+-#define CONFIG_COMEDI_SERIAL2002_MODULE 1
+-#define CONFIG_JOYSTICK_SIDEWINDER_MODULE 1
+-#define CONFIG_NET_EMATCH_STACK 32
+-#define CONFIG_CARL9170_LEDS 1
+-#define CONFIG_ATL1E_MODULE 1
+-#define CONFIG_AD9910_MODULE 1
+-#define CONFIG_USB_STORAGE_ENE_UB6250_MODULE 1
+-#define CONFIG_DVB_DDBRIDGE_MODULE 1
+-#define CONFIG_NLS_MAC_CENTEURO_MODULE 1
+-#define CONFIG_BRCMFMAC_SDIO 1
+-#define CONFIG_IRDA_MODULE 1
+-#define CONFIG_BOUNCE 1
+-#define CONFIG_LEDS_DA903X_MODULE 1
+-#define CONFIG_RDS_RDMA_MODULE 1
+-#define CONFIG_SND_SOC_WM8350_MODULE 1
+-#define CONFIG_NUMA_BALANCING 1
+-#define CONFIG_THINKPAD_ACPI_MODULE 1
+-#define CONFIG_P54_COMMON_MODULE 1
+-#define CONFIG_SECURITY_APPARMOR_HASH 1
+-#define CONFIG_SHMEM 1
+-#define CONFIG_ISDN_PPP 1
+-#define CONFIG_MTD_MODULE 1
+-#define CONFIG_MIGRATION 1
+-#define CONFIG_FB_TMIO_ACCELL 1
+-#define CONFIG_HAVE_ARCH_JUMP_LABEL 1
+-#define CONFIG_LEDS_PCA9532_GPIO 1
+-#define CONFIG_VIDEO_BTCX_MODULE 1
+-#define CONFIG_MMC_BLOCK_MINORS 8
+-#define CONFIG_USB_HSO_MODULE 1
+-#define CONFIG_HID_PRIMAX_MODULE 1
+-#define CONFIG_DECOMPRESS_LZMA 1
+-#define CONFIG_PCI_IOV 1
+-#define CONFIG_SENSORS_IIO_HWMON_MODULE 1
+-#define CONFIG_HAVE_KVM_EVENTFD 1
+-#define CONFIG_SND_SOC_WM8776_MODULE 1
+-#define CONFIG_GPIO_VIPERBOARD_MODULE 1
+-#define CONFIG_DEVTMPFS_MOUNT 1
+-#define CONFIG_SND_HDA_DSP_LOADER 1
+-#define CONFIG_SENSORS_AMC6821_MODULE 1
+-#define CONFIG_MFD_SI476X_CORE_MODULE 1
+-#define CONFIG_USB_IPHETH_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TI_AM335X_TSC_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_850_MODULE 1
+-#define CONFIG_SBE_PMCC4_NCOMM 1
+-#define CONFIG_DVB_CX22700_MODULE 1
+-#define CONFIG_DNOTIFY 1
+-#define CONFIG_CRYPTO_CTS_MODULE 1
+-#define CONFIG_KEYBOARD_LM8333_MODULE 1
+-#define CONFIG_SND_SOC_WM5102_MODULE 1
+-#define CONFIG_HISAX_TELES_CS_MODULE 1
+-#define CONFIG_EDD 1
+-#define CONFIG_DVB_USB_UMT_010_MODULE 1
+-#define CONFIG_SUNGEM_PHY_MODULE 1
+-#define CONFIG_JOYSTICK_DB9_MODULE 1
+-#define CONFIG_RTC_DRV_R9701_MODULE 1
+-#define CONFIG_SCSI_UFSHCD_MODULE 1
+-#define CONFIG_INPUT_MOUSEDEV 1
+-#define CONFIG_GENERIC_NET_UTILS 1
+-#define CONFIG_FB_RADEON_BACKLIGHT 1
+-#define CONFIG_LIBERTAS_CS_MODULE 1
+-#define CONFIG_USB_ISP1362_HCD_MODULE 1
+-#define CONFIG_REGULATOR_MC13XXX_CORE_MODULE 1
+-#define CONFIG_INPUT_WM831X_ON_MODULE 1
+-#define CONFIG_ATA 1
+-#define CONFIG_KEYBOARD_SUNKBD_MODULE 1
+-#define CONFIG_RTC_DRV_PALMAS_MODULE 1
+-#define CONFIG_GPIO_MAX730X_MODULE 1
+-#define CONFIG_MFD_WM8994 1
+-#define CONFIG_PCMCIA_3C589_MODULE 1
+-#define CONFIG_CRYPTO_DES_MODULE 1
+-#define CONFIG_TOUCHSCREEN_WM9712 1
+-#define CONFIG_CEPH_LIB_MODULE 1
+-#define CONFIG_MM_OWNER 1
+-#define CONFIG_REMOTEPROC_MODULE 1
+-#define CONFIG_HISAX_ELSA_CS_MODULE 1
+-#define CONFIG_XEN_MCE_LOG 1
+-#define CONFIG_NLS_CODEPAGE_437 1
+-#define CONFIG_HAVE_ARCH_SOFT_DIRTY 1
+-#define CONFIG_MTD_NAND_IDS_MODULE 1
+-#define CONFIG_GPIO_TC3589X 1
+-#define CONFIG_BACKLIGHT_DA9052_MODULE 1
+-#define CONFIG_NATSEMI_MODULE 1
+-#define CONFIG_MCS_FIR_MODULE 1
+-#define CONFIG_ARCH_PROC_KCORE_TEXT 1
+-#define CONFIG_NET_CLS_U32_MODULE 1
+-#define CONFIG_MISDN_MODULE 1
+-#define CONFIG_EXPORTFS 1
+-#define CONFIG_MTD_UBI_WL_THRESHOLD 4096
+-#define CONFIG_RTC_DRV_MAX8907_MODULE 1
+-#define CONFIG_AD525X_DPOT_I2C_MODULE 1
+-#define CONFIG_MMC_RICOH_MMC 1
+-#define CONFIG_HID_SENSOR_HUB_MODULE 1
+-#define CONFIG_TOUCHSCREEN_PENMOUNT_MODULE 1
+-#define CONFIG_IP6_NF_MATCH_MH_MODULE 1
+-#define CONFIG_SND_AT73C213_TARGET_BITRATE 48000
+-#define CONFIG_SCSI_OSD_INITIATOR_MODULE 1
+-#define CONFIG_VIDEO_ZORAN_DC30_MODULE 1
+-#define CONFIG_DVB_S921_MODULE 1
+-#define CONFIG_SCSI_OSD_DPRINT_SENSE 1
+-#define CONFIG_MSI_WMI_MODULE 1
+-#define CONFIG_IT87_WDT_MODULE 1
+-#define CONFIG_LRU_CACHE_MODULE 1
+-#define CONFIG_SCSI_CXGB3_ISCSI_MODULE 1
+-#define CONFIG_REGULATOR_LP3972_MODULE 1
+-#define CONFIG_SND_DARLA24_MODULE 1
+-#define CONFIG_SENSORS_MAX1619_MODULE 1
+-#define CONFIG_IPW2200_MONITOR 1
+-#define CONFIG_DVB_AF9013_MODULE 1
+-#define CONFIG_PCMCIA_SYM53C500_MODULE 1
+-#define CONFIG_OLD_SIGSUSPEND3 1
+-#define CONFIG_SERIO 1
+-#define CONFIG_DVB_USB_DTV5100_MODULE 1
+-#define CONFIG_SCHEDSTATS 1
+-#define CONFIG_IBMASR_MODULE 1
+-#define CONFIG_INPUT_MOUSE 1
+-#define CONFIG_RTLWIFI_PCI_MODULE 1
+-#define CONFIG_INFINIBAND_ISER_MODULE 1
+-#define CONFIG_FB_SYS_IMAGEBLIT_MODULE 1
+-#define CONFIG_VIDEO_TVEEPROM_MODULE 1
+-#define CONFIG_X86 1
+-#define CONFIG_PPS_CLIENT_PARPORT_MODULE 1
+-#define CONFIG_DEFXX_MODULE 1
+-#define CONFIG_SUNRPC_GSS_MODULE 1
+-#define CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS 1
+-#define CONFIG_MICROCODE_INTEL_LIB 1
+-#define CONFIG_TYPHOON_MODULE 1
+-#define CONFIG_TIGON3_MODULE 1
+-#define CONFIG_MA600_DONGLE_MODULE 1
+-#define CONFIG_COMEDI_SSV_DNP_MODULE 1
+-#define CONFIG_CRYPTO_CAST5_AVX_X86_64_MODULE 1
+-#define CONFIG_SENSORS_LM90_MODULE 1
+-#define CONFIG_NETCONSOLE_MODULE 1
+-#define CONFIG_RTC_INTF_SYSFS 1
+-#define CONFIG_MMC_SDHCI_ACPI_MODULE 1
+-#define CONFIG_BCMA_DRIVER_GPIO 1
+-#define CONFIG_SND_SOC_SPDIF_MODULE 1
+-#define CONFIG_RTC_DRV_RS5C372_MODULE 1
+-#define CONFIG_LEDS_ATMEL_PWM_MODULE 1
+-#define CONFIG_NET_EMATCH_U32_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TOUCHWIN_MODULE 1
+-#define CONFIG_CPU_FREQ_GOV_COMMON 1
+-#define CONFIG_BLK_DEV_INITRD 1
+-#define CONFIG_USB_EMI62_MODULE 1
+-#define CONFIG_B43_PHY_N 1
+-#define CONFIG_SCSI_IPS_MODULE 1
+-#define CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE 1
+-#define CONFIG_X86_MCE_AMD 1
+-#define CONFIG_DM_BUFIO 1
+-#define CONFIG_I2C_ALGOPCA_MODULE 1
+-#define CONFIG_BT_ATH3K_MODULE 1
+-#define CONFIG_LEDS_TRIGGER_TIMER_MODULE 1
+-#define CONFIG_RTC_DRV_M48T59_MODULE 1
+-#define CONFIG_SND_SOC_WM8510_MODULE 1
+-#define CONFIG_RT2800_LIB_MODULE 1
+-#define CONFIG_EXTCON_ADC_JACK_MODULE 1
+-#define CONFIG_X86_X2APIC 1
+-#define CONFIG_SND_SOC_TLV320AIC3X_MODULE 1
+-#define CONFIG_FB_VESA_MODULE 1
+-#define CONFIG_DEFAULT_SECURITY_APPARMOR 1
+-#define CONFIG_NFS_DEBUG 1
+-#define CONFIG_CRYPTO_BLOWFISH_COMMON_MODULE 1
+-#define CONFIG_REGULATOR_WM831X_MODULE 1
+-#define CONFIG_REGULATOR_TPS65090_MODULE 1
+-#define CONFIG_FUSION_LAN_MODULE 1
+-#define CONFIG_MTD_NAND_PLATFORM_MODULE 1
+-#define CONFIG_DVB_USB_DW2102_MODULE 1
+-#define CONFIG_PATA_PCMCIA_MODULE 1
+-#define CONFIG_NF_CONNTRACK_SANE_MODULE 1
+-#define CONFIG_SND_SOC_WM8990_MODULE 1
+-#define CONFIG_SERIO_PARKBD_MODULE 1
+-#define CONFIG_GPIO_PCF857X_MODULE 1
+-#define CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL_MODULE 1
+-#define CONFIG_ARCH_CLOCKSOURCE_DATA 1
+-#define CONFIG_BACKLIGHT_SAHARA_MODULE 1
+-#define CONFIG_TOIM3232_DONGLE_MODULE 1
+-#define CONFIG_IBM_RTL_MODULE 1
+-#define CONFIG_HAVE_BPF_JIT 1
+-#define CONFIG_USB_SERIAL_MOS7720_MODULE 1
+-#define CONFIG_PREEMPT_NOTIFIERS 1
+-#define CONFIG_NET_DSA_TAG_EDSA 1
+-#define CONFIG_XEN_PVHVM 1
+-#define CONFIG_FB_ARC_MODULE 1
+-#define CONFIG_NF_CT_PROTO_DCCP_MODULE 1
+-#define CONFIG_ZLIB_INFLATE 1
+-#define CONFIG_USB_FUNCTIONFS_MODULE 1
+-#define CONFIG_RTC_DRV_V3020_MODULE 1
+-#define CONFIG_HISAX_AVM_A1_CS_MODULE 1
+-#define CONFIG_DVB_TUA6100_MODULE 1
+-#define CONFIG_KVM_ASYNC_PF 1
+-#define CONFIG_CRC_T10DIF 1
+-#define CONFIG_BT_HCIBTUART_MODULE 1
+-#define CONFIG_AD7746_MODULE 1
+-#define CONFIG_THERMAL_GOV_FAIR_SHARE 1
+-#define CONFIG_ENCRYPTED_KEYS 1
+-#define CONFIG_MEDIA_TUNER_QT1010_MODULE 1
+-#define CONFIG_DVB_DYNAMIC_MINORS 1
+-#define CONFIG_BCH_CONST_T 4
+-#define CONFIG_GPIO_WM831X_MODULE 1
+-#define CONFIG_SSB_PCIHOST_POSSIBLE 1
+-#define CONFIG_LCD_LMS283GF05_MODULE 1
+-#define CONFIG_PCI_IOAPIC 1
+-#define CONFIG_HWMON 1
+-#define CONFIG_AD5791_MODULE 1
+-#define CONFIG_NET_VENDOR_DLINK 1
+-#define CONFIG_CRYPTO_TWOFISH_COMMON_MODULE 1
+-#define CONFIG_DLCI_MAX 8
+-#define CONFIG_AUDITSYSCALL 1
+-#define CONFIG_BT_HCIUART_3WIRE 1
+-#define CONFIG_HID_LENOVO_TPKBD_MODULE 1
+-#define CONFIG_USB_PHY 1
+-#define CONFIG_X86_ACPI_CPUFREQ_CPB 1
+-#define CONFIG_NLS_ISO8859_2_MODULE 1
+-#define CONFIG_MFD_DA9052_I2C 1
+-#define CONFIG_SENSORS_LM63_MODULE 1
+-#define CONFIG_ARCH_CPU_PROBE_RELEASE 1
+-#define CONFIG_IP_PNP 1
+-#define CONFIG_RC_DEVICES 1
+-#define CONFIG_CRYPTO_CRC32_PCLMUL_MODULE 1
+-#define CONFIG_USB_VIDEO_CLASS_MODULE 1
+-#define CONFIG_EXYNOS_VIDEO 1
+-#define CONFIG_CLKBLD_I8253 1
+-#define CONFIG_ATM_NICSTAR_MODULE 1
+-#define CONFIG_FB_ATY_GX 1
+-#define CONFIG_RTC_INTF_PROC 1
+-#define CONFIG_HID_PICOLCD_FB 1
+-#define CONFIG_USB_SERIAL_TI_MODULE 1
+-#define CONFIG_NET_SCH_CBQ_MODULE 1
+-#define CONFIG_VIDEO_VP27SMPX_MODULE 1
+-#define CONFIG_PM_CLK 1
+-#define CONFIG_ARCH_USE_BUILTIN_BSWAP 1
+-#define CONFIG_USB_SERIAL_MOS7715_PARPORT 1
+-#define CONFIG_CRYPTO_SERPENT_MODULE 1
+-#define CONFIG_CPU_IDLE_GOV_MENU 1
+-#define CONFIG_SND_SOC_WM1250_EV1_MODULE 1
+-#define CONFIG_MTD_PCI_MODULE 1
+-#define CONFIG_DGRP_MODULE 1
+-#define CONFIG_ACPI_FAN 1
+-#define CONFIG_SND_FM801_MODULE 1
+-#define CONFIG_MOUSE_PS2_SENTELIC 1
+-#define CONFIG_HYSDN_CAPI 1
+-#define CONFIG_RTC_DRV_MAX8925_MODULE 1
+-#define CONFIG_FB_MATROX_MYSTIQUE 1
+-#define CONFIG_VIDEO_CS5345_MODULE 1
+-#define CONFIG_SECURITY_APPARMOR 1
+-#define CONFIG_STACKTRACE_SUPPORT 1
+-#define CONFIG_B44_PCI_AUTOSELECT 1
+-#define CONFIG_DVB_USB_AF9035_MODULE 1
+-#define CONFIG_COMEDI_AMPLC_PCI224_MODULE 1
+-#define CONFIG_COMEDI_NI_TIO_MODULE 1
+-#define CONFIG_SERIAL_MAX3100_MODULE 1
+-#define CONFIG_LEDS_LP8788_MODULE 1
+-#define CONFIG_SENSORS_EMC1403_MODULE 1
+-#define CONFIG_RESET_CONTROLLER 1
+-#define CONFIG_BNA_MODULE 1
+-#define CONFIG_OUTPUT_FORMAT "elf64-x86-64"
+-#define CONFIG_VIDEO_M52790_MODULE 1
+-#define CONFIG_ACPI 1
+-#define CONFIG_SCSI_SYM53C8XX_2_MODULE 1
+-#define CONFIG_SCSI_CXGB4_ISCSI_MODULE 1
+-#define CONFIG_SENSORS_SHT15_MODULE 1
+-#define CONFIG_USB_UHCI_HCD 1
+-#define CONFIG_NVRAM_MODULE 1
+-#define CONFIG_LOCKD_MODULE 1
+-#define CONFIG_LEDS_INTEL_SS4200_MODULE 1
+-#define CONFIG_USB_CHIPIDEA_UDC 1
+-#define CONFIG_DVB_FIREDTV_MODULE 1
+-#define CONFIG_DVB_S5H1411_MODULE 1
+-#define CONFIG_NF_CT_NETLINK_TIMEOUT_MODULE 1
+-#define CONFIG_RTC_DRV_DS3234_MODULE 1
+-#define CONFIG_AIC79XX_REG_PRETTY_PRINT 1
+-#define CONFIG_RT2800USB_RT35XX 1
+-#define CONFIG_FB_SAVAGE_MODULE 1
+-#define CONFIG_LIBERTAS_MODULE 1
+-#define CONFIG_HPET_MMAP 1
+-#define CONFIG_USB_GSPCA_TV8532_MODULE 1
+-#define CONFIG_IO_DELAY_0XED 1
+-#define CONFIG_LATENCYTOP 1
+-#define CONFIG_DRM_VMWGFX_MODULE 1
+-#define CONFIG_NET_VENDOR_MICROCHIP 1
+-#define CONFIG_JFFS2_FS_MODULE 1
+-#define CONFIG_STE10XP 1
+-#define CONFIG_HID_SAITEK_MODULE 1
+-#define CONFIG_SND_SOC_WM8750_MODULE 1
+-#define CONFIG_VIDEO_OUTPUT_CONTROL_MODULE 1
+-#define CONFIG_CASSINI_MODULE 1
+-#define CONFIG_USB_WHCI_HCD_MODULE 1
+-#define CONFIG_SCSI_DH_ALUA_MODULE 1
+-#define CONFIG_MTRR 1
+-#define CONFIG_USB_G_NCM_MODULE 1
+-#define CONFIG_ADIS16203_MODULE 1
+-#define CONFIG_MFD_MC13XXX_I2C_MODULE 1
+-#define CONFIG_BT_RFCOMM_TTY 1
+-#define CONFIG_LIBFCOE_MODULE 1
+-#define CONFIG_INTEGRITY_SIGNATURE 1
+-#define CONFIG_RPCSEC_GSS_KRB5_MODULE 1
+-#define CONFIG_SCSI_EATA_LINKED_COMMANDS 1
+-#define CONFIG_VIDEOBUF_VMALLOC_MODULE 1
+-#define CONFIG_RTC_DRV_LP8788_MODULE 1
+-#define CONFIG_MTD_CFI_UTIL_MODULE 1
+-#define CONFIG_NO_HZ_IDLE 1
+-#define CONFIG_NLS_MAC_ROMANIAN_MODULE 1
+-#define CONFIG_SND_LX6464ES_MODULE 1
+-#define CONFIG_NET_VENDOR_ADAPTEC 1
+-#define CONFIG_SENSORS_PCF8591_MODULE 1
+-#define CONFIG_ACPI_BLACKLIST_YEAR 0
+-#define CONFIG_DVB_STV0299_MODULE 1
+-#define CONFIG_IPW2200_RADIOTAP 1
+-#define CONFIG_SSB_B43_PCI_BRIDGE 1
+-#define CONFIG_ACER_WMI_MODULE 1
+-#define CONFIG_KXSD9_MODULE 1
+-#define CONFIG_USB_AN2720 1
+-#define CONFIG_F2FS_STAT_FS 1
+-#define CONFIG_SENSORS_UCD9200_MODULE 1
+-#define CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING 1
+-#define CONFIG_BSD_PROCESS_ACCT 1
+-#define CONFIG_NETFILTER_XT_MATCH_STRING_MODULE 1
+-#define CONFIG_SSB_DRIVER_PCICORE 1
+-#define CONFIG_INPUT_TABLET 1
+-#define CONFIG_HID_SENSOR_IIO_TRIGGER_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MAX2165_MODULE 1
+-#define CONFIG_MDIO_MODULE 1
+-#define CONFIG_N_HDLC_MODULE 1
+-#define CONFIG_I2O_EXT_ADAPTEC_DMA64 1
+-#define CONFIG_MTD_CFI_INTELEXT_MODULE 1
+-#define CONFIG_ATM_LANAI_MODULE 1
+-#define CONFIG_LLC2_MODULE 1
+-#define CONFIG_IR_WINBOND_CIR_MODULE 1
+-#define CONFIG_HPET_EMULATE_RTC 1
+-#define CONFIG_USB_F_SERIAL_MODULE 1
+-#define CONFIG_X86_MPPARSE 1
+-#define CONFIG_NET_VENDOR_SILAN 1
+-#define CONFIG_SENSORS_UCD9000_MODULE 1
+-#define CONFIG_SND_OXYGEN_LIB_MODULE 1
+-#define CONFIG_DLM_MODULE 1
+-#define CONFIG_SERIAL_ARC_MODULE 1
+-#define CONFIG_CAN_CC770_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_BPF_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_GOTOP 1
+-#define CONFIG_EEEPC_LAPTOP_MODULE 1
+-#define CONFIG_USB_STORAGE_MODULE 1
+-#define CONFIG_HMC6352_MODULE 1
+-#define CONFIG_NET_VENDOR_BROADCOM 1
+-#define CONFIG_SERIAL_FSL_LPUART_MODULE 1
+-#define CONFIG_SND_KCTL_JACK 1
+-#define CONFIG_PERCPU_RWSEM 1
+-#define CONFIG_DVB_USB_PCTV452E_MODULE 1
+-#define CONFIG_DVB_VES1820_MODULE 1
+-#define CONFIG_BAYCOM_SER_HDX_MODULE 1
+-#define CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE 1
+-#define CONFIG_CRYPTO_SEED_MODULE 1
+-#define CONFIG_SCHED_MC 1
+-#define CONFIG_DELL_RBU_MODULE 1
+-#define CONFIG_SCSI_SAS_ATA 1
+-#define CONFIG_AD7266_MODULE 1
+-#define CONFIG_COMEDI_NI_LABPC_PCI_MODULE 1
+-#define CONFIG_BATTERY_DS2782_MODULE 1
+-#define CONFIG_CPU_FREQ_GOV_PERFORMANCE 1
+-#define CONFIG_IR_LIRC_CODEC_MODULE 1
+-#define CONFIG_GPIO_ICH_MODULE 1
+-#define CONFIG_EFI 1
+-#define CONFIG_RATIONAL 1
+-#define CONFIG_I2C_MUX_MODULE 1
+-#define CONFIG_DONGLE 1
+-#define CONFIG_SATA_MV_MODULE 1
+-#define CONFIG_DVB_TS2020_MODULE 1
+-#define CONFIG_AGP_AMD64 1
+-#define CONFIG_HAVE_SETUP_PER_CPU_AREA 1
+-#define CONFIG_CHARGER_ISP1704_MODULE 1
+-#define CONFIG_R8187SE_MODULE 1
+-#define CONFIG_WATCHDOG_CORE 1
+-#define CONFIG_SPEAKUP_SYNTH_KEYPC_MODULE 1
+-#define CONFIG_DVB_TUNER_DIB0090_MODULE 1
+-#define CONFIG_SND_SOC_WM8400_MODULE 1
+-#define CONFIG_PCI_XEN 1
+-#define CONFIG_MFD_RTSX_PCI_MODULE 1
+-#define CONFIG_SND_USB_AUDIO_MODULE 1
+-#define CONFIG_LCD_AMS369FG06_MODULE 1
+-#define CONFIG_ARCNET_CAP_MODULE 1
+-#define CONFIG_VIDEO_ZORAN_ZR36060_MODULE 1
+-#define CONFIG_VIDEO_CX231XX_MODULE 1
+-#define CONFIG_NFC_WILINK_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_TXPRT_MODULE 1
+-#define CONFIG_X25_MODULE 1
+-#define CONFIG_TCP_CONG_YEAH_MODULE 1
+-#define CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE 1
+-#define CONFIG_IEEE802154_MODULE 1
+-#define CONFIG_XO15_EBOOK_MODULE 1
+-#define CONFIG_SCSI_QLA_FC_MODULE 1
+-#define CONFIG_TELCLOCK_MODULE 1
+-#define CONFIG_IO_DELAY_TYPE_0XED 1
+-#define CONFIG_COMEDI_UNIOXX5_MODULE 1
+-#define CONFIG_BLOCK 1
+-#define CONFIG_HAVE_IDE 1
+-#define CONFIG_IP_VS_LC_MODULE 1
+-#define CONFIG_HID_APPLE_MODULE 1
+-#define CONFIG_CRYPTO_SERPENT_AVX2_X86_64_MODULE 1
+-#define CONFIG_MEDIA_TUNER_TDA827X_MODULE 1
+-#define CONFIG_VMXNET3_MODULE 1
+-#define CONFIG_INIT_ENV_ARG_LIMIT 32
+-#define CONFIG_SND_RAWMIDI_SEQ_MODULE 1
+-#define CONFIG_IP_NF_ARP_MANGLE_MODULE 1
+-#define CONFIG_USB_WUSB_MODULE 1
+-#define CONFIG_DVB_USB_MODULE 1
+-#define CONFIG_P54_LEDS 1
+-#define CONFIG_RTC_DRV_88PM860X_MODULE 1
+-#define CONFIG_SENSORS_MAX34440_MODULE 1
+-#define CONFIG_SENSORS_G760A_MODULE 1
+-#define CONFIG_RDS_MODULE 1
+-#define CONFIG_BACKLIGHT_ATMEL_PWM_MODULE 1
+-#define CONFIG_DVB_ATBM8830_MODULE 1
+-#define CONFIG_PATA_EFAR_MODULE 1
+-#define CONFIG_HOLTEK_FF 1
+-#define CONFIG_INPUT_MPU3050_MODULE 1
+-#define CONFIG_EEPROM_93XX46_MODULE 1
+-#define CONFIG_COMEDI_DYNA_PCI10XX_MODULE 1
+-#define CONFIG_ATL2_MODULE 1
+-#define CONFIG_CRYPTO_USER_MODULE 1
+-#define CONFIG_SND_PCM_XRUN_DEBUG 1
+-#define CONFIG_NF_CONNTRACK_PPTP_MODULE 1
+-#define CONFIG_CPU_SUP_INTEL 1
+-#define CONFIG_DVB_ZL10036_MODULE 1
+-#define CONFIG_VIDEO_CX231XX_ALSA_MODULE 1
+-#define CONFIG_TMPFS_POSIX_ACL 1
+-#define CONFIG_HFSPLUS_FS_MODULE 1
+-#define CONFIG_SENSORS_ADM9240_MODULE 1
+-#define CONFIG_DEBUG_SET_MODULE_RONX 1
+-#define CONFIG_VIDEO_CAFE_CCIC_MODULE 1
+-#define CONFIG_SND_USB_UA101_MODULE 1
+-#define CONFIG_ACPI_APEI_PCIEAER 1
+-#define CONFIG_TOUCHSCREEN_CYTTSP_CORE_MODULE 1
+-#define CONFIG_NETLINK_DIAG_MODULE 1
+-#define CONFIG_BUG 1
+-#define CONFIG_KS0108_PORT 0x378
+-#define CONFIG_SCSI_AIC7XXX_MODULE 1
+-#define CONFIG_CONTEXT_SWITCH_TRACER 1
+-#define CONFIG_MAC80211_HAS_RC 1
+-#define CONFIG_BATMAN_ADV_BLA 1
+-#define CONFIG_KDB_KEYBOARD 1
+-#define CONFIG_LOGIWHEELS_FF 1
+-#define CONFIG_SENSORS_INA209_MODULE 1
+-#define CONFIG_SCSI_FC_TGT_ATTRS 1
+-#define CONFIG_USB_SL811_HCD_MODULE 1
+-#define CONFIG_OCFS2_FS_O2CB_MODULE 1
+-#define CONFIG_MDIO_GPIO 1
+-#define CONFIG_XEN 1
+-#define CONFIG_CRYPTO_CAST6_MODULE 1
+-#define CONFIG_NET_EMATCH_META_MODULE 1
+-#define CONFIG_I7300_IDLE_IOAT_CHANNEL 1
+-#define CONFIG_FB_AUO_K1901_MODULE 1
+-#define CONFIG_KS8842_MODULE 1
+-#define CONFIG_W1_MASTER_DS1WM_MODULE 1
+-#define CONFIG_PANTHERLORD_FF 1
+-#define CONFIG_I2C_DIOLAN_U2C_MODULE 1
+-#define CONFIG_PM 1
+-#define CONFIG_SND_CS46XX_NEW_DSP 1
+-#define CONFIG_CAIF_HSI_MODULE 1
+-#define CONFIG_PPS_MODULE 1
+-#define CONFIG_FB_RIVA_BACKLIGHT 1
+-#define CONFIG_GENERIC_ISA_DMA 1
+-#define CONFIG_NFC_PN544_MODULE 1
+-#define CONFIG_CHARGER_MAX8903_MODULE 1
+-#define CONFIG_USB_LCD_MODULE 1
+-#define CONFIG_MEMCG 1
+-#define CONFIG_SPI 1
+-#define CONFIG_SENSORS_DS620_MODULE 1
+-#define CONFIG_V4L_MEM2MEM_DRIVERS 1
+-#define CONFIG_BMP085 1
+-#define CONFIG_X86_SPEEDSTEP_CENTRINO 1
+-#define CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT 1
+-#define CONFIG_TRANZPORT_MODULE 1
+-#define CONFIG_MFD_TPS65912_SPI 1
+-#define CONFIG_NF_CONNTRACK_IRC_MODULE 1
+-#define CONFIG_NOUVEAU_DEBUG_DEFAULT 3
+-#define CONFIG_SENSORS_GPIO_FAN_MODULE 1
+-#define CONFIG_BACKLIGHT_AAT2870_MODULE 1
+-#define CONFIG_PATA_NS87410_MODULE 1
+-#define CONFIG_PCMCIA_SPECTRUM_MODULE 1
+-#define CONFIG_L2TP_IP_MODULE 1
+-#define CONFIG_RADIO_SI476X_MODULE 1
+-#define CONFIG_MTD_REDBOOT_PARTS_MODULE 1
+-#define CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE 0
+-#define CONFIG_MTD_UBI_FASTMAP 1
+-#define CONFIG_USB_STV06XX_MODULE 1
+-#define CONFIG_PPP_DEFLATE_MODULE 1
+-#define CONFIG_REGULATOR_DA903X_MODULE 1
+-#define CONFIG_VGA_SWITCHEROO 1
+-#define CONFIG_USB_ISP1301_MODULE 1
+-#define CONFIG_TOUCHSCREEN_DA9052_MODULE 1
+-#define CONFIG_IRQ_REMAP 1
+-#define CONFIG_TEXTSEARCH_KMP_MODULE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1
+-#define CONFIG_FMC_WRITE_EEPROM_MODULE 1
+-#define CONFIG_COMEDI_AMPLC_PC263_PCI_MODULE 1
+-#define CONFIG_RTS5139_MODULE 1
+-#define CONFIG_SND_MAESTRO3_MODULE 1
+-#define CONFIG_W1_SLAVE_SMEM_MODULE 1
+-#define CONFIG_VT 1
+-#define CONFIG_USB_NET_NET1080_MODULE 1
+-#define CONFIG_SENSORS_F71805F_MODULE 1
+-#define CONFIG_SUNRPC_DEBUG 1
+-#define CONFIG_NETFILTER_XT_TARGET_CLASSIFY_MODULE 1
+-#define CONFIG_HID_TIVO_MODULE 1
+-#define CONFIG_HID_ICADE_MODULE 1
+-#define CONFIG_PCI_ATS 1
+-#define CONFIG_MISDN_IPAC_MODULE 1
+-#define CONFIG_PARIDE_KTTI_MODULE 1
+-#define CONFIG_F2FS_FS_SECURITY 1
+-#define CONFIG_MACB_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_CIRRUS 1
+-#define CONFIG_REGMAP_SPI 1
+-#define CONFIG_DMA_ACPI 1
+-#define CONFIG_VIDEO_HEXIUM_GEMINI_MODULE 1
+-#define CONFIG_CB710_DEBUG_ASSUMPTIONS 1
+-#define CONFIG_SATA_RCAR_MODULE 1
+-#define CONFIG_SPLIT_PTLOCK_CPUS 4
+-#define CONFIG_USB_R8A66597_MODULE 1
+-#define CONFIG_EDAC_E752X_MODULE 1
+-#define CONFIG_MSPRO_BLOCK_MODULE 1
+-#define CONFIG_DVB_TUNER_ITD1000_MODULE 1
+-#define CONFIG_POWER_SUPPLY 1
+-#define CONFIG_DM_PERSISTENT_DATA 1
+-#define CONFIG_PATA_VIA_MODULE 1
+-#define CONFIG_DAVICOM_PHY 1
+-#define CONFIG_SCSI_UFSHCD_PLATFORM_MODULE 1
+-#define CONFIG_SCTP_COOKIE_HMAC_MD5 1
+-#define CONFIG_CIFS_XATTR 1
+-#define CONFIG_KEXEC_JUMP 1
+-#define CONFIG_SENSORS_ADM1275_MODULE 1
+-#define CONFIG_I2C_PCA_PLATFORM_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_NFQUEUE_MODULE 1
+-#define CONFIG_SECURITY_SELINUX_BOOTPARAM 1
+-#define CONFIG_CAN_8DEV_USB_MODULE 1
+-#define CONFIG_SND_HDA_INPUT_BEEP 1
+-#define CONFIG_WEXT_CORE 1
+-#define CONFIG_I2C_DESIGNWARE_CORE_MODULE 1
+-#define CONFIG_USB_GSPCA_MR97310A_MODULE 1
+-#define CONFIG_DVB_HOPPER_MODULE 1
+-#define CONFIG_GENERIC_IRQ_CHIP 1
+-#define CONFIG_NETLABEL 1
+-#define CONFIG_VIDEO_WM8775_MODULE 1
+-#define CONFIG_NLS 1
+-#define CONFIG_CALGARY_IOMMU 1
+-#define CONFIG_NF_CONNTRACK_TIMEOUT 1
+-#define CONFIG_INPUT_PCAP_MODULE 1
+-#define CONFIG_MFD_ARIZONA 1
+-#define CONFIG_IP_SET_HASH_IPPORTNET_MODULE 1
+-#define CONFIG_CDROM_PKTCDVD_BUFFERS 8
+-#define CONFIG_SCHED_AUTOGROUP 1
+-#define CONFIG_GPIO_TPS65912_MODULE 1
+-#define CONFIG_SPI_SPIDEV_MODULE 1
+-#define CONFIG_MEDIA_CAMERA_SUPPORT 1
+-#define CONFIG_PRISM2_USB_MODULE 1
+-#define CONFIG_ADM8211_MODULE 1
+-#define CONFIG_MFD_WM8997 1
+-#define CONFIG_VIDEO_VIVI_MODULE 1
+-#define CONFIG_HWPOISON_INJECT_MODULE 1
+-#define CONFIG_SND_SOC_AD73311_MODULE 1
+-#define CONFIG_RTL8188EE_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_SECMARK_MODULE 1
+-#define CONFIG_HID_MAGICMOUSE_MODULE 1
+-#define CONFIG_I2C_GPIO_MODULE 1
+-#define CONFIG_VIDEO_TDA9840_MODULE 1
+-#define CONFIG_INET_UDP_DIAG_MODULE 1
+-#define CONFIG_USB_CONFIGFS_ACM 1
+-#define CONFIG_RAPIDIO_ENUM_BASIC_MODULE 1
+-#define CONFIG_XEN_SAVE_RESTORE 1
+-#define CONFIG_TOUCHSCREEN_USB_ETURBO 1
+-#define CONFIG_DELL_LAPTOP_MODULE 1
+-#define CONFIG_PPPOE_MODULE 1
+-#define CONFIG_CRYPTO_CRCT10DIF_PCLMUL_MODULE 1
+-#define CONFIG_WL1251_SDIO_MODULE 1
+-#define CONFIG_PCI_REALLOC_ENABLE_AUTO 1
+-#define CONFIG_X86_INTEL_PSTATE 1
+-#define CONFIG_SND_LAYLA24_MODULE 1
+-#define CONFIG_ZONE_DMA 1
+-#define CONFIG_VIDEO_CX25821_MODULE 1
+-#define CONFIG_USB_GSPCA_SPCA508_MODULE 1
+-#define CONFIG_USB_LEGOTOWER_MODULE 1
+-#define CONFIG_NF_NAT_IPV6_MODULE 1
+-#define CONFIG_MTD_DATAFLASH_MODULE 1
+-#define CONFIG_FB_MB862XX_I2C 1
+-#define CONFIG_LIRC_SIR_MODULE 1
+-#define CONFIG_HISAX_TELESPCI 1
+-#define CONFIG_CPU_THERMAL 1
+-#define CONFIG_ISDN_DIVERSION_MODULE 1
+-#define CONFIG_DVB_USB_DIBUSB_MC_MODULE 1
+-#define CONFIG_MTD_ALAUDA_MODULE 1
+-#define CONFIG_I2C_CBUS_GPIO_MODULE 1
+-#define CONFIG_DVB_USB_VP702X_MODULE 1
+-#define CONFIG_CAN_CC770_ISA_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_OWNER_MODULE 1
+-#define CONFIG_GPIO_WM8994_MODULE 1
+-#define CONFIG_I2C_SIS5595_MODULE 1
+-#define CONFIG_SUN_PARTITION 1
+-#define CONFIG_IP_NF_TARGET_ECN_MODULE 1
+-#define CONFIG_SND_GINA24_MODULE 1
+-#define CONFIG_MD_FAULTY_MODULE 1
+-#define CONFIG_SYN_COOKIES 1
+-#define CONFIG_REED_SOLOMON_DEC8 1
+-#define CONFIG_IRQ_WORK 1
+-#define CONFIG_ATH9K_MODULE 1
+-#define CONFIG_PCI_MSI 1
+-#define CONFIG_IP_ADVANCED_ROUTER 1
+-#define CONFIG_MISDN_NETJET_MODULE 1
+-#define CONFIG_ARCNET_COM20020_CS_MODULE 1
+-#define CONFIG_COMEDI_CB_PCIDDA_MODULE 1
+-#define CONFIG_VIDEO_USBVISION_MODULE 1
+-#define CONFIG_FB_SYS_COPYAREA_MODULE 1
+-#define CONFIG_X86_64_SMP 1
+-#define CONFIG_USB_EHCI_PCI 1
+-#define CONFIG_PATA_CYPRESS_MODULE 1
+-#define CONFIG_CLEANCACHE 1
+-#define CONFIG_SPI_BITBANG_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MT2063_MODULE 1
+-#define CONFIG_USB_STORAGE_ALAUDA_MODULE 1
+-#define CONFIG_NET_VENDOR_FUJITSU 1
+-#define CONFIG_JOYSTICK_GRIP_MP_MODULE 1
+-#define CONFIG_SPARSEMEM_EXTREME 1
+-#define CONFIG_B44_PCICORE_AUTOSELECT 1
+-#define CONFIG_IWLWIFI_MODULE 1
+-#define CONFIG_AB3100_OTP_MODULE 1
+-#define CONFIG_USB_COMMON 1
+-#define CONFIG_CYPRESS_FIRMWARE_MODULE 1
+-#define CONFIG_SENSORS_ADM1031_MODULE 1
+-#define CONFIG_TASK_XACCT 1
+-#define CONFIG_ARCNET_1051_MODULE 1
+-#define CONFIG_MEDIA_TUNER_TDA18271_MODULE 1
+-#define CONFIG_IP_SET_BITMAP_PORT_MODULE 1
+-#define CONFIG_IP6_NF_IPTABLES_MODULE 1
+-#define CONFIG_LZ4_COMPRESS_MODULE 1
+-#define CONFIG_REGULATOR_AB3100_MODULE 1
+-#define CONFIG_USB_HSIC_USB3503_MODULE 1
+-#define CONFIG_X86_PCC_CPUFREQ 1
+-#define CONFIG_QFMT_V1_MODULE 1
+-#define CONFIG_DVB_IX2505V_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_ZYTRONIC 1
+-#define CONFIG_NL80211_TESTMODE 1
+-#define CONFIG_TEKRAM_DONGLE_MODULE 1
+-#define CONFIG_ATM_HORIZON_MODULE 1
+-#define CONFIG_SND_SONICVIBES_MODULE 1
+-#define CONFIG_FIXED_PHY 1
+-#define CONFIG_GPIO_ACPI 1
+-#define CONFIG_MFD_MAX8998 1
+-#define CONFIG_ARCH_DEFCONFIG "arch/x86/configs/x86_64_defconfig"
+-#define CONFIG_NLS_MAC_GAELIC_MODULE 1
+-#define CONFIG_CPU_FREQ_GOV_USERSPACE 1
+-#define CONFIG_FTRACE_SYSCALLS 1
+-#define CONFIG_SND_CA0106_MODULE 1
+-#define CONFIG_VIDEO_VIA_CAMERA_MODULE 1
+-#define CONFIG_SOC_CAMERA_RJ54N1_MODULE 1
+-#define CONFIG_ISDN_DIVAS_MAINT_MODULE 1
+-#define CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE 1
+-#define CONFIG_BLK_DEV_DM_BUILTIN 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1
+-#define CONFIG_USB_SERIAL_IPW_MODULE 1
+-#define CONFIG_I2C_PIIX4_MODULE 1
+-#define CONFIG_EDAC_I7300_MODULE 1
+-#define CONFIG_USB_HCD_SSB_MODULE 1
+-#define CONFIG_ARCNET_COM20020_PCI_MODULE 1
+-#define CONFIG_SERIAL_UARTLITE_MODULE 1
+-#define CONFIG_INET_IPCOMP_MODULE 1
+-#define CONFIG_SENSORS_FSCHMD_MODULE 1
+-#define CONFIG_VGA_ARB_MAX_GPUS 16
+-#define CONFIG_DVB_USB_DIB0700_MODULE 1
+-#define CONFIG_TOUCHSCREEN_FUJITSU_MODULE 1
+-#define CONFIG_MCP2120_DONGLE_MODULE 1
+-#define CONFIG_PCMCIA_MODULE 1
+-#define CONFIG_XEN_BLKDEV_BACKEND_MODULE 1
+-#define CONFIG_MMC_SDHCI_PXAV2_MODULE 1
+-#define CONFIG_HISAX_NICCY 1
+-#define CONFIG_CAN_PEAK_USB_MODULE 1
+-#define CONFIG_FMC_TRIVIAL_MODULE 1
+-#define CONFIG_BT_HCIBLUECARD_MODULE 1
+-#define CONFIG_ISDN_X25 1
+-#define CONFIG_EVENT_TRACING 1
+-#define CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON 1
+-#define CONFIG_SND_ENS1370_MODULE 1
+-#define CONFIG_NET_CADENCE 1
+-#define CONFIG_AD7476_MODULE 1
+-#define CONFIG_ASYNC_PQ_MODULE 1
+-#define CONFIG_HID_KEYTOUCH_MODULE 1
+-#define CONFIG_HID_CYPRESS_MODULE 1
+-#define CONFIG_BRIDGE_EBT_LIMIT_MODULE 1
+-#define CONFIG_DRM_KMS_HELPER_MODULE 1
+-#define CONFIG_SERIAL_IPOCTAL_MODULE 1
+-#define CONFIG_IPW2200_PROMISCUOUS 1
+-#define CONFIG_TRACE_SINK_MODULE 1
+-#define CONFIG_OCFS2_FS_USERSPACE_CLUSTER_MODULE 1
+-#define CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB 1
+-#define CONFIG_HYSDN_MODULE 1
+-#define CONFIG_COMEDI_ADL_PCI9111_MODULE 1
+-#define CONFIG_ATA_OVER_ETH_MODULE 1
+-#define CONFIG_USB_NET_PLUSB_MODULE 1
+-#define CONFIG_VIDEO_SAA711X_MODULE 1
+-#define CONFIG_RTL8192C_COMMON_MODULE 1
+-#define CONFIG_MFD_WM831X_SPI 1
+-#define CONFIG_SENSORS_LM95234_MODULE 1
+-#define CONFIG_MEN_A21_WDT_MODULE 1
+-#define CONFIG_PREEMPT_VOLUNTARY 1
+-#define CONFIG_DVB_BUDGET_CORE_MODULE 1
+-#define CONFIG_NLS_ISO8859_1_MODULE 1
+-#define CONFIG_MFD_WM8400 1
+-#define CONFIG_MTD_INTEL_VR_NOR_MODULE 1
+-#define CONFIG_CRYPTO_WORKQUEUE 1
+-#define CONFIG_MACINTOSH_DRIVERS 1
+-#define CONFIG_NFC_MODULE 1
+-#define CONFIG_ADE7754_MODULE 1
+-#define CONFIG_ALX_MODULE 1
+-#define CONFIG_CIFS_FSCACHE 1
+-#define CONFIG_R8169_MODULE 1
+-#define CONFIG_SENSORS_BH1780_MODULE 1
+-#define CONFIG_TCP_CONG_HYBLA_MODULE 1
+-#define CONFIG_PCI_STUB_MODULE 1
+-#define CONFIG_NCPFS_NFS_NS 1
+-#define CONFIG_DRM_I2C_NXP_TDA998X_MODULE 1
+-#define CONFIG_HID_KENSINGTON_MODULE 1
+-#define CONFIG_BACKLIGHT_GENERIC_MODULE 1
+-#define CONFIG_USB_EHCI_HCD 1
+-#define CONFIG_BATTERY_DS2760_MODULE 1
+-#define CONFIG_CPU_FREQ_TABLE 1
+-#define CONFIG_TEXTSEARCH_BM_MODULE 1
+-#define CONFIG_CIFS_SMB2 1
+-#define CONFIG_8139TOO_MODULE 1
+-#define CONFIG_JFS_SECURITY 1
+-#define CONFIG_SND_PDAUDIOCF_MODULE 1
+-#define CONFIG_NLS_MAC_INUIT_MODULE 1
+-#define CONFIG_BT_HCIUART_LL 1
+-#define CONFIG_HID_ZYDACRON_MODULE 1
+-#define CONFIG_REGULATOR_LP8755_MODULE 1
+-#define CONFIG_PPP_MPPE_MODULE 1
+-#define CONFIG_CAN_CALC_BITTIMING 1
+-#define CONFIG_HID_SENSOR_ACCEL_3D_MODULE 1
+-#define CONFIG_DE2104X_MODULE 1
+-#define CONFIG_MEMORY_HOTPLUG 1
+-#define CONFIG_HISAX_SEDLBAUER_CS_MODULE 1
+-#define CONFIG_DVB_B2C2_FLEXCOP_MODULE 1
+-#define CONFIG_HOTPLUG_PCI_ACPI 1
+-#define CONFIG_SATA_ZPODD 1
+-#define CONFIG_USB_IRDA_MODULE 1
+-#define CONFIG_SND_SOC_WM8960_MODULE 1
+-#define CONFIG_RFKILL 1
+-#define CONFIG_VIDEO_TVP5150_MODULE 1
+-#define CONFIG_MEDIA_TUNER_FC0012_MODULE 1
+-#define CONFIG_NETDEVICES 1
+-#define CONFIG_NET_KEY_MODULE 1
+-#define CONFIG_SMS_SIANO_MDTV_MODULE 1
+-#define CONFIG_VIDEO_ADV7180_MODULE 1
+-#define CONFIG_ACORN_PARTITION_RISCIX 1
+-#define CONFIG_HAVE_CONTEXT_TRACKING 1
+-#define CONFIG_IP6_NF_TARGET_HL_MODULE 1
+-#define CONFIG_IOSCHED_DEADLINE 1
+-#define CONFIG_DLCI_MODULE 1
+-#define CONFIG_ATM_IDT77252_USE_SUNI 1
+-#define CONFIG_SND_OPL3_LIB_SEQ_MODULE 1
+-#define CONFIG_CGROUP_FREEZER 1
+-#define CONFIG_VIDEO_UPD64083_MODULE 1
+-#define CONFIG_SERIAL_ALTERA_JTAGUART_MODULE 1
+-#define CONFIG_EVENTFD 1
+-#define CONFIG_CRYPTO_DEV_PADLOCK_SHA_MODULE 1
+-#define CONFIG_SOC_CAMERA_MT9T112_MODULE 1
+-#define CONFIG_SPI_DESIGNWARE_MODULE 1
+-#define CONFIG_MTD_CK804XROM_MODULE 1
+-#define CONFIG_PARIDE_PD_MODULE 1
+-#define CONFIG_RTL8192CE_MODULE 1
+-#define CONFIG_WAN 1
+-#define CONFIG_VLAN_8021Q_MVRP 1
+-#define CONFIG_FS_POSIX_ACL 1
+-#define CONFIG_IPV6_SIT_MODULE 1
+-#define CONFIG_REGULATOR_TPS65912_MODULE 1
+-#define CONFIG_XFRM 1
+-#define CONFIG_SENSORS_K8TEMP_MODULE 1
+-#define CONFIG_DEFCONFIG_LIST "/lib/modules/$UNAME_RELEASE/.config"
+-#define CONFIG_SND_SOC_BT_SCO_MODULE 1
+-#define CONFIG_CAIF_USB_MODULE 1
+-#define CONFIG_HAVE_KPROBES_ON_FTRACE 1
+-#define CONFIG_IP_SET_HASH_IP_MODULE 1
+-#define CONFIG_YENTA_TOSHIBA 1
+-#define CONFIG_USB_MR800_MODULE 1
+-#define CONFIG_JOYSTICK_AS5011_MODULE 1
+-#define CONFIG_AIRO_MODULE 1
+-#define CONFIG_MTD_NETtel_MODULE 1
+-#define CONFIG_MFD_VX855_MODULE 1
+-#define CONFIG_SERIAL_8250_CONSOLE 1
+-#define CONFIG_SOC_CAMERA_OV6650_MODULE 1
+-#define CONFIG_IPV6_MULTIPLE_TABLES 1
+-#define CONFIG_USB_ANNOUNCE_NEW_DEVICES 1
+-#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1
+-#define CONFIG_NET_CLS_ROUTE4_MODULE 1
+-#define CONFIG_JUMP_LABEL 1
+-#define CONFIG_SND_SOC_WM9081_MODULE 1
+-#define CONFIG_PCMCIA_FMVJ18X_MODULE 1
+-#define CONFIG_KEYBOARD_QT1070_MODULE 1
+-#define CONFIG_MFD_KEMPLD_MODULE 1
+-#define CONFIG_USB_NET2272_MODULE 1
+-#define CONFIG_IP_SET_HASH_NETPORT_MODULE 1
+-#define CONFIG_TCG_INFINEON_MODULE 1
+-#define CONFIG_ATH9K_HTC_MODULE 1
+-#define CONFIG_IP_VS_DH_MODULE 1
+-#define CONFIG_SND_SOC_WM8753_MODULE 1
+-#define CONFIG_AX25_DAMA_SLAVE 1
+-#define CONFIG_AD5380_MODULE 1
+-#define CONFIG_RT2800PCI_RT3290 1
+-#define CONFIG_VIDEO_MEM2MEM_DEINTERLACE_MODULE 1
+-#define CONFIG_RADIO_WL128X_MODULE 1
+-#define CONFIG_IP_NF_TARGET_MASQUERADE_MODULE 1
+-#define CONFIG_AIC79XX_RESET_DELAY_MS 5000
+-#define CONFIG_ARCNET_COM20020_MODULE 1
+-#define CONFIG_MFD_AAT2870_CORE 1
+-#define CONFIG_SECURITY_SELINUX_DISABLE 1
+-#define CONFIG_NF_CONNTRACK_BROADCAST_MODULE 1
+-#define CONFIG_CRYPTO_LZ4_MODULE 1
+-#define CONFIG_ECRYPT_FS 1
+-#define CONFIG_IR_RC5_SZ_DECODER_MODULE 1
+-#define CONFIG_PROC_PAGE_MONITOR 1
+-#define CONFIG_USB_CONFIGFS_ECM 1
+-#define CONFIG_MFD_MAX8907_MODULE 1
+-#define CONFIG_SERIAL_8250_EXTENDED 1
+-#define CONFIG_GAMEPORT_FM801_MODULE 1
+-#define CONFIG_KS959_DONGLE_MODULE 1
+-#define CONFIG_JOYSTICK_MAGELLAN_MODULE 1
+-#define CONFIG_AD7887_MODULE 1
+-#define CONFIG_AD7780_MODULE 1
+-#define CONFIG_FTL_MODULE 1
+-#define CONFIG_RCU_FANOUT_LEAF 16
+-#define CONFIG_IGB_HWMON 1
+-#define CONFIG_MTD_NAND_BCH_MODULE 1
+-#define CONFIG_DM_CACHE 1
+-#define CONFIG_MEDIA_TUNER_R820T_MODULE 1
+-#define CONFIG_IPMI_DEVICE_INTERFACE_MODULE 1
+-#define CONFIG_9P_FS_POSIX_ACL 1
+-#define CONFIG_KINGSUN_DONGLE_MODULE 1
+-#define CONFIG_NF_NAT_PROTO_DCCP_MODULE 1
+-#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1
+-#define CONFIG_VIDEO_SH_VEU_MODULE 1
+-#define CONFIG_SENSORS_ADM1021_MODULE 1
+-#define CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK 1
+-#define CONFIG_C2PORT_MODULE 1
+-#define CONFIG_DM_DELAY_MODULE 1
+-#define CONFIG_X86_CMOV 1
+-#define CONFIG_USB_SERIAL_CH341_MODULE 1
+-#define CONFIG_HID_SENSOR_IIO_COMMON_MODULE 1
+-#define CONFIG_USB_FTDI_ELAN_MODULE 1
+-#define CONFIG_ACPI_HOTPLUG_CPU 1
+-#define CONFIG_VIDEO_ZORAN_AVS6EYES_MODULE 1
+-#define CONFIG_PM_TRACE_RTC 1
+-#define CONFIG_RD_LZO 1
+-#define CONFIG_COMEDI_ADDI_APCI_1564_MODULE 1
+-#define CONFIG_DVB_USB_FRIIO_MODULE 1
+-#define CONFIG_USB_G_NOKIA_MODULE 1
+-#define CONFIG_IP_SET_HASH_IPPORT_MODULE 1
+-#define CONFIG_CAIF_TTY_MODULE 1
+-#define CONFIG_SENSORS_SHT21_MODULE 1
+-#define CONFIG_USB_IOWARRIOR_MODULE 1
+-#define CONFIG_SND_HDSP_MODULE 1
+-#define CONFIG_BATTERY_DA9052_MODULE 1
+-#define CONFIG_SERIO_CT82C710_MODULE 1
+-#define CONFIG_USBPCWATCHDOG_MODULE 1
+-#define CONFIG_MODULE_SIG_ALL 1
+-#define CONFIG_USB_EZUSB_FX2_MODULE 1
+-#define CONFIG_WIMAX_I2400M_USB_MODULE 1
+-#define CONFIG_SND_USB_USX2Y_MODULE 1
+-#define CONFIG_SCSI_SPI_ATTRS 1
+-#define CONFIG_FB_CYBER2000_MODULE 1
+-#define CONFIG_BCMA_DRIVER_GMAC_CMN 1
+-#define CONFIG_GREENASIA_FF 1
+-#define CONFIG_SCSI_HPSA_MODULE 1
+-#define CONFIG_MICROCODE_AMD 1
+-#define CONFIG_USB_RCAR_PHY_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_ACNTSA_MODULE 1
+-#define CONFIG_RAPIDIO_TSI721 1
+-#define CONFIG_SND_KORG1212_MODULE 1
+-#define CONFIG_SENSORS_VIA_CPUTEMP_MODULE 1
+-#define CONFIG_NF_CONNTRACK_SECMARK 1
+-#define CONFIG_ISDN_DRV_GIGASET_MODULE 1
+-#define CONFIG_CHELSIO_T3_MODULE 1
+-#define CONFIG_VIDEO_OV7640_MODULE 1
+-#define CONFIG_INSTRUCTION_DECODER 1
+-#define CONFIG_CRYPTO_SHA512 1
+-#define CONFIG_PHONET_MODULE 1
+-#define CONFIG_MWIFIEX_PCIE_MODULE 1
+-#define CONFIG_CAN_C_CAN_PCI_MODULE 1
+-#define CONFIG_TRUSTED_KEYS 1
+-#define CONFIG_DRM_MGA_MODULE 1
+-#define CONFIG_BACKLIGHT_CLASS_DEVICE 1
+-#define CONFIG_B43_HWRNG 1
+-#define CONFIG_VHOST_MODULE 1
+-#define CONFIG_USB_M5602_MODULE 1
+-#define CONFIG_RT2X00_LIB_USB_MODULE 1
+-#define CONFIG_NET_VENDOR_EXAR 1
+-#define CONFIG_WM8350_POWER_MODULE 1
+-#define CONFIG_INPUT_CMA3000_I2C_MODULE 1
+-#define CONFIG_CRYPTO_NULL_MODULE 1
+-#define CONFIG_DVB_USB_AF9005_REMOTE_MODULE 1
+-#define CONFIG_NET_VENDOR_SEEQ 1
+-#define CONFIG_NF_DEFRAG_IPV4_MODULE 1
+-#define CONFIG_USER_RETURN_NOTIFIER 1
+-#define CONFIG_INTEL_IOMMU_FLOPPY_WA 1
+-#define CONFIG_USB_IDMOUSE_MODULE 1
+-#define CONFIG_SELECT_MEMORY_MODEL 1
+-#define CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64_MODULE 1
+-#define CONFIG_MISDN_INFINEON_MODULE 1
+-#define CONFIG_INET_XFRM_MODE_BEET_MODULE 1
+-#define CONFIG_HID_LCPOWER_MODULE 1
+-#define CONFIG_VIRTIO_CONSOLE_MODULE 1
+-#define CONFIG_ACPI_APEI_EINJ_MODULE 1
+-#define CONFIG_BFS_FS_MODULE 1
+-#define CONFIG_SND_ES1938_MODULE 1
+-#define CONFIG_PM_DEBUG 1
+-#define CONFIG_VIDEO_TW9906_MODULE 1
+-#define CONFIG_KEYBOARD_STMPE_MODULE 1
+-#define CONFIG_DVB_BUDGET_AV_MODULE 1
+-#define CONFIG_IPV6_ROUTE_INFO 1
+-#define CONFIG_MFD_WM8350_I2C 1
+-#define CONFIG_NETFILTER_ADVANCED 1
+-#define CONFIG_CRYPTO_DEFLATE_MODULE 1
+-#define CONFIG_GENERIC_STRNLEN_USER 1
+-#define CONFIG_MFD_WM8350 1
+-#define CONFIG_USB_APPLEDISPLAY_MODULE 1
+-#define CONFIG_USB_SERIAL_KLSI_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_TCPMSS_MODULE 1
+-#define CONFIG_MAC80211_RC_PID 1
+-#define CONFIG_IGB_MODULE 1
+-#define CONFIG_MTD_CFI_MODULE 1
+-#define CONFIG_COMEDI_USBDUXSIGMA_MODULE 1
+-#define CONFIG_IPV6_ROUTER_PREF 1
+-#define CONFIG_JFFS2_FS_DEBUG 0
+-#define CONFIG_BT_HCIBTSDIO_MODULE 1
+-#define CONFIG_DRM_QXL_MODULE 1
+-#define CONFIG_SLIP_COMPRESSED 1
+-#define CONFIG_STE_MODEM_RPROC_MODULE 1
+-#define CONFIG_SND_VX_LIB_MODULE 1
+-#define CONFIG_ATM_MPOA_MODULE 1
+-#define CONFIG_INPUT_ARIZONA_HAPTICS_MODULE 1
+-#define CONFIG_DM_SWITCH_MODULE 1
+-#define CONFIG_ROCKETPORT_MODULE 1
+-#define CONFIG_CRYPTO_GCM_MODULE 1
+-#define CONFIG_SND_INDIGOIO_MODULE 1
+-#define CONFIG_NE2K_PCI_MODULE 1
+-#define CONFIG_MOUSE_SYNAPTICS_USB_MODULE 1
+-#define CONFIG_NET_SCTPPROBE_MODULE 1
+-#define CONFIG_NETFILTER_NETLINK_LOG_MODULE 1
+-#define CONFIG_HAVE_DYNAMIC_FTRACE 1
+-#define CONFIG_NLS_ISO8859_14_MODULE 1
+-#define CONFIG_MTD_PHRAM_MODULE 1
+-#define CONFIG_MAGIC_SYSRQ 1
+-#define CONFIG_MFD_88PM860X 1
+-#define CONFIG_E100_MODULE 1
+-#define CONFIG_REGULATOR_TPS6586X_MODULE 1
+-#define CONFIG_THERMAL_EMULATION 1
+-#define CONFIG_DMI 1
+-#define CONFIG_IPV6_SIT_6RD 1
+-#define CONFIG_WIL6210_TRACING 1
+-#define CONFIG_PARPORT_SERIAL_MODULE 1
+-#define CONFIG_PNFS_BLOCK_MODULE 1
+-#define CONFIG_NET_VENDOR_RDC 1
+-#define CONFIG_MACHZ_WDT_MODULE 1
+-#define CONFIG_MFD_CROS_EC_I2C_MODULE 1
+-#define CONFIG_CPUSETS 1
+-#define CONFIG_NETFILTER_XT_MATCH_MARK_MODULE 1
+-#define CONFIG_FB_MATROX_MODULE 1
+-#define CONFIG_ISDN 1
+-#define CONFIG_VIDEO_PVRUSB2_SYSFS 1
+-#define CONFIG_FUNCTION_PROFILER 1
+-#define CONFIG_MAC80211_RC_DEFAULT_MINSTREL 1
+-#define CONFIG_GPIO_CS5535_MODULE 1
+-#define CONFIG_SPARSE_IRQ 1
+-#define CONFIG_COMEDI_AMPLC_PC236_MODULE 1
+-#define CONFIG_DVB_LGS8GXX_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP_MODULE 1
+-#define CONFIG_SSFDC_MODULE 1
+-#define CONFIG_IP_NF_MANGLE_MODULE 1
+-#define CONFIG_TIFM_7XX1_MODULE 1
+-#define CONFIG_USB_MASS_STORAGE_MODULE 1
+-#define CONFIG_HID_PICOLCD_LEDS 1
+-#define CONFIG_COMEDI_CB_DAS16_CS_MODULE 1
+-#define CONFIG_RTC_DRV_DS1286_MODULE 1
+-#define CONFIG_FCOE_FNIC_MODULE 1
+-#define CONFIG_INTEL_SMARTCONNECT_MODULE 1
+-#define CONFIG_ATH10K_DEBUGFS 1
+-#define CONFIG_MOXA_INTELLIO_MODULE 1
+-#define CONFIG_TOUCHSCREEN_MCS5000_MODULE 1
+-#define CONFIG_DVB_VES1X93_MODULE 1
+-#define CONFIG_USB_U_RNDIS_MODULE 1
+-#define CONFIG_SND_SOC_ADAV80X_MODULE 1
+-#define CONFIG_DRM_UDL_MODULE 1
+-#define CONFIG_SECURITYFS 1
+-#define CONFIG_LIBERTAS_MESH 1
+-#define CONFIG_MFD_CS5535_MODULE 1
+-#define CONFIG_RCU_STALL_COMMON 1
+-#define CONFIG_COMEDI_NI_PCIDIO_MODULE 1
+-#define CONFIG_CPU_SUP_AMD 1
+-#define CONFIG_INET6_XFRM_MODE_TUNNEL_MODULE 1
+-#define CONFIG_BRIDGE_EBT_VLAN_MODULE 1
+-#define CONFIG_PCIEPORTBUS 1
+-#define CONFIG_MEDIA_SUPPORT_MODULE 1
+-#define CONFIG_SENSORS_F75375S_MODULE 1
+-#define CONFIG_DEBUG_BUGVERBOSE 1
+-#define CONFIG_ACPI_CUSTOM_DSDT_FILE ""
+-#define CONFIG_NCPFS_OS2_NS 1
+-#define CONFIG_IP_NF_FILTER_MODULE 1
+-#define CONFIG_HID_ZEROPLUS_MODULE 1
+-#define CONFIG_REED_SOLOMON_DEC16 1
+-#define CONFIG_SENSORS_MC13783_ADC_MODULE 1
+-#define CONFIG_SATA_SX4_MODULE 1
+-#define CONFIG_MAC802154_MODULE 1
+-#define CONFIG_EXT3_FS 1
+-#define CONFIG_IBM_ASM_MODULE 1
+-#define CONFIG_SOC_CAMERA_OV772X_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_LENGTH_MODULE 1
+-#define CONFIG_BRIDGE_EBT_PKTTYPE_MODULE 1
+-#define CONFIG_HID_SENSOR_GYRO_3D_MODULE 1
+-#define CONFIG_FAT_FS 1
+-#define CONFIG_SND_SOC_TWL6040_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_CA0132 1
+-#define CONFIG_FCOE_MODULE 1
+-#define CONFIG_CAN_SJA1000_MODULE 1
+-#define CONFIG_AUFS_BDEV_LOOP 1
+-#define CONFIG_SND_HDA_INTEL_MODULE 1
+-#define CONFIG_TEXTSEARCH_FSM_MODULE 1
+-#define CONFIG_MISDN_DSP_MODULE 1
+-#define CONFIG_SENSORS_LM75_MODULE 1
+-#define CONFIG_PANEL_PROFILE 5
+-#define CONFIG_INFINIBAND_CXGB4_MODULE 1
+-#define CONFIG_LSI_ET1011C_PHY 1
+-#define CONFIG_HISAX_SEDLBAUER 1
+-#define CONFIG_IP6_NF_RAW_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_SOFT_MODULE 1
+-#define CONFIG_DVB_USB_EC168_MODULE 1
+-#define CONFIG_NET_DSA_MV88E6131_MODULE 1
+-#define CONFIG_USB_ZD1201_MODULE 1
+-#define CONFIG_RTC_DRV_DS1742_MODULE 1
+-#define CONFIG_INET_TUNNEL_MODULE 1
+-#define CONFIG_X86_INTERNODE_CACHE_SHIFT 6
+-#define CONFIG_CRYPTO_SERPENT_SSE2_X86_64_MODULE 1
+-#define CONFIG_CRYPTO_DEV_PADLOCK 1
+-#define CONFIG_SENSORS_PMBUS_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_NOTRACK_MODULE 1
+-#define CONFIG_EEPROM_93CX6_MODULE 1
+-#define CONFIG_GPIO_WM8350_MODULE 1
+-#define CONFIG_NET_9P_VIRTIO_MODULE 1
+-#define CONFIG_VIDEO_W9966_MODULE 1
+-#define CONFIG_MFD_DA9052_SPI 1
+-#define CONFIG_X86_CHECK_BIOS_CORRUPTION 1
+-#define CONFIG_MMC_BLOCK_BOUNCE 1
+-#define CONFIG_MLX4_CORE_MODULE 1
+-#define CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK -1
+-#define CONFIG_SND_MIA_MODULE 1
+-#define CONFIG_VIDEO_STK1160_AC97 1
+-#define CONFIG_GENERIC_CLOCKEVENTS 1
+-#define CONFIG_ROMFS_FS_MODULE 1
+-#define CONFIG_IOSCHED_CFQ 1
+-#define CONFIG_OID_REGISTRY 1
+-#define CONFIG_MFD_88PM805_MODULE 1
+-#define CONFIG_DVB_USB_DTT200U_MODULE 1
+-#define CONFIG_CIFS_UPCALL 1
+-#define CONFIG_RWSEM_XCHGADD_ALGORITHM 1
+-#define CONFIG_DSCC4_PCISYNC 1
+-#define CONFIG_PARIDE_EPIA_MODULE 1
+-#define CONFIG_LIB80211_MODULE 1
+-#define CONFIG_MFD_CORE 1
+-#define CONFIG_HAVE_KERNEL_XZ 1
+-#define CONFIG_USB_CXACRU_MODULE 1
+-#define CONFIG_RTC_DRV_MAX77686_MODULE 1
+-#define CONFIG_DRM_GMA3600 1
+-#define CONFIG_X86_PKG_TEMP_THERMAL_MODULE 1
+-#define CONFIG_RAID_ATTRS_MODULE 1
+-#define CONFIG_RFKILL_LEDS 1
+-#define CONFIG_CONSOLE_TRANSLATIONS 1
+-#define CONFIG_PATA_CMD64X_MODULE 1
+-#define CONFIG_MTD_CFI_STAA_MODULE 1
+-#define CONFIG_PUBLIC_KEY_ALGO_RSA 1
+-#define CONFIG_REGULATOR_AD5398_MODULE 1
+-#define CONFIG_STOP_MACHINE 1
+-#define CONFIG_RAID6_PQ_MODULE 1
+-#define CONFIG_SBC_FITPC2_WATCHDOG_MODULE 1
+-#define CONFIG_HW_RANDOM_TIMERIOMEM_MODULE 1
+-#define CONFIG_NET_IPGRE_MODULE 1
+-#define CONFIG_ADT7316_MODULE 1
+-#define CONFIG_LIBERTAS_SDIO_MODULE 1
+-#define CONFIG_FUSION 1
+-#define CONFIG_MTDRAM_TOTAL_SIZE 4096
+-#define CONFIG_VIDEO_TEA6420_MODULE 1
+-#define CONFIG_SWIOTLB_XEN 1
+-#define CONFIG_BRIDGE_EBT_IP6_MODULE 1
+-#define CONFIG_NF_NAT_SNMP_BASIC_MODULE 1
+-#define CONFIG_PCMCIA_LOAD_CIS 1
+-#define CONFIG_CLS_U32_MARK 1
+-#define CONFIG_SND_SOC_ARIZONA_MODULE 1
+-#define CONFIG_SND_ICE1712_MODULE 1
+-#define CONFIG_BACKLIGHT_MAX8925_MODULE 1
+-#define CONFIG_LIBERTAS_SPI_MODULE 1
+-#define CONFIG_SCSI_ACARD_MODULE 1
+-#define CONFIG_LEDS_TRIGGER_BACKLIGHT_MODULE 1
+-#define CONFIG_VIDEO_ZORAN_LML33_MODULE 1
+-#define CONFIG_CPU_FREQ 1
+-#define CONFIG_USB_OHCI_HCD 1
+-#define CONFIG_VIA_RHINE_MODULE 1
+-#define CONFIG_USB_GSPCA_MODULE 1
+-#define CONFIG_HOSTAP_FIRMWARE 1
+-#define CONFIG_VHOST_RING_MODULE 1
+-#define CONFIG_DM_MIRROR_MODULE 1
+-#define CONFIG_CRYPTO_BLOWFISH_MODULE 1
+-#define CONFIG_FB_SIS_MODULE 1
+-#define CONFIG_DUMMY_CONSOLE 1
+-#define CONFIG_AIC7XXX_DEBUG_MASK 0
+-#define CONFIG_SCSI_GDTH_MODULE 1
+-#define CONFIG_COMEDI_DAS08_PCI_MODULE 1
+-#define CONFIG_NLS_ASCII_MODULE 1
+-#define CONFIG_RFKILL_GPIO_MODULE 1
+-#define CONFIG_REGULATOR_DA9055_MODULE 1
+-#define CONFIG_USB_G_PRINTER_MODULE 1
+-#define CONFIG_B43_MODULE 1
+-#define CONFIG_JOYSTICK_GRIP_MODULE 1
+-#define CONFIG_BAYCOM_SER_FDX_MODULE 1
+-#define CONFIG_MEDIA_ALTERA_CI_MODULE 1
+-#define CONFIG_RTC_DRV_M41T94_MODULE 1
+-#define CONFIG_IP1000_MODULE 1
+-#define CONFIG_AD_SIGMA_DELTA_MODULE 1
+-#define CONFIG_WIMAX_DEBUG_LEVEL 8
+-#define CONFIG_VIDEO_HEXIUM_ORION_MODULE 1
+-#define CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE 1
+-#define CONFIG_INTEL_MEI_ME_MODULE 1
+-#define CONFIG_INFINIBAND_QIB_MODULE 1
+-#define CONFIG_USB_RIO500_MODULE 1
+-#define CONFIG_LAPBETHER_MODULE 1
+-#define CONFIG_SATA_SVW_MODULE 1
+-#define CONFIG_DM_RAID45_MODULE 1
+-#define CONFIG_SND_CS5530_MODULE 1
+-#define CONFIG_TRACE_IRQFLAGS_SUPPORT 1
+-#define CONFIG_AD5360_MODULE 1
+-#define CONFIG_IEEE802154_MRF24J40_MODULE 1
+-#define CONFIG_MFD_SYSCON 1
+-#define CONFIG_MTD_PHYSMAP_MODULE 1
+-#define CONFIG_NFS_V3_ACL 1
+-#define CONFIG_HDLC_X25_MODULE 1
+-#define CONFIG_CHARGER_GPIO_MODULE 1
+-#define CONFIG_INFTL_MODULE 1
+-#define CONFIG_GAMEPORT_L4_MODULE 1
+-#define CONFIG_SENSORS_ADT7462_MODULE 1
+-#define CONFIG_DETECT_HUNG_TASK 1
+-#define CONFIG_PARIDE_FRIQ_MODULE 1
+-#define CONFIG_CAN_MCP251X_MODULE 1
+-#define CONFIG_CRYPTO_CCM_MODULE 1
+-#define CONFIG_TCP_CONG_ADVANCED 1
+-#define CONFIG_NET_CLS_RSVP6_MODULE 1
+-#define CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT 1
+-#define CONFIG_USB_NET_CDC_SUBSET_MODULE 1
+-#define CONFIG_AD7152_MODULE 1
+-#define CONFIG_KVM_GUEST 1
+-#define CONFIG_QFMT_V2_MODULE 1
+-#define CONFIG_USB_S2255_MODULE 1
+-#define CONFIG_INET_DCCP_DIAG_MODULE 1
+-#define CONFIG_ARCNET_COM90xxIO_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_CONNMARK_MODULE 1
+-#define CONFIG_ATH9K_HW_MODULE 1
+-#define CONFIG_BLK_CGROUP 1
+-#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1
+-#define CONFIG_UIO_PDRV_GENIRQ_MODULE 1
+-#define CONFIG_BT_HCIBT3C_MODULE 1
+-#define CONFIG_LEDS_TRIGGERS 1
+-#define CONFIG_WIMAX_I2400M_DEBUG_LEVEL 8
+-#define CONFIG_CRYPTO_RNG 1
+-#define CONFIG_USB_SERIAL_GARMIN_MODULE 1
+-#define CONFIG_W1_MASTER_GPIO_MODULE 1
+-#define CONFIG_RAW_DRIVER_MODULE 1
+-#define CONFIG_MTD_ESB2ROM_MODULE 1
+-#define CONFIG_XFS_QUOTA 1
+-#define CONFIG_JOYSTICK_COBRA_MODULE 1
+-#define CONFIG_VME_PIO2_MODULE 1
+-#define CONFIG_ATH10K_MODULE 1
+-#define CONFIG_SECURITY_SMACK 1
+-#define CONFIG_NET_SCH_ATM_MODULE 1
+-#define CONFIG_WINBOND_840_MODULE 1
+-#define CONFIG_SND_SOC_UDA1380_MODULE 1
+-#define CONFIG_TOUCHSCREEN_CYTTSP_SPI_MODULE 1
+-#define CONFIG_SCSI_3W_9XXX_MODULE 1
+-#define CONFIG_VIDEO_KS0127_MODULE 1
+-#define CONFIG_MVMDIO_MODULE 1
+-#define CONFIG_SND_USB 1
+-#define CONFIG_LOGIG940_FF 1
+-#define CONFIG_VIDEOBUF2_MEMOPS_MODULE 1
+-#define CONFIG_RD_GZIP 1
+-#define CONFIG_TOUCHSCREEN_USB_E2I 1
+-#define CONFIG_ARCH_HAS_CPU_RELAX 1
+-#define CONFIG_HAVE_REGS_AND_STACK_ACCESS_API 1
+-#define CONFIG_BCMA_HOST_PCI_POSSIBLE 1
+-#define CONFIG_SENSORS_LTC4261_MODULE 1
+-#define CONFIG_MMC_SDRICOH_CS_MODULE 1
+-#define CONFIG_MISDN_W6692_MODULE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1
+-#define CONFIG_LIRC_BT829_MODULE 1
+-#define CONFIG_THRUSTMASTER_FF 1
+-#define CONFIG_LEDS_DELL_NETBOOKS_MODULE 1
+-#define CONFIG_TREE_RCU 1
+-#define CONFIG_PWM_SYSFS 1
+-#define CONFIG_I2C_MUX_GPIO_MODULE 1
+-#define CONFIG_SWIOTLB 1
+-#define CONFIG_SND_USB_CAIAQ_MODULE 1
+-#define CONFIG_USB_STORAGE_CYPRESS_ATACB_MODULE 1
+-#define CONFIG_EXT4_FS_SECURITY 1
+-#define CONFIG_SPEAKUP_SYNTH_DUMMY_MODULE 1
+-#define CONFIG_SCSI_MVUMI_MODULE 1
+-#define CONFIG_9P_FS_SECURITY 1
+-#define CONFIG_SOC_CAMERA_MT9M111_MODULE 1
+-#define CONFIG_BEFS_FS_MODULE 1
+-#define CONFIG_SND_ALI5451_MODULE 1
+-#define CONFIG_INFINIBAND_USER_MAD_MODULE 1
+-#define CONFIG_DX_SEP_MODULE 1
+-#define CONFIG_HID_ROCCAT_MODULE 1
+-#define CONFIG_NET_VENDOR_HP 1
+-#define CONFIG_F71808E_WDT_MODULE 1
+-#define CONFIG_INET_XFRM_MODE_TRANSPORT_MODULE 1
+-#define CONFIG_CRYPTO_MD5 1
+-#define CONFIG_VIDEO_CS53L32A_MODULE 1
+-#define CONFIG_IR_REDRAT3_MODULE 1
+-#define CONFIG_USB_GSPCA_VICAM_MODULE 1
+-#define CONFIG_TOUCHSCREEN_AD7879_SPI_MODULE 1
+-#define CONFIG_PCMCIA_HERMES_MODULE 1
+-#define CONFIG_TRANSPARENT_HUGEPAGE 1
+-#define CONFIG_USB_F_SS_LB_MODULE 1
+-#define CONFIG_PATA_CS5530_MODULE 1
+-#define CONFIG_ISCSI_TCP_MODULE 1
+-#define CONFIG_ATA_ACPI 1
+-#define CONFIG_NFSD_V3 1
+-#define CONFIG_PATA_ALI_MODULE 1
+-#define CONFIG_X86_EXTENDED_PLATFORM 1
+-#define CONFIG_ISDN_MPP 1
+-#define CONFIG_GPIO_JANZ_TTL_MODULE 1
+-#define CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE 0
+-#define CONFIG_USB_CHIPIDEA_MODULE 1
+-#define CONFIG_MFD_WL1273_CORE_MODULE 1
+-#define CONFIG_RT2800USB_RT53XX 1
+-#define CONFIG_HAVE_ARCH_KMEMCHECK 1
+-#define CONFIG_SND_ECHO3G_MODULE 1
+-#define CONFIG_MEDIA_TUNER_FC0011_MODULE 1
+-#define CONFIG_ACPI_PROCESSOR 1
+-#define CONFIG_XEN_SCRUB_PAGES 1
+-#define CONFIG_DVB_TDA10023_MODULE 1
+-#define CONFIG_MEDIA_TUNER_TEA5767_MODULE 1
+-#define CONFIG_BATMAN_ADV_MODULE 1
+-#define CONFIG_ISDN_DRV_AVMB1_AVM_CS_MODULE 1
+-#define CONFIG_HAVE_KVM 1
+-#define CONFIG_SND_FIREWIRE 1
+-#define CONFIG_VIDEOBUF_DVB_MODULE 1
+-#define CONFIG_PCCARD_MODULE 1
+-#define CONFIG_HAVE_GENERIC_HARDIRQS 1
+-#define CONFIG_USB_GSPCA_OV519_MODULE 1
+-#define CONFIG_BMP085_SPI_MODULE 1
+-#define CONFIG_USB_SERIAL_VIVOPAY_SERIAL_MODULE 1
+-#define CONFIG_BINFMT_ELF 1
+-#define CONFIG_RTC_DRV_RX4581_MODULE 1
+-#define CONFIG_SCSI_PROC_FS 1
+-#define CONFIG_PARIDE_PG_MODULE 1
+-#define CONFIG_I2C_HID_MODULE 1
+-#define CONFIG_MD_RAID456_MODULE 1
+-#define CONFIG_REGULATOR_PCF50633_MODULE 1
+-#define CONFIG_IIO_TRIGGER 1
+-#define CONFIG_FB_AUO_K190X_MODULE 1
+-#define CONFIG_JOYSTICK_IFORCE_USB 1
+-#define CONFIG_SCHED_TRACER 1
+-#define CONFIG_DSCC4_MODULE 1
+-#define CONFIG_CICADA_PHY 1
+-#define CONFIG_UDF_NLS 1
+-#define CONFIG_JOYSTICK_STINGER_MODULE 1
+-#define CONFIG_HAVE_PERF_REGS 1
+-#define CONFIG_CIFS_DEBUG 1
+-#define CONFIG_LEDS_LP55XX_COMMON_MODULE 1
+-#define CONFIG_HAVE_KVM_MSI 1
+-#define CONFIG_MEDIA_ANALOG_TV_SUPPORT 1
+-#define CONFIG_IP_PIMSM_V1 1
+-#define CONFIG_BCACHE_MODULE 1
+-#define CONFIG_INET6_AH_MODULE 1
+-#define CONFIG_SENSORS_MAX197_MODULE 1
+-#define CONFIG_TARGET_CORE_MODULE 1
+-#define CONFIG_AUFS_FS_MODULE 1
+-#define CONFIG_VLSI_FIR_MODULE 1
+-#define CONFIG_NFS_V4_SECURITY_LABEL 1
+-#define CONFIG_USB_SERIAL_MODULE 1
+-#define CONFIG_VIDEO_CX88_ALSA_MODULE 1
+-#define CONFIG_NET_VENDOR_ALTEON 1
+-#define CONFIG_SENSORS_GL518SM_MODULE 1
+-#define CONFIG_USB_MON_MODULE 1
+-#define CONFIG_COMEDI_CB_PCIMDAS_MODULE 1
+-#define CONFIG_VGASTATE_MODULE 1
+-#define CONFIG_REGULATOR_FIXED_VOLTAGE_MODULE 1
+-#define CONFIG_LCD_L4F00242T03_MODULE 1
+-#define CONFIG_TIMB_DMA_MODULE 1
+-#define CONFIG_SIGMATEL_FIR_MODULE 1
+-#define CONFIG_USB_SERIAL_SUUNTO_MODULE 1
+-#define CONFIG_VIDEO_SAA717X_MODULE 1
+-#define CONFIG_IP_NF_TARGET_ULOG_MODULE 1
+-#define CONFIG_KEYS 1
+-#define CONFIG_REGULATOR_TPS6507X_MODULE 1
+-#define CONFIG_BE2ISCSI_MODULE 1
+-#define CONFIG_INET_XFRM_TUNNEL_MODULE 1
+-#define CONFIG_RTC_DRV_FM3130_MODULE 1
+-#define CONFIG_IPMI_POWEROFF_MODULE 1
+-#define CONFIG_SND_VMASTER 1
+-#define CONFIG_NETFILTER_XT_MARK_MODULE 1
+-#define CONFIG_NETFILTER_XTABLES_MODULE 1
+-#define CONFIG_IP_VS_LBLC_MODULE 1
+-#define CONFIG_RESOURCE_COUNTERS 1
+-#define CONFIG_USB_ISP1760_HCD_MODULE 1
+-#define CONFIG_DVB_USB_OPERA1_MODULE 1
+-#define CONFIG_MFD_STMPE 1
+-#define CONFIG_LEDS_BD2802_MODULE 1
+-#define CONFIG_TOUCHSCREEN_MC13783_MODULE 1
+-#define CONFIG_KEYBOARD_STOWAWAY_MODULE 1
+-#define CONFIG_FB_RIVA_MODULE 1
+-#define CONFIG_SLABINFO 1
+-#define CONFIG_ATM_HE_MODULE 1
+-#define CONFIG_POWER_AVS 1
+-#define CONFIG_IPMI_SI_MODULE 1
+-#define CONFIG_USB_STORAGE_DATAFAB_MODULE 1
+-#define CONFIG_DVB_USB_AF9005_MODULE 1
+-#define CONFIG_MFD_RC5T583 1
+-#define CONFIG_TCP_CONG_VEGAS_MODULE 1
+-#define CONFIG_LEDS_88PM860X_MODULE 1
+-#define CONFIG_CRYPTO_USER_API_HASH_MODULE 1
+-#define CONFIG_TIMER_STATS 1
+-#define CONFIG_SENSORS_IBMPEX_MODULE 1
+-#define CONFIG_BOOT_PRINTK_DELAY 1
+-#define CONFIG_CHARGER_88PM860X_MODULE 1
+-#define CONFIG_IWLMVM_MODULE 1
+-#define CONFIG_SENSORS_ADM1026_MODULE 1
+-#define CONFIG_PATA_NINJA32_MODULE 1
+-#define CONFIG_KEYBOARD_TC3589X_MODULE 1
+-#define CONFIG_SENSORS_ADT7470_MODULE 1
+-#define CONFIG_PM_SLEEP_SMP 1
+-#define CONFIG_SPI_PXA2XX_PCI_MODULE 1
+-#define CONFIG_FB_PM3_MODULE 1
+-#define CONFIG_CRYPTO_HW 1
+-#define CONFIG_MAC80211_RC_MINSTREL_HT 1
+-#define CONFIG_USB_EG20T_MODULE 1
+-#define CONFIG_USB_STORAGE_KARMA_MODULE 1
+-#define CONFIG_TTPCI_EEPROM_MODULE 1
+-#define CONFIG_TOUCHSCREEN_CYTTSP4_SPI_MODULE 1
+-#define CONFIG_TEHUTI_MODULE 1
+-#define CONFIG_SIS900_MODULE 1
+-#define CONFIG_IIO_ST_MAGN_SPI_3AXIS_MODULE 1
+-#define CONFIG_PCSPKR_PLATFORM 1
+-#define CONFIG_MEGARAID_LEGACY_MODULE 1
+-#define CONFIG_CARDBUS 1
+-#define CONFIG_ATH9K_AHB 1
+-#define CONFIG_SENSORS_ISL29018_MODULE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1
+-#define CONFIG_HID_GREENASIA_MODULE 1
+-#define CONFIG_ORINOCO_USB_MODULE 1
+-#define CONFIG_TOUCHSCREEN_ILI210X_MODULE 1
+-#define CONFIG_XEN_ACPI_PROCESSOR 1
+-#define CONFIG_INTEGRITY_ASYMMETRIC_KEYS 1
+-#define CONFIG_SERIAL_RP2_NR_UARTS 32
+-#define CONFIG_BACKLIGHT_DA903X_MODULE 1
+-#define CONFIG_INTEL_POWERCLAMP_MODULE 1
+-#define CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB 2048
+-#define CONFIG_KEYBOARD_ADP5520_MODULE 1
+-#define CONFIG_SMS_USB_DRV_MODULE 1
+-#define CONFIG_ACPI_AC 1
+-#define CONFIG_HID_STEELSERIES_MODULE 1
+-#define CONFIG_JFFS2_FS_WRITEBUFFER 1
+-#define CONFIG_SPI_MASTER 1
+-#define CONFIG_USB_SERIAL_OPTICON_MODULE 1
+-#define CONFIG_RTL8180_MODULE 1
+-#define CONFIG_LEDS_RENESAS_TPU 1
+-#define CONFIG_IEEE802154_AT86RF230_MODULE 1
+-#define CONFIG_AD5504_MODULE 1
+-#define CONFIG_DVB_NXT200X_MODULE 1
+-#define CONFIG_SENSORS_LM87_MODULE 1
+-#define CONFIG_BLK_DEV_THROTTLING 1
+-#define CONFIG_VT_HW_CONSOLE_BINDING 1
+-#define CONFIG_AIX_PARTITION 1
+-#define CONFIG_CHARGER_SMB347_MODULE 1
+-#define CONFIG_VIDEO_TW9903_MODULE 1
+-#define CONFIG_NET_ACT_GACT_MODULE 1
+-#define CONFIG_SLIP_MODE_SLIP6 1
+-#define CONFIG_RTL8192E_MODULE 1
+-#define CONFIG_HID_GYRATION_MODULE 1
+-#define CONFIG_SND_SOC_AK4642_MODULE 1
+-#define CONFIG_SND_SOC_WM8994_MODULE 1
+-#define CONFIG_IRDA_CACHE_LAST_LSAP 1
+-#define CONFIG_SRAM 1
+-#define CONFIG_USB_WDM_MODULE 1
+-#define CONFIG_PATA_TOSHIBA_MODULE 1
+-#define CONFIG_BT_HCIBCM203X_MODULE 1
+-#define CONFIG_REGULATOR_WM8400_MODULE 1
+-#define CONFIG_THERMAL_HWMON 1
+-#define CONFIG_TOUCHSCREEN_USB_COMPOSITE_MODULE 1
+-#define CONFIG_I2C_MUX_PCA9541_MODULE 1
+-#define CONFIG_MAX1363_MODULE 1
+-#define CONFIG_SND_USB_HIFACE_MODULE 1
+-#define CONFIG_VIDEO_EM28XX_DVB_MODULE 1
+-#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1
+-#define CONFIG_HDLC_FR_MODULE 1
+-#define CONFIG_FB_ATY128_BACKLIGHT 1
+-#define CONFIG_XZ_DEC_X86 1
+-#define CONFIG_VIRT_CPU_ACCOUNTING 1
+-#define CONFIG_MLX5_INFINIBAND_MODULE 1
+-#define CONFIG_MAC80211_LEDS 1
+-#define CONFIG_INPUT_JOYDEV_MODULE 1
+-#define CONFIG_FB_MATROX_MAVEN_MODULE 1
+-#define CONFIG_SND_SOC_MAX9877_MODULE 1
+-#define CONFIG_KEYBOARD_LKKBD_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_TPROXY_MODULE 1
+-#define CONFIG_HIBERNATE_CALLBACKS 1
+-#define CONFIG_LEDS_MC13783_MODULE 1
+-#define CONFIG_SERIAL_8250_DW_MODULE 1
+-#define CONFIG_IP_DCCP_MODULE 1
+-#define CONFIG_LIBIPW_MODULE 1
+-#define CONFIG_FIREWIRE_OHCI_MODULE 1
+-#define CONFIG_USB_ACM_MODULE 1
+-#define CONFIG_COMEDI_ADL_PCI9118_MODULE 1
+-#define CONFIG_USB_RTL8150_MODULE 1
+-#define CONFIG_GPIO_MAX7300_MODULE 1
+-#define CONFIG_CRC16 1
+-#define CONFIG_USB_NET_AX8817X_MODULE 1
+-#define CONFIG_SND_EMU10K1_MODULE 1
+-#define CONFIG_GENERIC_CALIBRATE_DELAY 1
+-#define CONFIG_CRYPTO_GF128MUL_MODULE 1
+-#define CONFIG_NLS_ISO8859_6_MODULE 1
+-#define CONFIG_NET_CLS 1
+-#define CONFIG_ADF4350_MODULE 1
+-#define CONFIG_XFS_RT 1
+-#define CONFIG_COMEDI_S626_MODULE 1
+-#define CONFIG_SND_INDIGO_MODULE 1
+-#define CONFIG_UIO_PDRV_MODULE 1
+-#define CONFIG_AX25_MODULE 1
+-#define CONFIG_SND_YMFPCI_MODULE 1
+-#define CONFIG_TMPFS 1
+-#define CONFIG_MFD_LM3533_MODULE 1
+-#define CONFIG_HOSTAP_MODULE 1
+-#define CONFIG_SOC_CAMERA_OV5642_MODULE 1
+-#define CONFIG_ANON_INODES 1
+-#define CONFIG_USB_OHCI_HCD_PLATFORM 1
+-#define CONFIG_SND_SOC_WM8711_MODULE 1
+-#define CONFIG_SND_CS5535AUDIO_MODULE 1
+-#define CONFIG_VIDEO_EM28XX_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_936_MODULE 1
+-#define CONFIG_DRM_USB_MODULE 1
+-#define CONFIG_HAMACHI_MODULE 1
+-#define CONFIG_EXTCON_ARIZONA_MODULE 1
+-#define CONFIG_ET131X_MODULE 1
+-#define CONFIG_SND_SOC_SSM2518_MODULE 1
+-#define CONFIG_IR_ITE_CIR_MODULE 1
+-#define CONFIG_DVB_BUDGET_MODULE 1
+-#define CONFIG_FUTEX 1
+-#define CONFIG_CRYPTO_ANUBIS_MODULE 1
+-#define CONFIG_IP_PNP_DHCP 1
+-#define CONFIG_VIRTIO_PCI 1
+-#define CONFIG_HID_SENSOR_ALS_MODULE 1
+-#define CONFIG_GPIO_PCH_MODULE 1
+-#define CONFIG_MCP320X_MODULE 1
+-#define CONFIG_MISDN_HFCMULTI_MODULE 1
+-#define CONFIG_MMC_SPI_MODULE 1
+-#define CONFIG_MWAVE_MODULE 1
+-#define CONFIG_PCMCIA_3C574_MODULE 1
+-#define CONFIG_HISAX_AVM_A1_PCMCIA 1
+-#define CONFIG_USB_GSPCA_SQ930X_MODULE 1
+-#define CONFIG_RTL8192SE_MODULE 1
+-#define CONFIG_JOYSTICK_SPACEBALL_MODULE 1
+-#define CONFIG_REGMAP_I2C 1
+-#define CONFIG_AD5449_MODULE 1
+-#define CONFIG_USB_SERIAL_ZIO_MODULE 1
+-#define CONFIG_INPUT_MATRIXKMAP_MODULE 1
+-#define CONFIG_ATH9K_DEBUGFS 1
+-#define CONFIG_DVB_CXD2099_MODULE 1
+-#define CONFIG_NET_VENDOR_REALTEK 1
+-#define CONFIG_DVB_DM1105_MODULE 1
+-#define CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG 1
+-#define CONFIG_MFD_RDC321X_MODULE 1
+-#define CONFIG_AD5421_MODULE 1
+-#define CONFIG_JOYSTICK_XPAD_FF 1
+-#define CONFIG_NETFILTER_XT_TARGET_HL_MODULE 1
+-#define CONFIG_REGULATOR_LP8788 1
+-#define CONFIG_MEGARAID_SAS 1
+-#define CONFIG_PATA_HPT3X2N_MODULE 1
+-#define CONFIG_SND_SOC_MAX9768_MODULE 1
+-#define CONFIG_DVB_CORE_MODULE 1
+-#define CONFIG_NFSD_V2_ACL 1
+-#define CONFIG_COMEDI_ME_DAQ_MODULE 1
+-#define CONFIG_CAN_JANZ_ICAN3_MODULE 1
+-#define CONFIG_USB_NET2280_MODULE 1
+-#define CONFIG_ISL29003_MODULE 1
+-#define CONFIG_CRYPTO_USER_API_MODULE 1
+-#define CONFIG_RTC_HCTOSYS 1
+-#define CONFIG_I2C_OCORES_MODULE 1
+-#define CONFIG_SECURITY_NETWORK 1
+-#define CONFIG_FMC_CHARDEV_MODULE 1
+-#define CONFIG_SERIAL_CORE_CONSOLE 1
+-#define CONFIG_HOTPLUG_PCI_CPCI 1
+-#define CONFIG_HUGETLB_PAGE 1
+-#define CONFIG_MTD_SM_COMMON_MODULE 1
+-#define CONFIG_HW_RANDOM_TPM_MODULE 1
+-#define CONFIG_CIFS_WEAK_PW_HASH 1
+-#define CONFIG_TOUCHSCREEN_GUNZE_MODULE 1
+-#define CONFIG_SENSORS_LM78_MODULE 1
+-#define CONFIG_NET_VENDOR_EMULEX 1
+-#define CONFIG_WIZNET_W5100_MODULE 1
+-#define CONFIG_VIDEO_CQCAM_MODULE 1
+-#define CONFIG_REGMAP_IRQ 1
+-#define CONFIG_SENSORS_K10TEMP_MODULE 1
+-#define CONFIG_USB_HID_MODULE 1
+-#define CONFIG_MFD_MAX77686 1
+-#define CONFIG_DVB_USB_AF9015_MODULE 1
+-#define CONFIG_ISI_MODULE 1
+-#define CONFIG_UBIFS_FS_MODULE 1
+-#define CONFIG_PARIDE_PT_MODULE 1
+-#define CONFIG_RTL8192CU_MODULE 1
+-#define CONFIG_ATM_DRIVERS 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1
+-#define CONFIG_CRYPTO_TGR192_MODULE 1
+-#define CONFIG_BLK_DEV_RBD_MODULE 1
+-#define CONFIG_SENSORS_HMC5843_MODULE 1
+-#define CONFIG_SERIO_PS2MULT_MODULE 1
+-#define CONFIG_REGULATOR_TPS6105X_MODULE 1
+-#define CONFIG_USER_STACKTRACE_SUPPORT 1
+-#define CONFIG_MEGARAID_MAILBOX_MODULE 1
+-#define CONFIG_LANMEDIA_MODULE 1
+-#define CONFIG_IT8712F_WDT_MODULE 1
+-#define CONFIG_SLUB_DEBUG 1
+-#define CONFIG_RTC_DRV_M41T80_WDT 1
+-#define CONFIG_WIZNET_W5300_MODULE 1
+-#define CONFIG_COMEDI_NI_670X_MODULE 1
+-#define CONFIG_BLK_DEV_MD 1
+-#define CONFIG_UCS2_STRING 1
+-#define CONFIG_MMC_VUB300_MODULE 1
+-#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1
+-#define CONFIG_IP_SET_BITMAP_IP_MODULE 1
+-#define CONFIG_GPIO_VX855_MODULE 1
+-#define CONFIG_MAC_EMUMOUSEBTN_MODULE 1
+-#define CONFIG_RAPIDIO_CPS_XX 1
+-#define CONFIG_SND_SOC_WM8978_MODULE 1
+-#define CONFIG_DECNET_NF_GRABULATOR_MODULE 1
+-#define CONFIG_MTD_SBC_GXX_MODULE 1
+-#define CONFIG_NFC_NCI_SPI 1
+-#define CONFIG_USB_F_RNDIS_MODULE 1
+-#define CONFIG_NET_SCH_INGRESS_MODULE 1
+-#define CONFIG_BCMA_MODULE 1
+-#define CONFIG_DMADEVICES 1
+-#define CONFIG_XENFS_MODULE 1
+-#define CONFIG_SCA3000_MODULE 1
+-#define CONFIG_SCSI_AACRAID_MODULE 1
+-#define CONFIG_MISDN_HFCUSB_MODULE 1
+-#define CONFIG_ACPI_APEI_MEMORY_FAILURE 1
+-#define CONFIG_BPCTL_MODULE 1
+-#define CONFIG_BACKLIGHT_LM3639_MODULE 1
+-#define CONFIG_NF_CONNTRACK_EVENTS 1
+-#define CONFIG_MOUSE_PS2_ELANTECH 1
+-#define CONFIG_IPV6_NDISC_NODETYPE 1
+-#define CONFIG_HFS_FS_MODULE 1
+-#define CONFIG_SND_SOC_WM8985_MODULE 1
+-#define CONFIG_SND_SOC_WM0010_MODULE 1
+-#define CONFIG_RTC_DRV_MSM6242_MODULE 1
+-#define CONFIG_DVB_USB_TECHNISAT_USB2_MODULE 1
+-#define CONFIG_PCI_LABEL 1
+-#define CONFIG_CRYPTO_ZLIB_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_1251_MODULE 1
+-#define CONFIG_EDAC_X38_MODULE 1
+-#define CONFIG_FANOTIFY 1
+-#define CONFIG_SPI_BUTTERFLY_MODULE 1
+-#define CONFIG_ISDN_CAPI_CAPIDRV_MODULE 1
+-#define CONFIG_SONYPI_COMPAT 1
+-#define CONFIG_IP_VS_PROTO_SCTP 1
+-#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1
+-#define CONFIG_WLAGS49_H2_MODULE 1
+-#define CONFIG_SP5100_TCO_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_CONNLABEL_MODULE 1
+-#define CONFIG_SATA_SIL_MODULE 1
+-#define CONFIG_ALTERA_STAPL_MODULE 1
+-#define CONFIG_CGROUP_SCHED 1
+-#define CONFIG_SND_HDA_RECONFIG 1
+-#define CONFIG_SYSVIPC 1
+-#define CONFIG_COMEDI_NI_LABPC_CS_MODULE 1
+-#define CONFIG_HOSTAP_PLX_MODULE 1
+-#define CONFIG_CRYPTO_PCOMP2 1
+-#define CONFIG_USB_CONFIGFS_ECM_SUBSET 1
+-#define CONFIG_HAVE_DEBUG_KMEMLEAK 1
+-#define CONFIG_JOYSTICK_INTERACT_MODULE 1
+-#define CONFIG_SMSC911X_MODULE 1
+-#define CONFIG_DVB_TDA10071_MODULE 1
+-#define CONFIG_HDLC_CISCO_MODULE 1
+-#define CONFIG_MLX4_INFINIBAND_MODULE 1
+-#define CONFIG_DVB_OR51211_MODULE 1
+-#define CONFIG_RT2X00_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_863_MODULE 1
+-#define CONFIG_SND_DESIGNWARE_I2S_MODULE 1
+-#define CONFIG_SENSORS_ADT7X10_MODULE 1
+-#define CONFIG_USB_G_HID_MODULE 1
+-#define CONFIG_KEYBOARD_GPIO_MODULE 1
+-#define CONFIG_NF_CONNTRACK_FTP_MODULE 1
+-#define CONFIG_DRM_SAVAGE_MODULE 1
+-#define CONFIG_CHELSIO_T4_MODULE 1
+-#define CONFIG_MODULES 1
+-#define CONFIG_IP_NF_MATCH_ECN_MODULE 1
+-#define CONFIG_USB_CONFIGFS_PHONET 1
+-#define CONFIG_USB_GADGET_MODULE 1
+-#define CONFIG_REGULATOR_MAX8660_MODULE 1
+-#define CONFIG_EEPROM_LEGACY_MODULE 1
+-#define CONFIG_INFINIBAND_NES_MODULE 1
+-#define CONFIG_FB_IMSTT 1
+-#define CONFIG_USB_GSPCA_SPCA506_MODULE 1
+-#define CONFIG_CAN_CC770_PLATFORM_MODULE 1
+-#define CONFIG_PATA_ARTOP_MODULE 1
+-#define CONFIG_KEYBOARD_NEWTON_MODULE 1
+-#define CONFIG_CONTEXT_TRACKING 1
+-#define CONFIG_HARDLOCKUP_DETECTOR 1
+-#define CONFIG_VIDEO_CX88_DVB_MODULE 1
+-#define CONFIG_GPIO_DA9055_MODULE 1
+-#define CONFIG_DT3155_STREAMING 1
+-#define CONFIG_VIDEO_EM28XX_ALSA_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MXL5005S_MODULE 1
+-#define CONFIG_USB_HIDDEV 1
+-#define CONFIG_INFINIBAND_IPOIB_MODULE 1
+-#define CONFIG_MFD_TC3589X 1
+-#define CONFIG_SENSORS_APDS990X_MODULE 1
+-#define CONFIG_USB_ETH_RNDIS 1
+-#define CONFIG_AD7606_IFACE_PARALLEL_MODULE 1
+-#define CONFIG_DVB_SI21XX_MODULE 1
+-#define CONFIG_PATA_WINBOND_MODULE 1
+-#define CONFIG_SOUND_MODULE 1
+-#define CONFIG_TOUCHSCREEN_AUO_PIXCIR_MODULE 1
+-#define CONFIG_JOLIET 1
+-#define CONFIG_WLCORE_SPI_MODULE 1
+-#define CONFIG_DVB_USB_VP7045_MODULE 1
+-#define CONFIG_USB_NET2272_DMA 1
+-#define CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE 1
+-#define CONFIG_KPROBES_ON_FTRACE 1
+-#define CONFIG_BNX2X_MODULE 1
+-#define CONFIG_MEDIA_TUNER_TDA9887_MODULE 1
+-#define CONFIG_ADVANTECH_WDT_MODULE 1
+-#define CONFIG_CPU_IDLE_MULTIPLE_DRIVERS 1
+-#define CONFIG_AUDIT_WATCH 1
+-#define CONFIG_CRYPTO_TEA_MODULE 1
+-#define CONFIG_AD5624R_SPI_MODULE 1
+-#define CONFIG_ARCH_HIBERNATION_POSSIBLE 1
+-#define CONFIG_KVM_APIC_ARCHITECTURE 1
+-#define CONFIG_SND_SOC_SI476X_MODULE 1
+-#define CONFIG_DVB_USB_LME2510_MODULE 1
+-#define CONFIG_ATMEL_SSC_MODULE 1
+-#define CONFIG_PDC_ADMA_MODULE 1
+-#define CONFIG_SND_VXPOCKET_MODULE 1
+-#define CONFIG_UNIX 1
+-#define CONFIG_USB_CATC_MODULE 1
+-#define CONFIG_QNX6FS_FS_MODULE 1
+-#define CONFIG_SCSI_SRP_MODULE 1
+-#define CONFIG_VIDEO_TLG2300_MODULE 1
+-#define CONFIG_NO_HZ_COMMON 1
+-#define CONFIG_MINIX_FS_MODULE 1
+-#define CONFIG_BRCMSMAC_MODULE 1
+-#define CONFIG_XEN_DEV_EVTCHN_MODULE 1
+-#define CONFIG_HAVE_CLK 1
+-#define CONFIG_CRYPTO_HASH2 1
+-#define CONFIG_CARL9170_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_CONEXANT 1
+-#define CONFIG_CRYPTO_LZ4HC_MODULE 1
+-#define CONFIG_THERMAL_GOV_STEP_WISE 1
+-#define CONFIG_SND_RME9652_MODULE 1
+-#define CONFIG_MTD_ABSENT_MODULE 1
+-#define CONFIG_TOUCHSCREEN_88PM860X_MODULE 1
+-#define CONFIG_DEFAULT_HOSTNAME "(none)"
+-#define CONFIG_COMMON_CLK_SI5351_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_035_MODULE 1
+-#define CONFIG_NLS_KOI8_R_MODULE 1
+-#define CONFIG_SENSORS_ADT7410_MODULE 1
+-#define CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS 2
+-#define CONFIG_SND_SOC_AK4671_MODULE 1
+-#define CONFIG_USB_GSPCA_SONIXB_MODULE 1
+-#define CONFIG_DVB_USB_RTL28XXU_MODULE 1
+-#define CONFIG_CARDMAN_4040_MODULE 1
+-#define CONFIG_MMC_REALTEK_PCI_MODULE 1
+-#define CONFIG_USB_STORAGE_ISD200_MODULE 1
+-#define CONFIG_CPU_FREQ_GOV_POWERSAVE 1
+-#define CONFIG_USB_GSPCA_OV534_9_MODULE 1
+-#define CONFIG_RIONET_MODULE 1
+-#define CONFIG_NFS_FS_MODULE 1
+-#define CONFIG_MTD_SC520CDP_MODULE 1
+-#define CONFIG_CRYPTO_TWOFISH_X86_64_MODULE 1
+-#define CONFIG_USB_NET_SMSC95XX_MODULE 1
+-#define CONFIG_CRASH_DUMP 1
+-#define CONFIG_LEDS_LM3533_MODULE 1
+-#define CONFIG_INFINIBAND_ADDR_TRANS 1
+-#define CONFIG_BLK_DEV_IO_TRACE 1
+-#define CONFIG_XPS 1
+-#define CONFIG_COMEDI_8255_PCI_MODULE 1
+-#define CONFIG_NET_ACT_SKBEDIT_MODULE 1
+-#define CONFIG_COMEDI_ADV_PCI1723_MODULE 1
+-#define CONFIG_INET_ESP_MODULE 1
+-#define CONFIG_SECURITY_SELINUX_DEVELOP 1
+-#define CONFIG_AD7816_MODULE 1
+-#define CONFIG_HPET_TIMER 1
+-#define CONFIG_LCD_TDO24M_MODULE 1
+-#define CONFIG_BCH_CONST_M 14
+-#define CONFIG_LZ4_DECOMPRESS 1
+-#define CONFIG_NFC_HCI_MODULE 1
+-#define CONFIG_GPIO_MAX732X_MODULE 1
+-#define CONFIG_HSI_MODULE 1
+-#define CONFIG_INTEL_MID_DMAC_MODULE 1
+-#define CONFIG_NF_CONNTRACK_ZONES 1
+-#define CONFIG_NF_CONNTRACK_IPV6_MODULE 1
+-#define CONFIG_FONT_SUPPORT 1
+-#define CONFIG_MD 1
+-#define CONFIG_CRYPTO_ALGAPI 1
+-#define CONFIG_FDDI 1
+-#define CONFIG_SENSORS_VT8231_MODULE 1
+-#define CONFIG_DVB_BUDGET_CI_MODULE 1
+-#define CONFIG_PARIDE_FIT3_MODULE 1
+-#define CONFIG_COMEDI_KE_COUNTER_MODULE 1
+-#define CONFIG_EDAC_I3200_MODULE 1
+-#define CONFIG_INPUT_KXTJ9_MODULE 1
+-#define CONFIG_BSD_PROCESS_ACCT_V3 1
+-#define CONFIG_NET_VENDOR_WIZNET 1
+-#define CONFIG_SOC_CAMERA_PLATFORM_MODULE 1
+-#define CONFIG_SCSI_DMX3191D_MODULE 1
+-#define CONFIG_USB_G_DBGP_MODULE 1
+-#define CONFIG_BRIDGE_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MODULE 1
+-#define CONFIG_SND_SOC_JZ4740_CODEC_MODULE 1
+-#define CONFIG_TABLET_USB_GTCO_MODULE 1
+-#define CONFIG_AD2S90_MODULE 1
+-#define CONFIG_RAPIDIO_TSI57X 1
+-#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1
+-#define CONFIG_EEPROM_AT25_MODULE 1
+-#define CONFIG_SND_SOC_AD1836_MODULE 1
+-#define CONFIG_RD_BZIP2 1
+-#define CONFIG_MFD_VIPERBOARD_MODULE 1
+-#define CONFIG_INPUT_UINPUT 1
+-#define CONFIG_SERIAL_ARC_NR_PORTS 1
+-#define CONFIG_NETFILTER_XT_TARGET_CHECKSUM_MODULE 1
+-#define CONFIG_CHARGER_TPS65090_MODULE 1
+-#define CONFIG_LEDS_TRIGGER_GPIO_MODULE 1
+-#define CONFIG_RTLWIFI_USB_MODULE 1
+-#define CONFIG_AUFS_BRANCH_MAX_127 1
+-#define CONFIG_TCG_ATMEL_MODULE 1
+-#define CONFIG_ARCH_SUPPORTS_MSI 1
+-#define CONFIG_DVB_MB86A16_MODULE 1
+-#define CONFIG_MEDIA_TUNER_SIMPLE_MODULE 1
+-#define CONFIG_SND_OXYGEN_MODULE 1
+-#define CONFIG_PCH_GBE_MODULE 1
+-#define CONFIG_KEYBOARD_ATKBD 1
+-#define CONFIG_SCSI_QLA_ISCSI_MODULE 1
+-#define CONFIG_AD5446_MODULE 1
+-#define CONFIG_HAVE_MEMBLOCK_NODE_MAP 1
+-#define CONFIG_X86_PLATFORM_DEVICES 1
+-#define CONFIG_IIO_ST_MAGN_I2C_3AXIS_MODULE 1
+-#define CONFIG_NET_IP_TUNNEL_MODULE 1
+-#define CONFIG_WANXL_MODULE 1
+-#define CONFIG_MTD_CFI_I1 1
+-#define CONFIG_NF_NAT_MODULE 1
+-#define CONFIG_LEDS_PWM_MODULE 1
+-#define CONFIG_W1_SLAVE_DS2780_MODULE 1
+-#define CONFIG_MAX_RAW_DEVS 256
+-#define CONFIG_UBIFS_FS_ZLIB 1
+-#define CONFIG_W83877F_WDT_MODULE 1
+-#define CONFIG_WAFER_WDT_MODULE 1
+-#define CONFIG_USB_U132_HCD_MODULE 1
+-#define CONFIG_VIDEO_UPD64031A_MODULE 1
+-#define CONFIG_BATTERY_88PM860X_MODULE 1
+-#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1
+-#define CONFIG_BLK_DEV_INTEGRITY 1
+-#define CONFIG_DVB_USB_AZ6027_MODULE 1
+-#define CONFIG_NET_VENDOR_OKI 1
+-#define CONFIG_MOUSE_BCM5974_MODULE 1
+-#define CONFIG_CPU_IDLE 1
+-#define CONFIG_NTB_MODULE 1
+-#define CONFIG_IP6_NF_MATCH_RPFILTER_MODULE 1
+-#define CONFIG_NFS_COMMON 1
+-#define CONFIG_CHR_DEV_SCH_MODULE 1
+-#define CONFIG_REGULATOR 1
+-#define CONFIG_FAIR_GROUP_SCHED 1
+-#define CONFIG_SENSORS_HIH6130_MODULE 1
+-#define CONFIG_RT2800USB_MODULE 1
+-#define CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 1
+-#define CONFIG_BATTERY_SBS_MODULE 1
+-#define CONFIG_CRYPTO_HASH 1
+-#define CONFIG_FB_GOLDFISH_MODULE 1
+-#define CONFIG_WIMAX_GDM72XX_MODULE 1
+-#define CONFIG_EFI_PARTITION 1
+-#define CONFIG_PROBE_EVENTS 1
+-#define CONFIG_SSB_PCMCIAHOST_POSSIBLE 1
+-#define CONFIG_INFINIBAND_AMSO1100_MODULE 1
+-#define CONFIG_TRACE_CLOCK 1
+-#define CONFIG_TCG_TIS_I2C_INFINEON_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_HDMI 1
+-#define CONFIG_BCMA_BLOCKIO 1
+-#define CONFIG_MODULE_SIG_HASH "sha512"
+-#define CONFIG_LOG_BUF_SHIFT 18
+-#define CONFIG_PATA_IT8213_MODULE 1
+-#define CONFIG_MEMORY_HOTREMOVE 1
+-#define CONFIG_PM_NOTIFIER_ERROR_INJECT_MODULE 1
+-#define CONFIG_RAPIDIO_CPS_GEN2 1
+-#define CONFIG_SND_CMIPCI_MODULE 1
+-#define CONFIG_ACPI_WMI_MODULE 1
+-#define CONFIG_HPET 1
+-#define CONFIG_NLS_CODEPAGE_857_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_DSCP_MODULE 1
+-#define CONFIG_SND_EMU10K1X_MODULE 1
+-#define CONFIG_EXTRA_FIRMWARE ""
+-#define CONFIG_TCG_TPM 1
+-#define CONFIG_NET_VENDOR_8390 1
+-#define CONFIG_MFD_WM5102 1
+-#define CONFIG_LEDS_LP5562_MODULE 1
+-#define CONFIG_IPV6_MROUTE 1
+-#define CONFIG_XEN_PCIDEV_BACKEND_MODULE 1
+-#define CONFIG_PROC_EVENTS 1
+-#define CONFIG_ACPI_VIDEO_MODULE 1
+-#define CONFIG_VIRT_TO_BUS 1
+-#define CONFIG_VFAT_FS 1
+-#define CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE 1
+-#define CONFIG_MUSB_PIO_ONLY 1
+-#define CONFIG_IIO_ST_GYRO_SPI_3AXIS_MODULE 1
+-#define CONFIG_EDAC_I5000_MODULE 1
+-#define CONFIG_PID_NS 1
+-#define CONFIG_MD_RAID1_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_2200_MODULE 1
+-#define CONFIG_REGULATOR_S2MPS11_MODULE 1
+-#define CONFIG_CRYPTO_VMAC_MODULE 1
+-#define CONFIG_AD5930_MODULE 1
+-#define CONFIG_SENSORS_ACPI_POWER_MODULE 1
+-#define CONFIG_KEXEC 1
+-#define CONFIG_ACPI_CMPC_MODULE 1
+-#define CONFIG_RADIO_TEF6862_MODULE 1
+-#define CONFIG_CRC32_SLICEBY8 1
+-#define CONFIG_FB_DDC_MODULE 1
+-#define CONFIG_COMEDI_DAS08_MODULE 1
+-#define CONFIG_USB_LIBCOMPOSITE_MODULE 1
+-#define CONFIG_SCSI_MPT2SAS_MODULE 1
+-#define CONFIG_HVC_XEN 1
+-#define CONFIG_UWB_WHCI_MODULE 1
+-#define CONFIG_TOUCHSCREEN_WM9713 1
+-#define CONFIG_VIDEO_HDPVR_MODULE 1
+-#define CONFIG_OLD_BELKIN_DONGLE_MODULE 1
+-#define CONFIG_MFD_TPS65912 1
+-#define CONFIG_ROMFS_ON_BLOCK 1
+-#define CONFIG_EDAC_AMD64_MODULE 1
+-#define CONFIG_NET_SB1000_MODULE 1
+-#define CONFIG_GPIO_ARIZONA_MODULE 1
+-#define CONFIG_HERMES_CACHE_FW_ON_INIT 1
+-#define CONFIG_BLK_DEV_SR 1
+-#define CONFIG_CPU_RMAP 1
+-#define CONFIG_SND_HWDEP_MODULE 1
+-#define CONFIG_MODULE_SIG_SHA512 1
+-#define CONFIG_X86_X32 1
+-#define CONFIG_GENERIC_CPU 1
+-#define CONFIG_GIGASET_M101_MODULE 1
+-#define CONFIG_ISDN_DIVAS_PRIPCI 1
+-#define CONFIG_SND_LAYLA20_MODULE 1
+-#define CONFIG_AHCI_IMX_MODULE 1
+-#define CONFIG_BLK_DEV_LOOP 1
+-#define CONFIG_DVB_BT8XX_MODULE 1
+-#define CONFIG_IPMI_HANDLER_MODULE 1
+-#define CONFIG_LEDS_LM3642_MODULE 1
+-#define CONFIG_B44_MODULE 1
+-#define CONFIG_DEFAULT_HUNG_TASK_TIMEOUT 120
+-#define CONFIG_SYSV_FS_MODULE 1
+-#define CONFIG_ATMEL_MODULE 1
+-#define CONFIG_SENSORS_THMC50_MODULE 1
+-#define CONFIG_ARCH_HIBERNATION_HEADER 1
+-#define CONFIG_HAVE_OPTPROBES 1
+-#define CONFIG_HAVE_FENTRY 1
+-#define CONFIG_ATM_AMBASSADOR_MODULE 1
+-#define CONFIG_L2TP_ETH_MODULE 1
+-#define CONFIG_COMEDI_ADDI_WATCHDOG_MODULE 1
+-#define CONFIG_PATA_ATIIXP_MODULE 1
+-#define CONFIG_I8K_MODULE 1
+-#define CONFIG_SCSI_QLOGIC_1280_MODULE 1
+-#define CONFIG_HYPERV_UTILS_MODULE 1
+-#define CONFIG_SYNCLINK_GT_MODULE 1
+-#define CONFIG_CFQ_GROUP_IOSCHED 1
+-#define CONFIG_NF_NAT_IRC_MODULE 1
+-#define CONFIG_RAPIDIO_TSI568 1
+-#define CONFIG_60XX_WDT_MODULE 1
+-#define CONFIG_MEDIA_TUNER_XC2028_MODULE 1
+-#define CONFIG_INPUT_MISC 1
+-#define CONFIG_SND_COMPRESS_OFFLOAD_MODULE 1
+-#define CONFIG_IR_NUVOTON_MODULE 1
+-#define CONFIG_SENSORS_SCH5627_MODULE 1
+-#define CONFIG_ADIS16080_MODULE 1
+-#define CONFIG_I2C_AMD756_MODULE 1
+-#define CONFIG_E1000E_MODULE 1
+-#define CONFIG_MFD_LP8788 1
+-#define CONFIG_DNET_MODULE 1
+-#define CONFIG_CRYPTO_CAST6_AVX_X86_64_MODULE 1
+-#define CONFIG_DVB_STV0288_MODULE 1
+-#define CONFIG_USB_SL811_CS_MODULE 1
+-#define CONFIG_RTC_DRV_PCAP_MODULE 1
+-#define CONFIG_SOC_CAMERA_MODULE 1
+-#define CONFIG_SUSPEND 1
+-#define CONFIG_SUNRPC_XPRT_RDMA_MODULE 1
+-#define CONFIG_CROSS_MEMORY_ATTACH 1
+-#define CONFIG_MTD_NAND_ECC_MODULE 1
+-#define CONFIG_CRYPTO_CBC 1
+-#define CONFIG_SENSORS_LM93_MODULE 1
+-#define CONFIG_PARIDE_ON20_MODULE 1
+-#define CONFIG_ZCACHE 1
+-#define CONFIG_BT_CMTP_MODULE 1
+-#define CONFIG_VIDEO_ZORAN_LML33R10_MODULE 1
+-#define CONFIG_KS0108_DELAY 2
+-#define CONFIG_VIDEO_CX88_VP3054_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_HMARK_MODULE 1
+-#define CONFIG_BCM_WIMAX_MODULE 1
+-#define CONFIG_INPUT_MMA8450_MODULE 1
+-#define CONFIG_MRP_MODULE 1
+-#define CONFIG_I8253_LOCK 1
+-#define CONFIG_SMSC_SCH311X_WDT_MODULE 1
+-#define CONFIG_AK8975_MODULE 1
+-#define CONFIG_AIC79XX_CMDS_PER_DEVICE 32
+-#define CONFIG_IP6_NF_MATCH_RT_MODULE 1
+-#define CONFIG_SCSI_IPR_MODULE 1
+-#define CONFIG_SERIAL_8250_RUNTIME_UARTS 32
+-#define CONFIG_NS83820_MODULE 1
+-#define CONFIG_REGULATOR_MAX77686_MODULE 1
+-#define CONFIG_AD9852_MODULE 1
+-#define CONFIG_DRM_SIS_MODULE 1
+-#define CONFIG_KPROBES 1
+-#define CONFIG_FS_MBCACHE 1
+-#define CONFIG_SENSORS_JC42_MODULE 1
+-#define CONFIG_MD_MULTIPATH_MODULE 1
+-#define CONFIG_DS1682_MODULE 1
+-#define CONFIG_MFD_AS3711 1
+-#define CONFIG_GFS2_FS_MODULE 1
+-#define CONFIG_MEDIA_TUNER_TUA9001_MODULE 1
+-#define CONFIG_RTC_CLASS 1
+-#define CONFIG_DVB_TUNER_DIB0070_MODULE 1
+-#define CONFIG_NCPFS_NLS 1
+-#define CONFIG_FB_MB862XX_PCI_GDC 1
+-#define CONFIG_CRC7_MODULE 1
+-#define CONFIG_SLICOSS_MODULE 1
+-#define CONFIG_SENSORS_LTC4215_MODULE 1
+-#define CONFIG_KVM_AMD_MODULE 1
+-#define CONFIG_NET_CLS_TCINDEX_MODULE 1
+-#define CONFIG_USB_EMI26_MODULE 1
+-#define CONFIG_IP_VS_PROTO_ESP 1
+-#define CONFIG_HAVE_LATENCYTOP_SUPPORT 1
+-#define CONFIG_PCNET32_MODULE 1
+-#define CONFIG_MEDIA_TUNER_IT913X_MODULE 1
+-#define CONFIG_GIGASET_I4L 1
+-#define CONFIG_MWIFIEX_USB_MODULE 1
+-#define CONFIG_SAMSUNG_Q10_MODULE 1
+-#define CONFIG_SND_SOC_AK4641_MODULE 1
+-#define CONFIG_TMPFS_XATTR 1
+-#define CONFIG_SND_SOC_WM8993_MODULE 1
+-#define CONFIG_EDAC_I82975X_MODULE 1
+-#define CONFIG_PCMCIA_NMCLAN_MODULE 1
+-#define CONFIG_FB_UVESA_MODULE 1
+-#define CONFIG_AUFS_BR_FUSE 1
+-#define CONFIG_LCD_ILI922X_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TSC2007_MODULE 1
+-#define CONFIG_USB_RENESAS_USBHS_MODULE 1
+-#define CONFIG_SND_RME96_MODULE 1
+-#define CONFIG_DCA_MODULE 1
+-#define CONFIG_CAN_KVASER_USB_MODULE 1
+-#define CONFIG_I2C_ALI1535_MODULE 1
+-#define CONFIG_I2C_I801_MODULE 1
+-#define CONFIG_BLK_DEV_UMEM_MODULE 1
+-#define CONFIG_MTD_NAND_CAFE_MODULE 1
+-#define CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS 16
+-#define CONFIG_W1_MODULE 1
+-#define CONFIG_VIDEO_SAA7134_ALSA_MODULE 1
+-#define CONFIG_RT2800PCI_MODULE 1
+-#define CONFIG_USB_GSPCA_VC032X_MODULE 1
+-#define CONFIG_OPENVSWITCH_GRE 1
+-#define CONFIG_PCMCIA_RAYCS_MODULE 1
+-#define CONFIG_IOMMU_HELPER 1
+-#define CONFIG_DVB_ISL6421_MODULE 1
+-#define CONFIG_RTC_DRV_DS1374_MODULE 1
+-#define CONFIG_MICROCODE_OLD_INTERFACE 1
+-#define CONFIG_AUFS_INO_T_64 1
+-#define CONFIG_RTC_DRV_BQ4802_MODULE 1
+-#define CONFIG_TMD_HERMES_MODULE 1
+-#define CONFIG_PATA_ACPI_MODULE 1
+-#define CONFIG_GENERIC_TRACER 1
+-#define CONFIG_NLS_ISO8859_5_MODULE 1
+-#define CONFIG_IP_VS_WLC_MODULE 1
+-#define CONFIG_HAVE_FUNCTION_TRACER 1
+-#define CONFIG_ADE7758_MODULE 1
+-#define CONFIG_NF_NAT_TFTP_MODULE 1
+-#define CONFIG_SND_SOC_ADS117X_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_MULTIPORT_MODULE 1
+-#define CONFIG_CHARGER_MANAGER 1
+-#define CONFIG_NET_SCH_NETEM_MODULE 1
+-#define CONFIG_ACPI_PROCESSOR_AGGREGATOR_MODULE 1
+-#define CONFIG_USB_STORAGE_REALTEK_MODULE 1
+-#define CONFIG_CRYPTO_CAMELLIA_MODULE 1
+-#define CONFIG_SND_EMU10K1_SEQ_MODULE 1
+-#define CONFIG_RTC_DRV_DS1307_MODULE 1
+-#define CONFIG_I2C_SIS630_MODULE 1
+-#define CONFIG_ARCH_SELECT_MEMORY_MODEL 1
+-#define CONFIG_NFSD_V4 1
+-#define CONFIG_I2C_SI4713_MODULE 1
+-#define CONFIG_AUFS_EXPORT 1
+-#define CONFIG_PMBUS_MODULE 1
+-#define CONFIG_VIDEO_MEYE_MODULE 1
+-#define CONFIG_TCP_CONG_ILLINOIS_MODULE 1
+-#define CONFIG_ZEROPLUS_FF 1
+-#define CONFIG_NETFILTER_XT_TARGET_REDIRECT_MODULE 1
+-#define CONFIG_CRYPTO_MANAGER2 1
+-#define CONFIG_INFINIBAND_QIB_DCA 1
+-#define CONFIG_USB_GADGET_VBUS_DRAW 2
+-#define CONFIG_NFC_MEI_PHY_MODULE 1
+-#define CONFIG_NET_VENDOR_MYRI 1
+-#define CONFIG_DRAGONRISE_FF 1
+-#define CONFIG_CLZ_TAB 1
+-#define CONFIG_TOUCHSCREEN_USB_3M 1
+-#define CONFIG_TOUCHSCREEN_USB_EGALAX 1
+-#define CONFIG_BRIDGE_EBT_DNAT_MODULE 1
+-#define CONFIG_GENERIC_PCI_IOMAP 1
+-#define CONFIG_NETFILTER_XT_TARGET_LOG_MODULE 1
+-#define CONFIG_SLUB 1
+-#define CONFIG_SENSORS_AD7418_MODULE 1
+-#define CONFIG_CONFIGFS_FS_MODULE 1
+-#define CONFIG_CRYPTO_TEST_MODULE 1
+-#define CONFIG_MTD_UBI_MODULE 1
+-#define CONFIG_MFD_SMSC 1
+-#define CONFIG_XZ_DEC_BCJ 1
+-#define CONFIG_SLIP_MODULE 1
+-#define CONFIG_PM_SLEEP 1
+-#define CONFIG_F2FS_FS_XATTR 1
+-#define CONFIG_SENSORS_FAM15H_POWER_MODULE 1
+-#define CONFIG_I2C 1
+-#define CONFIG_MFD_WM5110 1
+-#define CONFIG_COMPAL_LAPTOP_MODULE 1
+-#define CONFIG_JFFS2_ZLIB 1
+-#define CONFIG_SCSI_CHELSIO_FCOE_MODULE 1
+-#define CONFIG_PCMCIA_PCNET_MODULE 1
+-#define CONFIG_EDAC_DECODE_MCE_MODULE 1
+-#define CONFIG_SENSORS_VT1211_MODULE 1
+-#define CONFIG_B44_PCI 1
+-#define CONFIG_PPP_MULTILINK 1
+-#define CONFIG_MTD_ONENAND_GENERIC_MODULE 1
+-#define CONFIG_IPACK_BUS_MODULE 1
+-#define CONFIG_BINFMT_SCRIPT 1
+-#define CONFIG_EFI_STUB 1
+-#define CONFIG_SATA_PROMISE_MODULE 1
+-#define CONFIG_PARPORT_1284 1
+-#define CONFIG_MOUSE_PS2_CYPRESS 1
+-#define CONFIG_VIDEO_CX25840_MODULE 1
+-#define CONFIG_GENERIC_PENDING_IRQ 1
+-#define CONFIG_I2C_AMD756_S4882_MODULE 1
+-#define CONFIG_PARPORT_PC_MODULE 1
+-#define CONFIG_PPS_CLIENT_GPIO_MODULE 1
+-#define CONFIG_EARLY_PRINTK_DBGP 1
+-#define CONFIG_VIDEO_ADV7175_MODULE 1
+-#define CONFIG_SCSI_SRP_ATTRS_MODULE 1
+-#define CONFIG_FRAME_POINTER 1
+-#define CONFIG_NET_IPGRE_BROADCAST 1
+-#define CONFIG_BT_HIDP_MODULE 1
+-#define CONFIG_PD6729_MODULE 1
+-#define CONFIG_KS8851_MLL_MODULE 1
+-#define CONFIG_VIDEO_CX231XX_RC 1
+-#define CONFIG_MOUSE_PS2_LOGIPS2PP 1
+-#define CONFIG_SMC_IRCC_FIR_MODULE 1
+-#define CONFIG_SND_PCXHR_MODULE 1
+-#define CONFIG_UFS_FS_MODULE 1
+-#define CONFIG_REGULATOR_TPS65217_MODULE 1
+-#define CONFIG_VM_EVENT_COUNTERS 1
+-#define CONFIG_MEDIA_COMMON_OPTIONS 1
+-#define CONFIG_NFC_MICROREAD_MODULE 1
+-#define CONFIG_RELAY 1
+-#define CONFIG_AD9834_MODULE 1
+-#define CONFIG_BATTERY_GOLDFISH_MODULE 1
+-#define CONFIG_IWLDVM_MODULE 1
+-#define CONFIG_HAVE_MMIOTRACE_SUPPORT 1
+-#define CONFIG_ASUS_NB_WMI_MODULE 1
+-#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1
+-#define CONFIG_HISAX_NETJET 1
+-#define CONFIG_CRYPTO_ECB 1
+-#define CONFIG_SND_SOC_TLV320AIC32X4_MODULE 1
+-#define CONFIG_USB_GSPCA_ETOMS_MODULE 1
+-#define CONFIG_CRYPTO_SHA512_SSSE3_MODULE 1
+-#define CONFIG_REGULATOR_MAX77693_MODULE 1
+-#define CONFIG_MFD_PALMAS 1
+-#define CONFIG_PM_STD_PARTITION ""
+-#define CONFIG_SQUASHFS_LZO 1
+-#define CONFIG_SND_DYNAMIC_MINORS 1
+-#define CONFIG_FUJITSU_LAPTOP_MODULE 1
+-#define CONFIG_TCM_FILEIO_MODULE 1
+-#define CONFIG_NET_VENDOR_XIRCOM 1
+-#define CONFIG_GENERIC_FIND_FIRST_BIT 1
+-#define CONFIG_SCSI_STEX_MODULE 1
+-#define CONFIG_HOTPLUG_PCI_CPCI_ZT5550_MODULE 1
+-#define CONFIG_BT_HCIUART_ATH3K 1
+-#define CONFIG_NF_CONNTRACK_AMANDA_MODULE 1
+-#define CONFIG_SND_ATIIXP_MODEM_MODULE 1
+-#define CONFIG_DEBUG_FS 1
+-#define CONFIG_FEALNX_MODULE 1
+-#define CONFIG_USB_FUNCTIONFS_RNDIS 1
+-#define CONFIG_NET_VENDOR_AMD 1
+-#define CONFIG_HAVE_KERNEL_LZ4 1
+-#define CONFIG_NET_PKTGEN_MODULE 1
+-#define CONFIG_HP_WMI_MODULE 1
+-#define CONFIG_MTD_NAND_DENALI_PCI_MODULE 1
+-#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1
+-#define CONFIG_DRM_TTM_MODULE 1
+-#define CONFIG_BASE_FULL 1
+-#define CONFIG_FB_CFB_IMAGEBLIT 1
+-#define CONFIG_ZLIB_DEFLATE_MODULE 1
+-#define CONFIG_SUNRPC_MODULE 1
+-#define CONFIG_SOLARIS_X86_PARTITION 1
+-#define CONFIG_ARCNET_RAW_MODULE 1
+-#define CONFIG_ARCH_DISCARD_MEMBLOCK 1
+-#define CONFIG_PMIC_DA903X 1
+-#define CONFIG_SCSI_DH_RDAC_MODULE 1
+-#define CONFIG_SENSORS_W83795_MODULE 1
+-#define CONFIG_COMEDI_FC_MODULE 1
+-#define CONFIG_X86_P4_CLOCKMOD_MODULE 1
+-#define CONFIG_INPUT_ATI_REMOTE2_MODULE 1
+-#define CONFIG_CNIC_MODULE 1
+-#define CONFIG_DRM_I810_MODULE 1
+-#define CONFIG_OSF_PARTITION 1
+-#define CONFIG_NLS_CODEPAGE_864_MODULE 1
+-#define CONFIG_IIO_BUFFER 1
+-#define CONFIG_TOUCHSCREEN_CY8CTMG110_MODULE 1
+-#define CONFIG_IWL3945_MODULE 1
+-#define CONFIG_IP_VS_LBLCR_MODULE 1
+-#define CONFIG_USB_YUREX_MODULE 1
+-#define CONFIG_XEN_BACKEND 1
+-#define CONFIG_FW_LOADER 1
+-#define CONFIG_USB_G_DBGP_SERIAL 1
+-#define CONFIG_LITELINK_DONGLE_MODULE 1
+-#define CONFIG_RTC_DRV_WM8350_MODULE 1
+-#define CONFIG_SENSORS_ADS7828_MODULE 1
+-#define CONFIG_KALLSYMS 1
+-#define CONFIG_COMMON_CLK 1
+-#define CONFIG_USB_GSPCA_SPCA501_MODULE 1
+-#define CONFIG_HOTPLUG_PCI_PCIE 1
+-#define CONFIG_PCI 1
+-#define CONFIG_INTERVAL_TREE_TEST_MODULE 1
+-#define CONFIG_RTC_HCTOSYS_DEVICE "rtc0"
+-#define CONFIG_CRYPTO_XTS_MODULE 1
+-#define CONFIG_SENSORS_ZL6100_MODULE 1
+-#define CONFIG_PWM 1
+-#define CONFIG_BATTERY_DS2781_MODULE 1
+-#define CONFIG_CHARGER_PCF50633_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_RECENT_MODULE 1
+-#define CONFIG_DECOMPRESS_XZ 1
+-#define CONFIG_NETFILTER_XT_MATCH_PKTTYPE_MODULE 1
+-#define CONFIG_PCI_QUIRKS 1
+-#define CONFIG_MII_MODULE 1
+-#define CONFIG_KEYBOARD_TCA8418_MODULE 1
+-#define CONFIG_SIGNALFD 1
+-#define CONFIG_REGULATOR_MAX8997_MODULE 1
+-#define CONFIG_NET_CORE 1
+-#define CONFIG_MOUSE_PS2_ALPS 1
+-#define CONFIG_VIDEO_CPIA2_MODULE 1
+-#define CONFIG_HAVE_UNSTABLE_SCHED_CLOCK 1
+-#define CONFIG_EXT4_FS 1
+-#define CONFIG_MAC80211_DEBUGFS 1
+-#define CONFIG_NET_SCH_DRR_MODULE 1
+-#define CONFIG_SENSORS_LTC4151_MODULE 1
+-#define CONFIG_BRIDGE_EBT_802_3_MODULE 1
+-#define CONFIG_CPU5_WDT_MODULE 1
+-#define CONFIG_COMEDI_NI_65XX_MODULE 1
+-#define CONFIG_FB_LE80578_MODULE 1
+-#define CONFIG_VIDEO_CX88_BLACKBIRD_MODULE 1
+-#define CONFIG_MFD_SEC_CORE 1
+-#define CONFIG_HAVE_HW_BREAKPOINT 1
+-#define CONFIG_KRETPROBES 1
+-#define CONFIG_MTD_LPDDR_MODULE 1
+-#define CONFIG_CRYPTO_SHA1 1
+-#define CONFIG_EDAC_MM_EDAC_MODULE 1
+-#define CONFIG_QUOTACTL_COMPAT 1
+-#define CONFIG_BATTERY_BQ27X00_PLATFORM 1
+-#define CONFIG_IPMI_WATCHDOG_MODULE 1
+-#define CONFIG_DRM_TDFX_MODULE 1
+-#define CONFIG_JOYSTICK_JOYDUMP_MODULE 1
+-#define CONFIG_IPV6_PRIVACY 1
+-#define CONFIG_INFINIBAND_USER_ACCESS_MODULE 1
+-#define CONFIG_VMWARE_VMCI_MODULE 1
+-#define CONFIG_BPQETHER_MODULE 1
+-#define CONFIG_USB_ADUTUX_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_ACNTPC_MODULE 1
+-#define CONFIG_VIDEO_UDA1342_MODULE 1
+-#define CONFIG_HSI_BOARDINFO 1
+-#define CONFIG_KGDB_LOW_LEVEL_TRAP 1
+-#define CONFIG_CAN_C_CAN_PLATFORM_MODULE 1
+-#define CONFIG_ARCH_WANT_GENERAL_HUGETLB 1
+-#define CONFIG_SENSORS_SMSC47M192_MODULE 1
+-#define CONFIG_ADT7316_SPI_MODULE 1
+-#define CONFIG_BCH_CONST_PARAMS 1
+-#define CONFIG_NLS_KOI8_U_MODULE 1
+-#define CONFIG_RADIO_SHARK2_MODULE 1
+-#define CONFIG_CRC8_MODULE 1
+-#define CONFIG_SND_SOC_CS42L51_MODULE 1
+-#define CONFIG_SENSORS_SCH5636_MODULE 1
+-#define CONFIG_XZ_DEC 1
+-#define CONFIG_USB_BELKIN 1
+-#define CONFIG_SATA_PMP 1
+-#define CONFIG_SMS_SIANO_DEBUGFS 1
+-#define CONFIG_IPW2100_MONITOR 1
+-#define CONFIG_QLA3XXX_MODULE 1
+-#define CONFIG_RTL8192U_MODULE 1
+-#define CONFIG_CAN_VCAN_MODULE 1
+-#define CONFIG_SBNI_MODULE 1
+-#define CONFIG_NEED_BOUNCE_POOL 1
+-#define CONFIG_ATH_COMMON_MODULE 1
+-#define CONFIG_NET_VENDOR_TI 1
+-#define CONFIG_USB_SERIAL_QUATECH2_MODULE 1
+-#define CONFIG_LOCKD_V4 1
+-#define CONFIG_DUMMY_MODULE 1
+-#define CONFIG_FB_XGI_MODULE 1
+-#define CONFIG_CODA_FS_MODULE 1
+-#define CONFIG_W1_SLAVE_DS2431_MODULE 1
+-#define CONFIG_LEDS_LM3530_MODULE 1
+-#define CONFIG_DVB_TUNER_CX24113_MODULE 1
+-#define CONFIG_BRIDGE_EBT_MARK_T_MODULE 1
+-#define CONFIG_WATCHDOG 1
+-#define CONFIG_BATTERY_MAX17042_MODULE 1
+-#define CONFIG_SCSI_ADVANSYS_MODULE 1
+-#define CONFIG_DVB_B2C2_FLEXCOP_PCI_MODULE 1
+-#define CONFIG_HAS_IOMEM 1
+-#define CONFIG_RING_BUFFER_ALLOW_SWAP 1
+-#define CONFIG_SND_RAWMIDI_MODULE 1
+-#define CONFIG_HOTPLUG_PCI_ACPI_IBM_MODULE 1
+-#define CONFIG_MFD_ARIZONA_SPI_MODULE 1
+-#define CONFIG_LIRC_SASEM_MODULE 1
+-#define CONFIG_DE4X5_MODULE 1
+-#define CONFIG_8139TOO_8129 1
+-#define CONFIG_SND_HDA_INPUT_BEEP_MODE 0
+-#define CONFIG_VIRT_DRIVERS 1
+-#define CONFIG_AUFS_SBILIST 1
+-#define CONFIG_GPIO_DEVRES 1
+-#define CONFIG_FB_AUO_K1900_MODULE 1
+-#define CONFIG_IR_FINTEK_MODULE 1
+-#define CONFIG_SPI_PXA2XX_DMA 1
+-#define CONFIG_GENERIC_IRQ_PROBE 1
+-#define CONFIG_ATH6KL_USB_MODULE 1
+-#define CONFIG_FUSION_LOGGING 1
+-#define CONFIG_USB_NET_CDC_EEM_MODULE 1
+-#define CONFIG_BRCM_TRACING 1
+-#define CONFIG_USB_STORAGE_SDDR09_MODULE 1
+-#define CONFIG_SND_SCS1X_MODULE 1
+-#define CONFIG_HYPERV_STORAGE_MODULE 1
+-#define CONFIG_IP_NF_MATCH_TTL_MODULE 1
+-#define CONFIG_KEYBOARD_MCS_MODULE 1
+-#define CONFIG_ASYNC_RAID6_RECOV_MODULE 1
+-#define CONFIG_SND_SOC_STA32X_MODULE 1
+-#define CONFIG_SND_SOC_WM8782_MODULE 1
+-#define CONFIG_FB_TMIO_MODULE 1
+-#define CONFIG_PATA_CS5536_MODULE 1
+-#define CONFIG_EDD_OFF 1
+-#define CONFIG_SND_SOC_UDA134X_MODULE 1
+-#define CONFIG_GART_IOMMU 1
+-#define CONFIG_SCSI_SYM53C8XX_MAX_TAGS 64
+-#define CONFIG_FB_CARMINE_MODULE 1
+-#define CONFIG_CW1200_WLAN_SPI_MODULE 1
+-#define CONFIG_NFTL_MODULE 1
+-#define CONFIG_PCI_MMCONFIG 1
+-#define CONFIG_PM_TRACE 1
+-#define CONFIG_NETFILTER_XT_TARGET_TRACE_MODULE 1
+-#define CONFIG_HVC_IRQ 1
+-#define CONFIG_IWLWIFI_DEVICE_TRACING 1
+-#define CONFIG_ATM_ZATM_MODULE 1
+-#define CONFIG_USB_GADGETFS_MODULE 1
+-#define CONFIG_IRDA_ULTRA 1
+-#define CONFIG_SND_RME32_MODULE 1
+-#define CONFIG_PROC_KCORE 1
+-#define CONFIG_RTC_DRV_X1205_MODULE 1
+-#define CONFIG_MTD_MAP_BANK_WIDTH_1 1
+-#define CONFIG_LPC_ICH_MODULE 1
+-#define CONFIG_NUMA 1
+-#define CONFIG_IP6_NF_MATCH_FRAG_MODULE 1
+-#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1
+-#define CONFIG_NET_SCH_PRIO_MODULE 1
+-#define CONFIG_SCHED_HRTICK 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1
+-#define CONFIG_SATA_ULI_MODULE 1
+-#define CONFIG_DVB_DRXK_MODULE 1
+-#define CONFIG_VIDEO_GO7007_USB_S2250_BOARD_MODULE 1
+-#define CONFIG_USB_SERIAL_IUU_MODULE 1
+-#define CONFIG_EPOLL 1
+-#define CONFIG_FB_MATROX_G 1
+-#define CONFIG_SCSI_AIC79XX_MODULE 1
+-#define CONFIG_RADIO_MAXIRADIO_MODULE 1
+-#define CONFIG_CRYPTO_LZO 1
+-#define CONFIG_SND_PCM_MODULE 1
+-#define CONFIG_CRYPTO_TWOFISH_AVX_X86_64_MODULE 1
+-#define CONFIG_LIRC_ZILOG_MODULE 1
+-#define CONFIG_PM_RUNTIME 1
+-#define CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB 20480
+-#define CONFIG_BRIDGE_EBT_SNAT_MODULE 1
+-#define CONFIG_ARCH_HWEIGHT_CFLAGS "-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+-#define CONFIG_SND_AU8820_MODULE 1
+-#define CONFIG_RAPIDIO 1
+-#define CONFIG_INFINIBAND_OCRDMA_MODULE 1
+-#define CONFIG_GIRBIL_DONGLE_MODULE 1
+-#define CONFIG_VIDEO_DT3155_MODULE 1
+-#define CONFIG_CXT1E1_MODULE 1
+-#define CONFIG_SDIO_UART_MODULE 1
+-#define CONFIG_PARTITION_ADVANCED 1
+-#define CONFIG_VIDEO_V4L2_INT_DEVICE_MODULE 1
+-#define CONFIG_EZX_PCAP 1
+-#define CONFIG_SENSORS_SCH56XX_COMMON_MODULE 1
+-#define CONFIG_SAMSUNG_USBPHY_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_DCCP_MODULE 1
+-#define CONFIG_ICPLUS_PHY 1
+-#define CONFIG_CGROUP_HUGETLB 1
+-#define CONFIG_UNIXWARE_DISKLABEL 1
+-#define CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 1
+-#define CONFIG_USB_U_ETHER_MODULE 1
+-#define CONFIG_X86_NUMACHIP 1
+-#define CONFIG_COMEDI_USBDUXFAST_MODULE 1
+-#define CONFIG_SND_SOC_WM8971_MODULE 1
+-#define CONFIG_REGULATOR_LP872X 1
+-#define CONFIG_BT_BNEP_MC_FILTER 1
+-#define CONFIG_CRYPTO_CRC32_MODULE 1
+-#define CONFIG_SCSI_ISCSI_ATTRS_MODULE 1
+-#define CONFIG_MTD_NAND_DENALI_MODULE 1
+-#define CONFIG_HAVE_NET_DSA 1
+-#define CONFIG_USB_SERIAL_EMPEG_MODULE 1
+-#define CONFIG_KEYBOARD_MAX7359_MODULE 1
+-#define CONFIG_IR_SONY_DECODER_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_852_MODULE 1
+-#define CONFIG_TCG_TIS_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_IDEALTEK 1
+-#define CONFIG_VIDEO_PVRUSB2_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_COMMENT_MODULE 1
+-#define CONFIG_NFS_SWAP 1
+-#define CONFIG_SERIAL_MRST_MAX3110_MODULE 1
+-#define CONFIG_USB_ISP116X_HCD_MODULE 1
+-#define CONFIG_I2C_ISCH_MODULE 1
+-#define CONFIG_USB_NET_RNDIS_HOST_MODULE 1
+-#define CONFIG_NET 1
+-#define CONFIG_ATARI_PARTITION 1
+-#define CONFIG_USB_OHCI_HCD_PCI 1
+-#define CONFIG_SND_SOC_WM5100_MODULE 1
+-#define CONFIG_INPUT_EVDEV 1
+-#define CONFIG_SND_JACK 1
+-#define CONFIG_AD5933_MODULE 1
+-#define CONFIG_DDR 1
+-#define CONFIG_IDEAPAD_LAPTOP_MODULE 1
+-#define CONFIG_SECURITY_PATH 1
+-#define CONFIG_ADIS16220_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_TCPMSS_MODULE 1
+-#define CONFIG_B43LEGACY_DMA 1
+-#define CONFIG_ACPI_SLEEP 1
+-#define CONFIG_EXT2_FS_MODULE 1
+-#define CONFIG_TABLET_USB_WACOM_MODULE 1
+-#define CONFIG_REGULATOR_VIRTUAL_CONSUMER_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_DSCP_MODULE 1
+-#define CONFIG_CRYPTO_WP512_MODULE 1
+-#define CONFIG_CFAG12864B_RATE 20
+-#define CONFIG_C2PORT_DURAMAR_2150_MODULE 1
+-#define CONFIG_STMPE_SPI 1
+-#define CONFIG_SND_SOC_WM9090_MODULE 1
+-#define CONFIG_HID_DRAGONRISE_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_CONNTRACK_MODULE 1
+-#define CONFIG_GPIO_RDC321X_MODULE 1
+-#define CONFIG_SERIAL_KGDB_NMI 1
+-#define CONFIG_VMIVME_7805_MODULE 1
+-#define CONFIG_VIDEO_BT848_MODULE 1
+-#define CONFIG_BLOCK_COMPAT 1
+-#define CONFIG_ITCO_WDT_MODULE 1
+-#define CONFIG_COMEDI_NI_LABPC_MODULE 1
+-#define CONFIG_IR_IGUANA_MODULE 1
+-#define CONFIG_CHARGER_LP8788_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_RATEEST_MODULE 1
+-#define CONFIG_FW_LOADER_USER_HELPER 1
+-#define CONFIG_SND_ALOOP_MODULE 1
+-#define CONFIG_USB_KBD_MODULE 1
+-#define CONFIG_HPFS_FS_MODULE 1
+-#define CONFIG_USB_LD_MODULE 1
+-#define CONFIG_MTD_GEN_PROBE_MODULE 1
+-#define CONFIG_QUOTA_TREE_MODULE 1
+-#define CONFIG_FB_VIA_MODULE 1
+-#define CONFIG_CAIF_NETDEV_MODULE 1
+-#define CONFIG_INPUT_PCSPKR_MODULE 1
+-#define CONFIG_PNFS_OBJLAYOUT_MODULE 1
+-#define CONFIG_HVC_XEN_FRONTEND 1
+-#define CONFIG_DVB_AV7110_OSD 1
+-#define CONFIG_SERIO_PCIPS2_MODULE 1
+-#define CONFIG_MPILIB 1
+-#define CONFIG_USB_NET_CDCETHER_MODULE 1
+-#define CONFIG_PACKET 1
+-#define CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE 1
+-#define CONFIG_MODULE_SRCVERSION_ALL 1
+-#define CONFIG_FIREWIRE_SERIAL_MODULE 1
+-#define CONFIG_RTC_DRV_M48T86_MODULE 1
+-#define CONFIG_XFRM_ALGO_MODULE 1
+-#define CONFIG_ARCH_HAS_CPU_AUTOPROBE 1
+-#define CONFIG_NF_CONNTRACK_TIMESTAMP 1
+-#define CONFIG_HAVE_CLK_PREPARE 1
+-#define CONFIG_VIDEO_CX88_MPEG_MODULE 1
+-#define CONFIG_SERIAL_PCH_UART_MODULE 1
+-#define CONFIG_NODES_SHIFT 6
+-#define CONFIG_SENSORS_SMM665_MODULE 1
+-#define CONFIG_MWIFIEX_SDIO_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_IPRANGE_MODULE 1
+-#define CONFIG_INTEL_IOATDMA_MODULE 1
+-#define CONFIG_VIDEO_MEM2MEM_TESTDEV_MODULE 1
+-#define CONFIG_NET_CLS_BASIC_MODULE 1
+-#define CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE 1
+-#define CONFIG_BACKLIGHT_LM3533_MODULE 1
+-#define CONFIG_SND_HDA_GENERIC 1
+-#define CONFIG_AUFS_BR_HFSPLUS 1
+-#define CONFIG_AD5764_MODULE 1
+-#define CONFIG_I2C_TINY_USB_MODULE 1
+-#define CONFIG_NETROM_MODULE 1
+-#define CONFIG_FUSION_SPI_MODULE 1
+-#define CONFIG_BTRFS_FS_POSIX_ACL 1
+-#define CONFIG_USB_GSPCA_OV534_MODULE 1
+-#define CONFIG_KEYBOARD_TCA6416_MODULE 1
+-#define CONFIG_COMEDI_DT3000_MODULE 1
+-#define CONFIG_FRONTSWAP 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1
+-#define CONFIG_DVB_USB_GL861_MODULE 1
+-#define CONFIG_SND_SOC_PCM3008_MODULE 1
+-#define CONFIG_MFD_ARIZONA_I2C_MODULE 1
+-#define CONFIG_USB_XHCI_PLATFORM_MODULE 1
+-#define CONFIG_NF_CONNTRACK_TFTP_MODULE 1
+-#define CONFIG_NFS_V3_MODULE 1
+-#define CONFIG_RTC_DRV_MAX6902_MODULE 1
+-#define CONFIG_MFD_MAX8997 1
+-#define CONFIG_DVB_USB_ANYSEE_MODULE 1
+-#define CONFIG_HISAX_HFC_SX 1
+-#define CONFIG_NLS_CODEPAGE_949_MODULE 1
+-#define CONFIG_DVB_CX24110_MODULE 1
+-#define CONFIG_SENSORS_TMP102_MODULE 1
+-#define CONFIG_NOP_TRACER 1
+-#define CONFIG_BACKLIGHT_LCD_SUPPORT 1
+-#define CONFIG_LOOPBACK_TARGET_MODULE 1
+-#define CONFIG_ISL29020_MODULE 1
+-#define CONFIG_SENSORS_TSL2563_MODULE 1
+-#define CONFIG_SND_HDA_PATCH_LOADER 1
+-#define CONFIG_XEN_XENBUS_FRONTEND 1
+-#define CONFIG_INET 1
+-#define CONFIG_CRYPTO_PCRYPT_MODULE 1
+-#define CONFIG_COMEDI_CB_PCIMDDA_MODULE 1
+-#define CONFIG_IP_ROUTE_VERBOSE 1
+-#define CONFIG_XZ_DEC_POWERPC 1
+-#define CONFIG_PCMCIA_WL3501_MODULE 1
+-#define CONFIG_DVB_RTL2832_MODULE 1
+-#define CONFIG_MMC_SDHCI_PXAV3_MODULE 1
+-#define CONFIG_USB_MUSB_HDRC_MODULE 1
+-#define CONFIG_SH_ETH_MODULE 1
+-#define CONFIG_VIRTIO_NET 1
+-#define CONFIG_MEMORY_NOTIFIER_ERROR_INJECT_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_ADDRTYPE_MODULE 1
+-#define CONFIG_DRM_I915_KMS 1
+-#define CONFIG_PREVENT_FIRMWARE_BUILD 1
+-#define CONFIG_SERIAL_8250_PNP 1
+-#define CONFIG_USB_NET_MCS7830_MODULE 1
+-#define CONFIG_SND_ENS1371_MODULE 1
+-#define CONFIG_CRYPTO_TWOFISH_MODULE 1
+-#define CONFIG_FREEZER 1
+-#define CONFIG_USB_F_SUBSET_MODULE 1
+-#define CONFIG_FIREWIRE_NET_MODULE 1
+-#define CONFIG_COMEDI_ADV_PCI1724_MODULE 1
+-#define CONFIG_W1_SLAVE_DS2413_MODULE 1
+-#define CONFIG_USB_TEST_MODULE 1
+-#define CONFIG_TOUCHSCREEN_MAX11801_MODULE 1
+-#define CONFIG_SND_SOC_WM8737_MODULE 1
+-#define CONFIG_ADAPTEC_STARFIRE_MODULE 1
+-#define CONFIG_BT_MODULE 1
+-#define CONFIG_BT_HCIVHCI_MODULE 1
+-#define CONFIG_INPUT_CM109_MODULE 1
+-#define CONFIG_PCI_DOMAINS 1
+-#define CONFIG_EFI_VARS 1
+-#define CONFIG_USB_SWITCH_FSA9480_MODULE 1
+-#define CONFIG_LCD_PLATFORM_MODULE 1
+-#define CONFIG_DVB_USB_MXL111SF_MODULE 1
+-#define CONFIG_SENSORS_IT87_MODULE 1
+-#define CONFIG_LPC_SCH_MODULE 1
+-#define CONFIG_NET_CLS_ACT 1
+-#define CONFIG_REED_SOLOMON_MODULE 1
+-#define CONFIG_CIFS_DFS_UPCALL 1
+-#define CONFIG_NET_VENDOR_CHELSIO 1
+-#define CONFIG_LZ4HC_COMPRESS_MODULE 1
+-#define CONFIG_COMEDI_ADL_PCI6208_MODULE 1
+-#define CONFIG_HDLC_RAW_ETH_MODULE 1
+-#define CONFIG_COMEDI_MODULE 1
+-#define CONFIG_EFIVAR_FS 1
+-#define CONFIG_BRIDGE_EBT_BROUTE_MODULE 1
+-#define CONFIG_USB_NET_SMSC75XX_MODULE 1
+-#define CONFIG_BE2NET_MODULE 1
+-#define CONFIG_REGULATOR_TPS80031_MODULE 1
+-#define CONFIG_PARPORT_MODULE 1
+-#define CONFIG_VORTEX_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_DECTLK_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_IPVS_MODULE 1
+-#define CONFIG_VMWARE_VMCI_VSOCKETS_MODULE 1
+-#define CONFIG_X86_DEBUGCTLMSR 1
+-#define CONFIG_HDLC_MODULE 1
+-#define CONFIG_ATM_SOLOS_MODULE 1
+-#define CONFIG_8139TOO_PIO 1
+-#define CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN "kernel.org"
+-#define CONFIG_IP_SET_MAX 256
+-#define CONFIG_HAPPYMEAL_MODULE 1
+-#define CONFIG_HID_WACOM_MODULE 1
+-#define CONFIG_USB_F_ACM_MODULE 1
+-#define CONFIG_USB_SERIAL_CP210X_MODULE 1
+-#define CONFIG_SND_PCMCIA 1
+-#define CONFIG_NET_SCH_SFQ_MODULE 1
+-#define CONFIG_RTC_LIB 1
+-#define CONFIG_DEVFREQ_GOV_POWERSAVE 1
+-#define CONFIG_X86_LOCAL_APIC 1
+-#define CONFIG_USB_GOKU_MODULE 1
+-#define CONFIG_USB_UEAGLEATM_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_POLICY_MODULE 1
+-#define CONFIG_MWL8K_MODULE 1
+-#define CONFIG_HAVE_KPROBES 1
+-#define CONFIG_NUMA_BALANCING_DEFAULT_ENABLED 1
+-#define CONFIG_FB_INTEL_MODULE 1
+-#define CONFIG_TPS65010_MODULE 1
+-#define CONFIG_IP_ROUTE_CLASSID 1
+-#define CONFIG_MOUSE_SYNAPTICS_I2C_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_TEE_MODULE 1
+-#define CONFIG_HPWDT_NMI_DECODING 1
+-#define CONFIG_ENC28J60_MODULE 1
+-#define CONFIG_MOUSE_PS2_TOUCHKIT 1
+-#define CONFIG_USB_SERIAL_XSENS_MT_MODULE 1
+-#define CONFIG_VIDEO_CX88_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_ITM 1
+-#define CONFIG_CRYPTO_AES 1
+-#define CONFIG_BACKLIGHT_LP855X_MODULE 1
+-#define CONFIG_DVB_DIB7000P_MODULE 1
+-#define CONFIG_GPIOLIB 1
+-#define CONFIG_MFD_TI_AM335X_TSCADC_MODULE 1
+-#define CONFIG_SSB_MODULE 1
+-#define CONFIG_REGULATOR_ISL6271A_MODULE 1
+-#define CONFIG_SND_SOC_WM8961_MODULE 1
+-#define CONFIG_FB_MATROX_I2C_MODULE 1
+-#define CONFIG_I2C_STUB_MODULE 1
+-#define CONFIG_EXTCON_MAX8997_MODULE 1
+-#define CONFIG_DM_BIO_PRISON 1
+-#define CONFIG_VIDEO_EM28XX_RC_MODULE 1
+-#define CONFIG_RADIO_TEA5764_MODULE 1
+-#define CONFIG_FT1000_MODULE 1
+-#define CONFIG_KEYS_COMPAT 1
+-#define CONFIG_USB_GSPCA_SPCA1528_MODULE 1
+-#define CONFIG_FB_SVGALIB_MODULE 1
+-#define CONFIG_PARPORT_AX88796_MODULE 1
+-#define CONFIG_AD2S1210_MODULE 1
+-#define CONFIG_HID_PID 1
+-#define CONFIG_NV_TCO_MODULE 1
+-#define CONFIG_USB_SERIAL_QT2_MODULE 1
+-#define CONFIG_SMSC9420_MODULE 1
+-#define CONFIG_COMEDI_PCI_DRIVERS 1
+-#define CONFIG_SENSORS_MAX6639_MODULE 1
+-#define CONFIG_GAMEPORT_MODULE 1
+-#define CONFIG_ISO9660_FS_MODULE 1
+-#define CONFIG_SKY2_MODULE 1
+-#define CONFIG_AD7793_MODULE 1
+-#define CONFIG_BT_HCIUART_H4 1
+-#define CONFIG_INPUT_GPIO_TILT_POLLED_MODULE 1
+-#define CONFIG_RTC_DRV_DS3232_MODULE 1
+-#define CONFIG_REGULATOR_MC13783_MODULE 1
+-#define CONFIG_XEN_WDT_MODULE 1
+-#define CONFIG_DVB_USB_M920X_MODULE 1
+-#define CONFIG_UIO_MODULE 1
+-#define CONFIG_HID_WALTOP_MODULE 1
+-#define CONFIG_MFD_TIMBERDALE_MODULE 1
+-#define CONFIG_SOC_CAMERA_MT9T031_MODULE 1
+-#define CONFIG_ADIS16136_MODULE 1
+-#define CONFIG_GPIO_RC5T583 1
+-#define CONFIG_VIDEO_ADV7170_MODULE 1
+-#define CONFIG_UIO_DMEM_GENIRQ_MODULE 1
+-#define CONFIG_SND_SOC_TAS5086_MODULE 1
+-#define CONFIG_SCSI_VIRTIO_MODULE 1
+-#define CONFIG_NF_CONNTRACK_MARK 1
+-#define CONFIG_HVC_DRIVER 1
+-#define CONFIG_BLK_DEV_PCIESSD_MTIP32XX_MODULE 1
+-#define CONFIG_NETFILTER 1
+-#define CONFIG_RC_LOOPBACK_MODULE 1
+-#define CONFIG_ISDN_DRV_AVMB1_T1PCI_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_HASHLIMIT_MODULE 1
+-#define CONFIG_MODULE_SIG 1
+-#define CONFIG_BRIDGE_EBT_AMONG_MODULE 1
+-#define CONFIG_B43_PIO 1
+-#define CONFIG_SECURITY_APPARMOR_UNCONFINED_INIT 1
+-#define CONFIG_BACKLIGHT_88PM860X_MODULE 1
+-#define CONFIG_X86_DEV_DMA_OPS 1
+-#define CONFIG_ADIS16201_MODULE 1
+-#define CONFIG_USB_R8A66597_HCD_MODULE 1
+-#define CONFIG_X86_MSR_MODULE 1
+-#define CONFIG_NET_VENDOR_SMSC 1
+-#define CONFIG_NETFILTER_NETLINK_ACCT_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_CLUSTER_MODULE 1
+-#define CONFIG_USB_KC2190 1
+-#define CONFIG_R6040_MODULE 1
+-#define CONFIG_USE_GENERIC_SMP_HELPERS 1
+-#define CONFIG_USB_MDC800_MODULE 1
+-#define CONFIG_AIRO_CS_MODULE 1
+-#define CONFIG_GPIO_TS5500_MODULE 1
+-#define CONFIG_VIPERBOARD_ADC_MODULE 1
+-#define CONFIG_HWMON_VID_MODULE 1
+-#define CONFIG_SERIO_SERPORT_MODULE 1
+-#define CONFIG_FB_BOOT_VESA_SUPPORT 1
+-#define CONFIG_ISDN_PPP_VJ 1
+-#define CONFIG_COMEDI_ME4000_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_950_MODULE 1
+-#define CONFIG_DVB_STV0297_MODULE 1
+-#define CONFIG_DVB_TTUSB_DEC_MODULE 1
+-#define CONFIG_LEDS_TRIGGER_ONESHOT_MODULE 1
+-#define CONFIG_HT_IRQ 1
+-#define CONFIG_LIRC_MODULE 1
+-#define CONFIG_INPUT_PWM_BEEPER_MODULE 1
+-#define CONFIG_SCSI_AIC94XX_MODULE 1
+-#define CONFIG_BT_BNEP_MODULE 1
+-#define CONFIG_NET_SCH_QFQ_MODULE 1
+-#define CONFIG_DVB_TDA826X_MODULE 1
+-#define CONFIG_BLK_DEV_RAM_COUNT 16
+-#define CONFIG_SCSI_FUTURE_DOMAIN_MODULE 1
+-#define CONFIG_IXGBEVF_MODULE 1
+-#define CONFIG_SND_AC97_POWER_SAVE_DEFAULT 0
+-#define CONFIG_THINKPAD_ACPI_DEBUGFACILITIES 1
+-#define CONFIG_DVB_NGENE_MODULE 1
+-#define CONFIG_RD_XZ 1
+-#define CONFIG_IP_MROUTE 1
+-#define CONFIG_INET_XFRM_MODE_TUNNEL_MODULE 1
+-#define CONFIG_VIDEO_MXB_MODULE 1
+-#define CONFIG_HW_RANDOM_EXYNOS_MODULE 1
+-#define CONFIG_X86_SMAP 1
+-#define CONFIG_SND_SOC_TLV320AIC23_MODULE 1
+-#define CONFIG_VGA_CONSOLE 1
+-#define CONFIG_NF_NAT_NEEDED 1
+-#define CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS 1
+-#define CONFIG_ATA_VERBOSE_ERROR 1
+-#define CONFIG_ISDN_DRV_AVMB1_B1PCMCIA_MODULE 1
+-#define CONFIG_XEN_BLKDEV_FRONTEND 1
+-#define CONFIG_NF_CONNTRACK_SNMP_MODULE 1
+-#define CONFIG_SND_DRIVERS 1
+-#define CONFIG_HISAX_S0BOX 1
+-#define CONFIG_USB_SERIAL_BELKIN_MODULE 1
+-#define CONFIG_W1_MASTER_DS2490_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MT2266_MODULE 1
+-#define CONFIG_NLS_MAC_GREEK_MODULE 1
+-#define CONFIG_NET_FLOW_LIMIT 1
+-#define CONFIG_SENSORS_DME1737_MODULE 1
+-#define CONFIG_XFS_FS_MODULE 1
+-#define CONFIG_INPUT_KEYSPAN_REMOTE_MODULE 1
+-#define CONFIG_USB_GSPCA_PAC7302_MODULE 1
+-#define CONFIG_LOCKDEP_SUPPORT 1
+-#define CONFIG_X86_MCE_INJECT_MODULE 1
+-#define CONFIG_LIRC_PARALLEL_MODULE 1
+-#define CONFIG_TOUCHSCREEN_ELO_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_869_MODULE 1
+-#define CONFIG_LINE6_USB_MODULE 1
+-#define CONFIG_SND_FIREWIRE_SPEAKERS_MODULE 1
+-#define CONFIG_SND_AZT3328_MODULE 1
+-#define CONFIG_SND_AC97_POWER_SAVE 1
+-#define CONFIG_IP6_NF_TARGET_MASQUERADE_MODULE 1
+-#define CONFIG_PCH_DMA_MODULE 1
+-#define CONFIG_REGULATOR_PALMAS_MODULE 1
+-#define CONFIG_SATA_VIA_MODULE 1
+-#define CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION 1
+-#define CONFIG_NO_HZ 1
+-#define CONFIG_ARCH_WANT_HUGE_PMD_SHARE 1
+-#define CONFIG_POSIX_MQUEUE 1
+-#define CONFIG_NOUVEAU_DEBUG 5
+-#define CONFIG_SND_SOC_CX20442_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TOUCHIT213_MODULE 1
+-#define CONFIG_FB_PM2_FIFO_DISCONNECT 1
+-#define CONFIG_SENSORS_LM83_MODULE 1
+-#define CONFIG_USB_NET_CDC_MBIM_MODULE 1
+-#define CONFIG_ACENIC_MODULE 1
+-#define CONFIG_PSTORE_RAM_MODULE 1
+-#define CONFIG_LEDS_BLINKM_MODULE 1
+-#define CONFIG_CPU_FREQ_STAT 1
+-#define CONFIG_JFS_STATISTICS 1
+-#define CONFIG_ISCSI_IBFT_MODULE 1
+-#define CONFIG_COMEDI_NI_DAQ_700_CS_MODULE 1
+-#define CONFIG_SPI_PXA2XX_MODULE 1
+-#define CONFIG_PCMCIA_SMC91C92_MODULE 1
+-#define CONFIG_BT_HCIDTL1_MODULE 1
+-#define CONFIG_TIFM_CORE_MODULE 1
+-#define CONFIG_XEN_PRIVCMD_MODULE 1
+-#define CONFIG_FUSION_SAS_MODULE 1
+-#define CONFIG_GENERIC_STRNCPY_FROM_USER 1
+-#define CONFIG_CHR_DEV_OSST_MODULE 1
+-#define CONFIG_MTD_BLKDEVS_MODULE 1
+-#define CONFIG_ACORN_PARTITION 1
+-#define CONFIG_DVB_TDA10086_MODULE 1
+-#define CONFIG_HP100_MODULE 1
+-#define CONFIG_BLK_DEV_3W_XXXX_RAID_MODULE 1
+-#define CONFIG_MEMSTICK_R592_MODULE 1
+-#define CONFIG_NET_SCH_MQPRIO_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_NETMAP_MODULE 1
+-#define CONFIG_SND_SOC_MAX98088_MODULE 1
+-#define CONFIG_VIDEO_VPX3220_MODULE 1
+-#define CONFIG_APDS9802ALS_MODULE 1
+-#define CONFIG_DVB_NXT6000_MODULE 1
+-#define CONFIG_MANTIS_CORE_MODULE 1
+-#define CONFIG_PATA_MARVELL_MODULE 1
+-#define CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_SCTP_MODULE 1
+-#define CONFIG_SATA_SIL24_MODULE 1
+-#define CONFIG_SMS_SIANO_RC 1
+-#define CONFIG_SND_SOC_CS42L52_MODULE 1
+-#define CONFIG_NET_VENDOR_DEC 1
+-#define CONFIG_CPU_NOTIFIER_ERROR_INJECT_MODULE 1
+-#define CONFIG_NLS_ISO8859_15_MODULE 1
+-#define CONFIG_HID_SENSOR_MAGNETOMETER_3D_MODULE 1
+-#define CONFIG_TOUCHSCREEN_EETI_MODULE 1
+-#define CONFIG_SENSORS_VIA686A_MODULE 1
+-#define CONFIG_INET6_ESP_MODULE 1
+-#define CONFIG_HOSTAP_PCI_MODULE 1
+-#define CONFIG_IP_VS_WRR_MODULE 1
+-#define CONFIG_AUTOFS4_FS_MODULE 1
+-#define CONFIG_NETLINK_MMAP 1
+-#define CONFIG_ATH5K_MODULE 1
+-#define CONFIG_VIDEO_FB_IVTV_MODULE 1
+-#define CONFIG_SBE_2T3E3_MODULE 1
+-#define CONFIG_ACPI_BUTTON 1
+-#define CONFIG_LEDS_LM355x_MODULE 1
+-#define CONFIG_ILLEGAL_POINTER_VALUE 0xdead000000000000
+-#define CONFIG_SYSCTL_SYSCALL 1
+-#define CONFIG_UIO_NETX_MODULE 1
+-#define CONFIG_PDA_POWER_MODULE 1
+-#define CONFIG_NETFILTER_XT_SET_MODULE 1
+-#define CONFIG_NLS_MAC_CROATIAN_MODULE 1
+-#define CONFIG_SFC_MTD 1
+-#define CONFIG_SOC_CAMERA_OV2640_MODULE 1
+-#define CONFIG_FMC_MODULE 1
+-#define CONFIG_SND_SOC_MAX98090_MODULE 1
+-#define CONFIG_TASKSTATS 1
+-#define CONFIG_EXTCON_GPIO_MODULE 1
+-#define CONFIG_ARCNET_1201_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_932_MODULE 1
+-#define CONFIG_PTP_1588_CLOCK_PCH_MODULE 1
+-#define CONFIG_RT2X00_LIB_MMIO_MODULE 1
+-#define CONFIG_CRYPTO_CRC32C_INTEL 1
+-#define CONFIG_NLS_MAC_ICELAND_MODULE 1
+-#define CONFIG_SND_ATMEL_SOC_MODULE 1
+-#define CONFIG_MEDIA_SUBDRV_AUTOSELECT 1
+-#define CONFIG_CAN_PLX_PCI_MODULE 1
+-#define CONFIG_SND_SOC_WM8940_MODULE 1
+-#define CONFIG_USB_FUNCTIONFS_GENERIC 1
+-#define CONFIG_JFS_POSIX_ACL 1
+-#define CONFIG_I2C_ALI1563_MODULE 1
+-#define CONFIG_IP6_NF_FILTER_MODULE 1
+-#define CONFIG_INPUT_MOUSEDEV_SCREEN_X 1024
+-#define CONFIG_NEED_DMA_MAP_STATE 1
+-#define CONFIG_SENSORS_G762_MODULE 1
+-#define CONFIG_IIO_MODULE 1
+-#define CONFIG_SND_HDA_PREALLOC_SIZE 64
+-#define CONFIG_GARP_MODULE 1
+-#define CONFIG_PCMCIA_AHA152X_MODULE 1
+-#define CONFIG_INPUT_TWL6040_VIBRA_MODULE 1
+-#define CONFIG_RT2500USB_MODULE 1
+-#define CONFIG_YENTA_ENE_TUNE 1
+-#define CONFIG_MOUSE_PS2_LIFEBOOK 1
+-#define CONFIG_SERIO_LIBPS2 1
+-#define CONFIG_BLK_DEV_DRBD_MODULE 1
+-#define CONFIG_IP_VS_PROTO_TCP 1
+-#define CONFIG_ISCSI_BOOT_SYSFS_MODULE 1
+-#define CONFIG_X86_CPUID_MODULE 1
+-#define CONFIG_NET_SCH_RED_MODULE 1
+-#define CONFIG_PCI_ATMEL_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_NFACCT_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_CONNBYTES_MODULE 1
+-#define CONFIG_KDB_CONTINUE_CATASTROPHIC 0
+-#define CONFIG_USB_SERIAL_METRO_MODULE 1
+-#define CONFIG_USB_PRINTER_MODULE 1
+-#define CONFIG_HISAX_DIEHLDIVA 1
+-#define CONFIG_FONT_8x8 1
+-#define CONFIG_SSB_SPROM 1
+-#define CONFIG_USB_GSPCA_PAC207_MODULE 1
+-#define CONFIG_NET_VENDOR_ATHEROS 1
+-#define CONFIG_USB_SERIAL_IR_MODULE 1
+-#define CONFIG_SKGE_MODULE 1
+-#define CONFIG_COMEDI_DT9812_MODULE 1
+-#define CONFIG_SND_SOC_AK4104_MODULE 1
+-#define CONFIG_INPUT_DA9055_ONKEY_MODULE 1
+-#define CONFIG_TCM_PSCSI_MODULE 1
+-#define CONFIG_RELOCATABLE 1
+-#define CONFIG_XOR_BLOCKS_MODULE 1
+-#define CONFIG_HID_TWINHAN_MODULE 1
+-#define CONFIG_SENSORS_NTC_THERMISTOR_MODULE 1
+-#define CONFIG_GPIO_SX150X 1
+-#define CONFIG_SPI_OC_TINY_MODULE 1
+-#define CONFIG_MISDN_L1OIP_MODULE 1
+-#define CONFIG_DVB_PT1_MODULE 1
+-#define CONFIG_DMIID 1
+-#define CONFIG_NET_VENDOR_SUN 1
+-#define CONFIG_ASUS_WMI_MODULE 1
+-#define CONFIG_SENSORS_DS1621_MODULE 1
+-#define CONFIG_QUOTA_NETLINK_INTERFACE 1
+-#define CONFIG_INPUT_JOYSTICK 1
+-#define CONFIG_QNX4FS_FS_MODULE 1
+-#define CONFIG_NET_ACT_SIMP_MODULE 1
+-#define CONFIG_USB_OXU210HP_HCD_MODULE 1
+-#define CONFIG_RT2X00_LIB_MODULE 1
+-#define CONFIG_USB_DWC2_MODULE 1
+-#define CONFIG_HID_BATTERY_STRENGTH 1
+-#define CONFIG_YAM_MODULE 1
+-#define CONFIG_DM_VERITY_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_ECN_MODULE 1
+-#define CONFIG_USB_GSPCA_STV0680_MODULE 1
+-#define CONFIG_RCU_NOCB_CPU_ALL 1
+-#define CONFIG_SND_FM801_TEA575X_BOOL 1
+-#define CONFIG_USB_STORAGE_SDDR55_MODULE 1
+-#define CONFIG_PPDEV_MODULE 1
+-#define CONFIG_RFKILL_REGULATOR_MODULE 1
+-#define CONFIG_IP_NF_TARGET_TTL_MODULE 1
+-#define CONFIG_AMILO_RFKILL_MODULE 1
+-#define CONFIG_ISDN_DRV_AVMB1_B1PCI_MODULE 1
+-#define CONFIG_CFG80211_DEFAULT_PS 1
+-#define CONFIG_USB_LED_MODULE 1
+-#define CONFIG_SND_SOC_WM8974_MODULE 1
+-#define CONFIG_GENERIC_IOMAP 1
+-#define CONFIG_IEEE802154_FAKELB_MODULE 1
+-#define CONFIG_USBIP_HOST_MODULE 1
+-#define CONFIG_I2O_MODULE 1
+-#define CONFIG_TOUCHSCREEN_WACOM_W8001_MODULE 1
+-#define CONFIG_IIO_ST_PRESS_MODULE 1
+-#define CONFIG_COMEDI_ADL_PCI7X3X_MODULE 1
+-#define CONFIG_DVB_PLUTO2_MODULE 1
+-#define CONFIG_RTL8723AE_MODULE 1
+-#define CONFIG_DECOMPRESS_LZ4 1
+-#define CONFIG_XEN_FBDEV_FRONTEND_MODULE 1
+-#define CONFIG_SPARSEMEM_MANUAL 1
+-#define CONFIG_DVB_AV7110_MODULE 1
+-#define CONFIG_DVB_OR51132_MODULE 1
+-#define CONFIG_RT2X00_LIB_FIRMWARE 1
+-#define CONFIG_DL2K_MODULE 1
+-#define CONFIG_TOUCHSCREEN_MMS114_MODULE 1
+-#define CONFIG_I2O_LCT_NOTIFY_ON_CHANGES 1
+-#define CONFIG_SMP 1
+-#define CONFIG_FB_KYRO_MODULE 1
+-#define CONFIG_DVB_ZL10353_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_TIME_MODULE 1
+-#define CONFIG_TTY 1
+-#define CONFIG_IP_VS_MODULE 1
+-#define CONFIG_HAVE_KERNEL_GZIP 1
+-#define CONFIG_ZSMALLOC 1
+-#define CONFIG_DM_UEVENT 1
+-#define CONFIG_CAN_ESD_USB2_MODULE 1
+-#define CONFIG_CAIF_VIRTIO_MODULE 1
+-#define CONFIG_USB_MV_UDC_MODULE 1
+-#define CONFIG_NET_VENDOR_I825XX 1
+-#define CONFIG_USB_XUSBATM_MODULE 1
+-#define CONFIG_PNP 1
+-#define CONFIG_RTC_DRV_RP5C01_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_MAC_MODULE 1
+-#define CONFIG_I2C_NFORCE2_S4985_MODULE 1
+-#define CONFIG_SENSORS_NCT6775_MODULE 1
+-#define CONFIG_YELLOWFIN_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TPS6507X_MODULE 1
+-#define CONFIG_DW_DMAC_CORE_MODULE 1
+-#define CONFIG_NET_ACT_PEDIT_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_NFLOG_MODULE 1
+-#define CONFIG_VIDEO_BT819_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_JASTEC 1
+-#define CONFIG_GENERIC_ALLOCATOR 1
+-#define CONFIG_OPENVSWITCH_MODULE 1
+-#define CONFIG_RTC_DRV_DS1390_MODULE 1
+-#define CONFIG_L2TP_MODULE 1
+-#define CONFIG_REGULATOR_DA9052_MODULE 1
+-#define CONFIG_DVB_B2C2_FLEXCOP_USB_MODULE 1
+-#define CONFIG_TCP_CONG_WESTWOOD_MODULE 1
+-#define CONFIG_RTC_DRV_M41T93_MODULE 1
+-#define CONFIG_KALLSYMS_ALL 1
+-#define CONFIG_ATM_FORE200E_TX_RETRY 16
+-#define CONFIG_HID_AUREAL_MODULE 1
+-#define CONFIG_USB_GSPCA_SPCA561_MODULE 1
+-#define CONFIG_DRM_GMA600 1
+-#define CONFIG_GENERIC_IO 1
+-#define CONFIG_LIBCRC32C 1
+-#define CONFIG_KEYBOARD_MATRIX_MODULE 1
+-#define CONFIG_HAVE_BOOTMEM_INFO_NODE 1
+-#define CONFIG_MFD_PCF50633_MODULE 1
+-#define CONFIG_GENERIC_BUG 1
+-#define CONFIG_CRYPTO_SHA256 1
+-#define CONFIG_HAVE_FTRACE_MCOUNT_RECORD 1
+-#define CONFIG_JOYSTICK_GUILLEMOT_MODULE 1
+-#define CONFIG_BRIDGE_VLAN_FILTERING 1
+-#define CONFIG_VIDEO_AU0828_MODULE 1
+-#define CONFIG_WL18XX_MODULE 1
+-#define CONFIG_INET_TCP_DIAG_MODULE 1
+-#define CONFIG_HID_SONY_MODULE 1
+-#define CONFIG_VIDEO_PVRUSB2_DVB 1
+-#define CONFIG_MEMSTICK_REALTEK_PCI_MODULE 1
+-#define CONFIG_PCI_PASID 1
+-#define CONFIG_CRYPTO_BLOWFISH_X86_64_MODULE 1
+-#define CONFIG_HW_CONSOLE 1
+-#define CONFIG_MDIO_BITBANG 1
+-#define CONFIG_NET_ACT_IPT_MODULE 1
+-#define CONFIG_DVB_AS102_MODULE 1
+-#define CONFIG_HAVE_KVM_IRQ_ROUTING 1
+-#define CONFIG_PARIDE_ON26_MODULE 1
+-#define CONFIG_SCSI_BNX2X_FCOE_MODULE 1
+-#define CONFIG_MTD_UBI_GLUEBI_MODULE 1
+-#define CONFIG_VIDEO_GO7007_LOADER_MODULE 1
+-#define CONFIG_SOC_CAMERA_TW9910_MODULE 1
+-#define CONFIG_SOC_CAMERA_MT9V022_MODULE 1
+-#define CONFIG_RTC_DRV_DA9052_MODULE 1
+-#define CONFIG_USB_ETH_EEM 1
+-#define CONFIG_IPX_MODULE 1
+-#define CONFIG_HYPERV_NET_MODULE 1
+-#define CONFIG_SMSC_PHY 1
+-#define CONFIG_HP_ACCEL_MODULE 1
+-#define CONFIG_CAN_EMS_PCI_MODULE 1
+-#define CONFIG_SCSI_BNX2_ISCSI_MODULE 1
+-#define CONFIG_OMFS_FS_MODULE 1
+-#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1
+-#define CONFIG_SND_ES1968_MODULE 1
+-#define CONFIG_SND_SPI 1
+-#define CONFIG_EUROTECH_WDT_MODULE 1
+-#define CONFIG_MLX5_CORE_MODULE 1
+-#define CONFIG_BACKLIGHT_ADP8870_MODULE 1
+-#define CONFIG_TOUCHSCREEN_MTOUCH_MODULE 1
+-#define CONFIG_BRIDGE_EBT_IP_MODULE 1
+-#define CONFIG_DRM_RADEON_UMS 1
+-#define CONFIG_PARIDE_EPAT_MODULE 1
+-#define CONFIG_HID_MONTEREY_MODULE 1
+-#define CONFIG_FB_UDL_MODULE 1
+-#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1
+-#define CONFIG_FB_NEOMAGIC_MODULE 1
+-#define CONFIG_MFD_TPS65217_MODULE 1
+-#define CONFIG_HID_EZKEY_MODULE 1
+-#define CONFIG_PADATA 1
+-#define CONFIG_IOSCHED_NOOP 1
+-#define CONFIG_THERMAL_GOV_USER_SPACE 1
+-#define CONFIG_DVB_S5H1409_MODULE 1
+-#define CONFIG_IPW2200_QOS 1
+-#define CONFIG_SCSI_LOWLEVEL_PCMCIA 1
+-#define CONFIG_XEN_TMEM_MODULE 1
+-#define CONFIG_INPUT_DA9052_ONKEY_MODULE 1
+-#define CONFIG_DM_THIN_PROVISIONING_MODULE 1
+-#define CONFIG_HAVE_UID16 1
+-#define CONFIG_SERIAL_NONSTANDARD 1
+-#define CONFIG_RT61PCI_MODULE 1
+-#define CONFIG_COMPAT_OLD_SIGACTION 1
+-#define CONFIG_PATA_JMICRON_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TSC_SERIO_MODULE 1
+-#define CONFIG_SCSI_OSD_ULD_MODULE 1
+-#define CONFIG_JOYSTICK_XPAD_LEDS 1
+-#define CONFIG_IPW2100_MODULE 1
+-#define CONFIG_SCSI_PPA_MODULE 1
+-#define CONFIG_BACKLIGHT_PWM_MODULE 1
+-#define CONFIG_BT_MRVL_MODULE 1
+-#define CONFIG_QUOTACTL 1
+-#define CONFIG_RTC_DRV_RX8581_MODULE 1
+-#define CONFIG_V4L2_MEM2MEM_DEV_MODULE 1
+-#define CONFIG_PARAVIRT 1
+-#define CONFIG_WQ_POWER_EFFICIENT_DEFAULT 1
+-#define CONFIG_INTEL_MENLOW_MODULE 1
+-#define CONFIG_ISDN_CAPI_CAPI20_MODULE 1
+-#define CONFIG_CRYPTO_CRYPTD_MODULE 1
+-#define CONFIG_SCSI_EATA_MAX_TAGS 16
+-#define CONFIG_ATMEL_PWM_MODULE 1
+-#define CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER 1
+-#define CONFIG_HAVE_IOREMAP_PROT 1
+-#define CONFIG_USBIP_VHCI_HCD_MODULE 1
+-#define CONFIG_SND_SOC_AK4535_MODULE 1
+-#define CONFIG_PATA_RZ1000_MODULE 1
+-#define CONFIG_GENERIC_ACL 1
+-#define CONFIG_BACKLIGHT_ADP8860_MODULE 1
+-#define CONFIG_MAX8925_POWER_MODULE 1
+-#define CONFIG_CAPI_TRACE 1
+-#define CONFIG_DEBUG_KERNEL 1
+-#define CONFIG_MTD_RAM_MODULE 1
+-#define CONFIG_RTL8192DE_MODULE 1
+-#define CONFIG_ACPI_TOSHIBA_MODULE 1
+-#define CONFIG_GAMEPORT_NS558_MODULE 1
+-#define CONFIG_INV_MPU6050_IIO_MODULE 1
+-#define CONFIG_VIDEO_CX2341X_MODULE 1
+-#define CONFIG_I2C_VIPERBOARD_MODULE 1
+-#define CONFIG_LOCALVERSION ""
+-#define CONFIG_NCPFS_IOCTL_LOCKING 1
+-#define CONFIG_REISERFS_FS_SECURITY 1
+-#define CONFIG_DVB_STV6110x_MODULE 1
+-#define CONFIG_PATA_IT821X_MODULE 1
+-#define CONFIG_ACERHDF_MODULE 1
+-#define CONFIG_RADIO_ADAPTERS 1
+-#define CONFIG_MEMTEST 1
+-#define CONFIG_KEYBOARD_XTKBD_MODULE 1
+-#define CONFIG_HAVE_PCSPKR_PLATFORM 1
+-#define CONFIG_NFS_FSCACHE 1
+-#define CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS 1
+-#define CONFIG_MAC80211_MESH 1
+-#define CONFIG_MMC_WBSD_MODULE 1
+-#define CONFIG_USB_GSPCA_TOPRO_MODULE 1
+-#define CONFIG_USB_GSPCA_MARS_MODULE 1
+-#define CONFIG_CAN_RAW_MODULE 1
+-#define CONFIG_REGULATOR_MAX8973_MODULE 1
+-#define CONFIG_CRYPTO 1
+-#define CONFIG_I2C_MUX_PCA954x_MODULE 1
+-#define CONFIG_FUNCTION_TRACER 1
+-#define CONFIG_FB_MATROX_MILLENIUM 1
+-#define CONFIG_SENSORS_EMC6W201_MODULE 1
+-#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1
+-#define CONFIG_SCHED_DEBUG 1
+-#define CONFIG_USB_STKWEBCAM_MODULE 1
+-#define CONFIG_NET_VENDOR_BROCADE 1
+-#define CONFIG_BTRFS_FS_MODULE 1
+-#define CONFIG_DEFAULT_MMAP_MIN_ADDR 65536
+-#define CONFIG_SND_USB_6FIRE_MODULE 1
+-#define CONFIG_SND_HDA_HWDEP 1
+-#define CONFIG_INPUT_AD714X_I2C_MODULE 1
+-#define CONFIG_I2C_SIS96X_MODULE 1
+-#define CONFIG_MMC_TIFM_SD_MODULE 1
+-#define CONFIG_GFS2_FS_LOCKING_DLM 1
+-#define CONFIG_MEDIA_TUNER_TDA18218_MODULE 1
+-#define CONFIG_IP_NF_IPTABLES_MODULE 1
+-#define CONFIG_HISAX_HFC4S8S_MODULE 1
+-#define CONFIG_W1_SLAVE_BQ27000_MODULE 1
+-#define CONFIG_VSOCKETS_MODULE 1
+-#define CONFIG_BT_BNEP_PROTO_FILTER 1
+-#define CONFIG_DYNAMIC_FTRACE_WITH_REGS 1
+-#define CONFIG_USB_CHIPIDEA_HOST 1
+-#define CONFIG_MFD_RETU_MODULE 1
+-#define CONFIG_NET_VENDOR_QLOGIC 1
+-#define CONFIG_SPI_GPIO_MODULE 1
+-#define CONFIG_USB_GSPCA_CPIA1_MODULE 1
+-#define CONFIG_PARIDE_PF_MODULE 1
+-#define CONFIG_HSI_CHAR_MODULE 1
+-#define CONFIG_VIDEOBUF2_DMA_CONTIG_MODULE 1
+-#define CONFIG_USB_XHCI_HCD 1
+-#define CONFIG_VIRTIO 1
+-#define CONFIG_HAVE_DMA_API_DEBUG 1
+-#define CONFIG_REGULATOR_TPS65910_MODULE 1
+-#define CONFIG_HISAX_16_3 1
+-#define CONFIG_DEFAULT_CUBIC 1
+-#define CONFIG_CAN_KVASER_PCI_MODULE 1
+-#define CONFIG_YENTA_TI 1
+-#define CONFIG_COMEDI_NI_660X_MODULE 1
+-#define CONFIG_MFD_SM501_MODULE 1
+-#define CONFIG_AD7606_MODULE 1
+-#define CONFIG_HID_SAMSUNG_MODULE 1
+-#define CONFIG_SPI_XCOMM_MODULE 1
+-#define CONFIG_SND_SOC_WM8955_MODULE 1
+-#define CONFIG_IP_SET_LIST_SET_MODULE 1
+-#define CONFIG_TCM_IBLOCK_MODULE 1
+-#define CONFIG_IP_PIMSM_V2 1
+-#define CONFIG_CFS_BANDWIDTH 1
+-#define CONFIG_WM831X_WATCHDOG_MODULE 1
+-#define CONFIG_NET_DSA_TAG_TRAILER 1
+-#define CONFIG_SND_HDA_CODEC_CA0132_DSP 1
+-#define CONFIG_GPIO_GENERIC_PLATFORM_MODULE 1
+-#define CONFIG_X86_MCE_THRESHOLD 1
+-#define CONFIG_MTD_SCB2_FLASH_MODULE 1
+-#define CONFIG_VIDEO_TW2804_MODULE 1
+-#define CONFIG_VIA_RHINE_MMIO 1
+-#define CONFIG_USB_ISIGHTFW_MODULE 1
+-#define CONFIG_JME_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_CMEDIA 1
+-#define CONFIG_YENTA_O2 1
+-#define CONFIG_SND_SEQ_HRTIMER_DEFAULT 1
+-#define CONFIG_USB_ARCH_HAS_HCD 1
+-#define CONFIG_DVB_DIB3000MC_MODULE 1
+-#define CONFIG_STRICT_DEVMEM 1
+-#define CONFIG_CACHEFILES_MODULE 1
+-#define CONFIG_PATA_OLDPIIX_MODULE 1
+-#define CONFIG_I2C_KEMPLD_MODULE 1
+-#define CONFIG_GENERIC_IRQ_SHOW 1
+-#define CONFIG_SND_HDA_CODEC_SI3054 1
+-#define CONFIG_ADIS16204_MODULE 1
+-#define CONFIG_BACKLIGHT_PCF50633_MODULE 1
+-#define CONFIG_LCD_ILI9320_MODULE 1
+-#define CONFIG_MFD_MAX8925 1
+-#define CONFIG_NET_CALXEDA_XGMAC_MODULE 1
+-#define CONFIG_NFC_MICROREAD_I2C_MODULE 1
+-#define CONFIG_9P_FS_MODULE 1
+-#define CONFIG_MD_AUTODETECT 1
+-#define CONFIG_PANIC_ON_OOPS_VALUE 0
+-#define CONFIG_JOYSTICK_A3D_MODULE 1
+-#define CONFIG_SND_SOC_CS4270_MODULE 1
+-#define CONFIG_SENSORS_ATK0110_MODULE 1
+-#define CONFIG_FB_VIA_X_COMPATIBILITY 1
+-#define CONFIG_SFC_SRIOV 1
+-#define CONFIG_SERIAL_SCCNXP 1
+-#define CONFIG_TCP_CONG_HSTCP_MODULE 1
+-#define CONFIG_SCSI_MOD 1
+-#define CONFIG_SND_SOC_SSM2602_MODULE 1
+-#define CONFIG_BACKLIGHT_LM3630_MODULE 1
+-#define CONFIG_SCSI_DPT_I2O_MODULE 1
+-#define CONFIG_INPUT_88PM860X_ONKEY_MODULE 1
+-#define CONFIG_NET_VENDOR_MICREL 1
+-#define CONFIG_AUDIT_TREE 1
+-#define CONFIG_FB_PM2_MODULE 1
+-#define CONFIG_GIGASET_M105_MODULE 1
+-#define CONFIG_F2FS_FS_POSIX_ACL 1
+-#define CONFIG_VIDEOBUF2_DMA_SG_MODULE 1
+-#define CONFIG_HISAX_HFC_PCI 1
+-#define CONFIG_JOYSTICK_ZHENHUA_MODULE 1
+-#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1
+-#define CONFIG_SND_SOC_TLV320AIC26_MODULE 1
+-#define CONFIG_SND_SOC_AK5386_MODULE 1
+-#define CONFIG_TOUCHSCREEN_CYTTSP4_I2C_MODULE 1
+-#define CONFIG_RC_DECODERS 1
+-#define CONFIG_B43_LEDS 1
+-#define CONFIG_ATH9K_LEGACY_RATE_CONTROL 1
+-#define CONFIG_P54_USB_MODULE 1
+-#define CONFIG_TOUCHSCREEN_MK712_MODULE 1
+-#define CONFIG_FB_ATY_MODULE 1
+-#define CONFIG_TOUCHSCREEN_CYTTSP4_CORE_MODULE 1
+-#define CONFIG_USB_GSPCA_KINECT_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_DECEXT_MODULE 1
+-#define CONFIG_USB_SERIAL_WISHBONE_MODULE 1
+-#define CONFIG_COMEDI_DAQBOARD2000_MODULE 1
+-#define CONFIG_OPROFILE_MODULE 1
+-#define CONFIG_VIDEO_CX25821_ALSA_MODULE 1
+-#define CONFIG_CRYPTO_CRC32C 1
+-#define CONFIG_SERIAL_CORE 1
+-#define CONFIG_IIO_ST_SENSORS_I2C_MODULE 1
+-#define CONFIG_FUSE_FS 1
+-#define CONFIG_BUILDTIME_EXTABLE_SORT 1
+-#define CONFIG_USB_CONFIGFS_SERIAL 1
+-#define CONFIG_UID16 1
+-#define CONFIG_DW_DMAC_MODULE 1
+-#define CONFIG_ETHOC_MODULE 1
+-#define CONFIG_ACPI_HED 1
+-#define CONFIG_HAVE_DEBUG_STACKOVERFLOW 1
+-#define CONFIG_HID_MICROSOFT_MODULE 1
+-#define CONFIG_RTLLIB_MODULE 1
+-#define CONFIG_ARCH_PHYS_ADDR_T_64BIT 1
+-#define CONFIG_RTC_DRV_S35390A_MODULE 1
+-#define CONFIG_HAVE_KRETPROBES 1
+-#define CONFIG_HYPERV_BALLOON_MODULE 1
+-#define CONFIG_SCSI_IMM_MODULE 1
+-#define CONFIG_SENSORS_LM25066_MODULE 1
+-#define CONFIG_AGP_VIA 1
+-#define CONFIG_PCH_CAN_MODULE 1
+-#define CONFIG_NF_DEFRAG_IPV6_MODULE 1
+-#define CONFIG_USB_GSPCA_CONEX_MODULE 1
+-#define CONFIG_MICREL_PHY 1
+-#define CONFIG_DRM_LOAD_EDID_FIRMWARE 1
+-#define CONFIG_VIDEO_DEV_MODULE 1
+-#define CONFIG_KS0108_MODULE 1
+-#define CONFIG_SGI_IOC4_MODULE 1
+-#define CONFIG_NFS_V4_MODULE 1
+-#define CONFIG_MFD_WM831X 1
+-#define CONFIG_PMIC_ADP5520 1
+-#define CONFIG_RTC_DRV_TPS80031_MODULE 1
+-#define CONFIG_IRCOMM_MODULE 1
+-#define CONFIG_PPP_FILTER 1
+-#define CONFIG_DYNAMIC_FTRACE 1
+-#define CONFIG_MAILBOX 1
+-#define CONFIG_MTD_SLRAM_MODULE 1
+-#define CONFIG_INLINE_READ_UNLOCK 1
+-#define CONFIG_MTD_ROM_MODULE 1
+-#define CONFIG_PATA_PDC2027X_MODULE 1
+-#define CONFIG_SENSORS_LTC2978_MODULE 1
+-#define CONFIG_HAS_DMA 1
+-#define CONFIG_INTEL_IPS_MODULE 1
+-#define CONFIG_EDAC 1
+-#define CONFIG_NF_CT_PROTO_SCTP_MODULE 1
+-#define CONFIG_USB_SERIAL_VISOR_MODULE 1
+-#define CONFIG_MTD_PMC551_MODULE 1
+-#define CONFIG_BROADCOM_PHY 1
+-#define CONFIG_IO_DELAY_TYPE_NONE 3
+-#define CONFIG_SCSI 1
+-#define CONFIG_FB_CFB_FILLRECT 1
+-#define CONFIG_FT1000_USB_MODULE 1
+-#define CONFIG_HYPERV_MODULE 1
+-#define CONFIG_AT76C50X_USB_MODULE 1
+-#define CONFIG_REGULATOR_WM8994_MODULE 1
+-#define CONFIG_FUNCTION_GRAPH_TRACER 1
+-#define CONFIG_EDAC_MCE_INJ_MODULE 1
+-#define CONFIG_NF_NAT_PPTP_MODULE 1
+-#define CONFIG_HID_CHICONY_MODULE 1
+-#define CONFIG_NLS_MAC_ROMAN_MODULE 1
+-#define CONFIG_HID_MODULE 1
+-#define CONFIG_HW_RANDOM_AMD_MODULE 1
+-#define CONFIG_LIBERTAS_THINFIRM_USB_MODULE 1
+-#define CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND 1
+-#define CONFIG_USB_DWC3_DUAL_ROLE 1
+-#define CONFIG_USB_RENESAS_USBHS_HCD_MODULE 1
+-#define CONFIG_SLIP_SMART 1
+-#define CONFIG_IXGB_MODULE 1
+-#define CONFIG_NLS_ISO8859_9_MODULE 1
+-#define CONFIG_SND_SOC_STA529_MODULE 1
+-#define CONFIG_FIRMWARE_EDID 1
+-#define CONFIG_SND_SERIAL_U16550_MODULE 1
+-#define CONFIG_AMD_IOMMU_V2_MODULE 1
+-#define CONFIG_USB_ARMLINUX 1
+-#define CONFIG_I2C_SMBUS_MODULE 1
+-#define CONFIG_IP_VS_PE_SIP_MODULE 1
+-#define CONFIG_JOYSTICK_GF2K_MODULE 1
+-#define CONFIG_RTLWIFI_MODULE 1
+-#define CONFIG_LP8788_ADC 1
+-#define CONFIG_CLKDEV_LOOKUP 1
+-#define CONFIG_LEDS_TRIGGER_DEFAULT_ON_MODULE 1
+-#define CONFIG_MXM_WMI_MODULE 1
+-#define CONFIG_FONT_8x16 1
+-#define CONFIG_NET_VENDOR_MELLANOX 1
+-#define CONFIG_MAC80211_HWSIM_MODULE 1
+-#define CONFIG_DVB_LGDT330X_MODULE 1
+-#define CONFIG_SERIAL_8250_MANY_PORTS 1
+-#define CONFIG_VT_CONSOLE_SLEEP 1
+-#define CONFIG_LIBFC_MODULE 1
+-#define CONFIG_X86_MCE_INTEL 1
+-#define CONFIG_X86_64 1
+-#define CONFIG_SND_SOC_WM5110_MODULE 1
+-#define CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG 1
+-#define CONFIG_RTC_DRV_CMOS 1
+-#define CONFIG_PTP_1588_CLOCK_MODULE 1
+-#define CONFIG_SAMSUNG_USB2PHY_MODULE 1
+-#define CONFIG_IEEE802154_DRIVERS_MODULE 1
+-#define CONFIG_ADFS_FS_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_IRTOUCH 1
+-#define CONFIG_PATA_AMD_MODULE 1
+-#define CONFIG_USB_PWC_MODULE 1
+-#define CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE 3
+-#define CONFIG_SENSORS_AD7414_MODULE 1
+-#define CONFIG_MEDIA_TUNER_TDA8290_MODULE 1
+-#define CONFIG_COMEDI_ADV_PCI_DIO_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_PANJIT 1
+-#define CONFIG_RT2800PCI_RT53XX 1
+-#define CONFIG_BONDING_MODULE 1
+-#define CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER "/sbin/init"
+-#define CONFIG_MEDIA_TUNER_TDA18212_MODULE 1
+-#define CONFIG_RTC_DRV_EM3027_MODULE 1
+-#define CONFIG_ARCH_HAS_CACHE_LINE_SIZE 1
+-#define CONFIG_ARM_AT91_ETHER_MODULE 1
+-#define CONFIG_VIDEO_SAA7134_RC 1
+-#define CONFIG_JBD2 1
+-#define CONFIG_COMEDI_AMPLC_PC236_PCI_MODULE 1
+-#define CONFIG_SENSORS_ASB100_MODULE 1
+-#define CONFIG_SND_INTEL8X0_MODULE 1
+-#define CONFIG_PATA_NS87415_MODULE 1
+-#define CONFIG_USBIP_CORE_MODULE 1
+-#define CONFIG_ATH10K_TRACING 1
+-#define CONFIG_ATM_BR2684_MODULE 1
+-#define CONFIG_SPARSEMEM_VMEMMAP 1
+-#define CONFIG_CRYPTO_CAMELLIA_X86_64_MODULE 1
+-#define CONFIG_IB700_WDT_MODULE 1
+-#define CONFIG_MMC_USHC_MODULE 1
+-#define CONFIG_COMEDI_CB_PCIDAS64_MODULE 1
+-#define CONFIG_SPI_TLE62X0_MODULE 1
+-#define CONFIG_INET6_IPCOMP_MODULE 1
+-#define CONFIG_SONY_LAPTOP_MODULE 1
+-#define CONFIG_QLCNIC_MODULE 1
+-#define CONFIG_FB_SIS_315 1
+-#define CONFIG_TPS6507X_MODULE 1
+-#define CONFIG_IRDA_FAST_RR 1
+-#define CONFIG_HISAX_W6692 1
+-#define CONFIG_NET_VENDOR_MARVELL 1
+-#define CONFIG_PHYLIB 1
+-#define CONFIG_IGB_DCA 1
+-#define CONFIG_CRYPTO_SHA1_SSSE3_MODULE 1
+-#define CONFIG_REGULATOR_GPIO_MODULE 1
+-#define CONFIG_IPV6_TUNNEL_MODULE 1
+-#define CONFIG_SENSORS_LM77_MODULE 1
+-#define CONFIG_W1_SLAVE_DS2760_MODULE 1
+-#define CONFIG_NET_VENDOR_NVIDIA 1
+-#define CONFIG_ARCH_MEMORY_PROBE 1
+-#define CONFIG_X86_AMD_FREQ_SENSITIVITY_MODULE 1
+-#define CONFIG_DVB_TDA665x_MODULE 1
+-#define CONFIG_VIDEO_SAA7164_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_874_MODULE 1
+-#define CONFIG_OPTIMIZE_INLINING 1
+-#define CONFIG_ULTRIX_PARTITION 1
+-#define CONFIG_IRQ_DOMAIN 1
+-#define CONFIG_NET_DSA_MODULE 1
+-#define CONFIG_HOTPLUG_PCI_CPCI_GENERIC_MODULE 1
+-#define CONFIG_VIRTIO_BALLOON_MODULE 1
+-#define CONFIG_LSM_MMAP_MIN_ADDR 0
+-#define CONFIG_WLAGS49_H25_MODULE 1
+-#define CONFIG_SCSI_ARCMSR_MODULE 1
+-#define CONFIG_SBYPASS_MODULE 1
+-#define CONFIG_INTEGRITY_AUDIT 1
+-#define CONFIG_COMEDI_AMPLC_DIO200_MODULE 1
+-#define CONFIG_PVPANIC_MODULE 1
+-#define CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS 0x0
+-#define CONFIG_CAN_PEAK_PCI_MODULE 1
+-#define CONFIG_PPS_CLIENT_LDISC_MODULE 1
+-#define CONFIG_MTD_ONENAND_2X_PROGRAM 1
+-#define CONFIG_MEDIA_TUNER_MT20XX_MODULE 1
+-#define CONFIG_NET_TULIP 1
+-#define CONFIG_JFFS2_RTIME 1
+-#define CONFIG_SND_SOC_ISABELLE_MODULE 1
+-#define CONFIG_IPC_NS 1
+-#define CONFIG_CRYPTO_GLUE_HELPER_X86_MODULE 1
+-#define CONFIG_HISAX_FRITZ_PCIPNP_MODULE 1
+-#define CONFIG_MISC_FILESYSTEMS 1
+-#define CONFIG_FTRACE 1
+-#define CONFIG_NETFILTER_XT_MATCH_CONNLIMIT_MODULE 1
+-#define CONFIG_ATP_MODULE 1
+-#define CONFIG_X86_THERMAL_VECTOR 1
+-#define CONFIG_TCG_ST33_I2C_MODULE 1
+-#define CONFIG_IP_NF_SECURITY_MODULE 1
+-#define CONFIG_IP_NF_RAW_MODULE 1
+-#define CONFIG_IP_NF_ARPFILTER_MODULE 1
+-#define CONFIG_BACKLIGHT_LP8788_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_ETT_TC45USB 1
+-#define CONFIG_LIRC_SERIAL_TRANSMITTER 1
+-#define CONFIG_W1_CON 1
+-#define CONFIG_NETFILTER_XT_MATCH_SOCKET_MODULE 1
+-#define CONFIG_FB_ASILIANT 1
+-#define CONFIG_PPPOL2TP_MODULE 1
+-#define CONFIG_SYNCLINK_MODULE 1
+-#define CONFIG_KEYBOARD_ADP5588_MODULE 1
+-#define CONFIG_CLOCKSOURCE_WATCHDOG 1
+-#define CONFIG_R8712U_MODULE 1
+-#define CONFIG_HID_TOPSEED_MODULE 1
+-#define CONFIG_REGULATOR_RC5T583_MODULE 1
+-#define CONFIG_B43_PHY_HT 1
+-#define CONFIG_FB_VT8623_MODULE 1
+-#define CONFIG_HISAX_MAX_CARDS 8
+-#define CONFIG_AD7606_IFACE_SPI_MODULE 1
+-#define CONFIG_LEDS_DA9052_MODULE 1
+-#define CONFIG_DECOMPRESS_BZIP2 1
+-#define CONFIG_RT2800PCI_RT33XX 1
+-#define CONFIG_CORDIC_MODULE 1
+-#define CONFIG_COMEDI_CB_PCIDAS_MODULE 1
+-#define CONFIG_FB_TRIDENT_MODULE 1
+-#define CONFIG_SENSORS_ADM1029_MODULE 1
+-#define CONFIG_IIO_ST_SENSORS_CORE_MODULE 1
+-#define CONFIG_KSM 1
+-#define CONFIG_ARCH_SUPPORTS_UPROBES 1
+-#define CONFIG_NET_VENDOR_STMICRO 1
+-#define CONFIG_EDAC_I3000_MODULE 1
+-#define CONFIG_PARPORT_PC_FIFO 1
+-#define CONFIG_DECNET_MODULE 1
+-#define CONFIG_TOPSTAR_LAPTOP_MODULE 1
+-#define CONFIG_AGP_SIS_MODULE 1
+-#define CONFIG_NF_NAT_H323_MODULE 1
+-#define CONFIG_XZ_DEC_SPARC 1
+-#define CONFIG_JOYSTICK_TURBOGRAFX_MODULE 1
+-#define CONFIG_ARCH_SPARSEMEM_DEFAULT 1
+-#define CONFIG_USB_NET_QMI_WWAN_MODULE 1
+-#define CONFIG_BOARD_TPCI200_MODULE 1
+-#define CONFIG_INPUT_CMA3000_MODULE 1
+-#define CONFIG_IR_ENE_MODULE 1
+-#define CONFIG_ALIM1535_WDT_MODULE 1
+-#define CONFIG_GIGASET_BASE_MODULE 1
+-#define CONFIG_INLINE_READ_UNLOCK_IRQ 1
+-#define CONFIG_HID_HYPERV_MOUSE_MODULE 1
+-#define CONFIG_GACT_PROB 1
+-#define CONFIG_MISDN_ISAR_MODULE 1
+-#define CONFIG_REALTEK_PHY 1
+-#define CONFIG_PROC_VMCORE 1
+-#define CONFIG_HID_A4TECH_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MC44S803_MODULE 1
+-#define CONFIG_NFC_PN544_MEI_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_860_MODULE 1
+-#define CONFIG_AD799X_MODULE 1
+-#define CONFIG_SND_MONA_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_ESP_MODULE 1
+-#define CONFIG_NIU_MODULE 1
+-#define CONFIG_AD8366_MODULE 1
+-#define CONFIG_IP_NF_TARGET_NETMAP_MODULE 1
+-#define CONFIG_USB_GSPCA_SPCA505_MODULE 1
+-#define CONFIG_RCU_CPU_STALL_TIMEOUT 60
+-#define CONFIG_BACKLIGHT_ADP5520_MODULE 1
+-#define CONFIG_USB_GSPCA_SQ905C_MODULE 1
+-#define CONFIG_SATA_VITESSE_MODULE 1
+-#define CONFIG_USB_ZR364XX_MODULE 1
+-#define CONFIG_NET_DSA_MV88E6XXX_MODULE 1
+-#define CONFIG_CHECKPOINT_RESTORE 1
+-#define CONFIG_PRINTER_MODULE 1
+-#define CONFIG_RTC_DRV_ISL1208_MODULE 1
+-#define CONFIG_ISDN_DIVAS_DIVACAPI_MODULE 1
+-#define CONFIG_SND_VERBOSE_PROCFS 1
+-#define CONFIG_SND_FIREWIRE_LIB_MODULE 1
+-#define CONFIG_DA9052_WATCHDOG_MODULE 1
+-#define CONFIG_CFG80211_DEBUGFS 1
+-#define CONFIG_LAPB_MODULE 1
+-#define CONFIG_IIO_ST_GYRO_3AXIS_MODULE 1
+-#define CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY 2048
+-#define CONFIG_IP_ROUTE_MULTIPATH 1
+-#define CONFIG_RTC_DRV_PCF2123_MODULE 1
+-#define CONFIG_ISDN_DIVAS_USERIDI_MODULE 1
+-#define CONFIG_DVB_LNBP21_MODULE 1
+-#define CONFIG_XEN_NETDEV_FRONTEND 1
+-#define CONFIG_M25PXX_USE_FAST_READ 1
+-#define CONFIG_DVB_TDA10048_MODULE 1
+-#define CONFIG_INPUT_FF_MEMLESS_MODULE 1
+-#define CONFIG_PARAVIRT_CLOCK 1
+-#define CONFIG_BMP085_I2C_MODULE 1
+-#define CONFIG_SENSORS_W83627HF_MODULE 1
+-#define CONFIG_CHR_DEV_SG 1
+-#define CONFIG_W35UND_MODULE 1
+-#define CONFIG_USB_CDC_PHONET_MODULE 1
+-#define CONFIG_IP_SET_HASH_NET_MODULE 1
+-#define CONFIG_NET_SCH_DSMARK_MODULE 1
+-#define CONFIG_SND_AD1889_MODULE 1
+-#define CONFIG_SSB_DRIVER_PCICORE_POSSIBLE 1
+-#define CONFIG_MISDN_AVMFRITZ_MODULE 1
+-#define CONFIG_X86_RESERVE_LOW 64
+-#define CONFIG_SMS_SDIO_DRV_MODULE 1
+-#define CONFIG_NEED_SG_DMA_LENGTH 1
+-#define CONFIG_SND_MPU401_MODULE 1
+-#define CONFIG_DVB_CX24116_MODULE 1
+-#define CONFIG_POWER_RESET 1
+-#define CONFIG_CRYPTO_XCBC_MODULE 1
+-#define CONFIG_NF_NAT_AMANDA_MODULE 1
+-#define CONFIG_IPW2200_MODULE 1
+-#define CONFIG_BRIDGE_EBT_MARK_MODULE 1
+-#define CONFIG_KEYBOARD_QT2160_MODULE 1
+-#define CONFIG_SENSORS_ADT7411_MODULE 1
+-#define CONFIG_USB_RENESAS_USBHS_UDC_MODULE 1
+-#define CONFIG_IXGBE_DCA 1
+-#define CONFIG_IR_GPIO_CIR_MODULE 1
+-#define CONFIG_IP6_NF_MATCH_IPV6HEADER_MODULE 1
+-#define CONFIG_MACVLAN_MODULE 1
+-#define CONFIG_TPS6105X_MODULE 1
+-#define CONFIG_PATA_PDC_OLD_MODULE 1
+-#define CONFIG_L2TP_V3 1
+-#define CONFIG_CHELSIO_T1_1G 1
+-#define CONFIG_BPF_JIT 1
+-#define CONFIG_IIO_INTERRUPT_TRIGGER_MODULE 1
+-#define CONFIG_SENSORS_INA2XX_MODULE 1
+-#define CONFIG_WLCORE_SDIO_MODULE 1
+-#define CONFIG_FB_ARK_MODULE 1
+-#define CONFIG_JOYSTICK_IFORCE_MODULE 1
+-#define CONFIG_PCIEASPM_DEFAULT 1
+-#define CONFIG_PROFILING 1
+-#define CONFIG_PCF50633_ADC_MODULE 1
+-#define CONFIG_ARCNET_MODULE 1
+-#define CONFIG_SND_SOC_WM8731_MODULE 1
+-#define CONFIG_I2C_ALI15X3_MODULE 1
+-#define CONFIG_SPARSEMEM 1
+-#define CONFIG_INET6_XFRM_MODE_TRANSPORT_MODULE 1
+-#define CONFIG_LEDS_LP5523_MODULE 1
+-#define CONFIG_REGULATOR_FAN53555_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_2032_MODULE 1
+-#define CONFIG_CRYPTO_ARC4_MODULE 1
+-#define CONFIG_SND_TEA575X_MODULE 1
+-#define CONFIG_COMMON_CLK_MAX77686_MODULE 1
+-#define CONFIG_IEEE802154_6LOWPAN_MODULE 1
+-#define CONFIG_VHOST_NET_MODULE 1
+-#define CONFIG_VIDEO_TEA6415C_MODULE 1
+-#define CONFIG_USB_ENESTORAGE_MODULE 1
+-#define CONFIG_DVB_STV0900_MODULE 1
+-#define CONFIG_I2C_NFORCE2_MODULE 1
+-#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1
+-#define CONFIG_USB_GL860_MODULE 1
+-#define CONFIG_SLHC 1
+-#define CONFIG_NET_VENDOR_TEHUTI 1
+-#define CONFIG_SCSI_UFSHCD_PCI_MODULE 1
+-#define CONFIG_SND_ALS300_MODULE 1
+-#define CONFIG_ADT7316_I2C_MODULE 1
+-#define CONFIG_KEYBOARD_GPIO_POLLED_MODULE 1
+-#define CONFIG_I2C_EG20T_MODULE 1
+-#define CONFIG_SCSI_TGT_MODULE 1
+-#define CONFIG_CRYPTO_MANAGER 1
+-#define CONFIG_NET_SCH_HTB_MODULE 1
+-#define CONFIG_EEPROM_AT24_MODULE 1
+-#define CONFIG_UIO_SERCOS3_MODULE 1
+-#define CONFIG_HOSTAP_FIRMWARE_NVRAM 1
+-#define CONFIG_PPP_BSDCOMP_MODULE 1
+-#define CONFIG_SCHED_SMT 1
+-#define CONFIG_DVB_USB_TTUSB2_MODULE 1
+-#define CONFIG_MTD_NAND_MODULE 1
+-#define CONFIG_CIFS_STATS 1
+-#define CONFIG_RT_MUTEXES 1
+-#define CONFIG_WLCORE_MODULE 1
+-#define CONFIG_HID_ORTEK_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_MARK_MODULE 1
+-#define CONFIG_AR5523_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MXL5007T_MODULE 1
+-#define CONFIG_DRM_I2C_SIL164_MODULE 1
+-#define CONFIG_MD_LINEAR_MODULE 1
+-#define CONFIG_SATA_INIC162X_MODULE 1
+-#define CONFIG_HUGETLBFS 1
+-#define CONFIG_VIDEO_TIMBERDALE_MODULE 1
+-#define CONFIG_CHECK_SIGNATURE 1
+-#define CONFIG_DVB_TDA10021_MODULE 1
+-#define CONFIG_VIDEO_CX231XX_DVB_MODULE 1
+-#define CONFIG_WL1251_MODULE 1
+-#define CONFIG_I2C_ALGOBIT_MODULE 1
+-#define CONFIG_IPV6_SUBTREES 1
+-#define CONFIG_MMC_BLOCK_MODULE 1
+-#define CONFIG_NET_CLS_FW_MODULE 1
+-#define CONFIG_KVM_MODULE 1
+-#define CONFIG_SND_SIMPLE_CARD_MODULE 1
+-#define CONFIG_ABX500_CORE 1
+-#define CONFIG_W1_SLAVE_DS2781_MODULE 1
+-#define CONFIG_VIDEO_SAA7185_MODULE 1
+-#define CONFIG_SND_PCI 1
+-#define CONFIG_VIDEO_SAA7134_DVB_MODULE 1
+-#define CONFIG_BATTERY_BQ27X00_I2C 1
+-#define CONFIG_ATM_FORE200E_DEBUG 0
+-#define CONFIG_EXPERT 1
+-#define CONFIG_TOUCHSCREEN_PCAP_MODULE 1
+-#define CONFIG_ISDN_DRV_HISAX_MODULE 1
+-#define CONFIG_ATL1C_MODULE 1
+-#define CONFIG_IR_SANYO_DECODER_MODULE 1
+-#define CONFIG_DMAR_TABLE 1
+-#define CONFIG_SND_SOC_WM8727_MODULE 1
+-#define CONFIG_HW_RANDOM_INTEL_MODULE 1
+-#define CONFIG_NET_DSA_MV88E6XXX_NEED_PPU 1
+-#define CONFIG_LCD_LTV350QV_MODULE 1
+-#define CONFIG_LIRC_SERIAL_MODULE 1
+-#define CONFIG_LXT_PHY 1
+-#define CONFIG_FB_MB862XX_MODULE 1
+-#define CONFIG_VIDEO_MT9V011_MODULE 1
+-#define CONFIG_SND_SOC_ALC5623_MODULE 1
+-#define CONFIG_TOUCHSCREEN_W90X900_MODULE 1
+-#define CONFIG_WIRELESS 1
+-#define CONFIG_WEXT_PROC 1
+-#define CONFIG_SND_SOC_ALL_CODECS_MODULE 1
+-#define CONFIG_SQUASHFS_MODULE 1
+-#define CONFIG_EDAC_I7CORE_MODULE 1
+-#define CONFIG_HZ_250 1
+-#define CONFIG_FB_N411_MODULE 1
+-#define CONFIG_X86_IO_APIC 1
+-#define CONFIG_DELL_WMI_AIO_MODULE 1
+-#define CONFIG_SND_ALS4000_MODULE 1
+-#define CONFIG_USB_GSPCA_KONICA_MODULE 1
+-#define CONFIG_SND_SOC_WM8770_MODULE 1
+-#define CONFIG_NET_SCH_TBF_MODULE 1
+-#define CONFIG_BT_HCIBTUSB_MODULE 1
+-#define CONFIG_DVB_CX22702_MODULE 1
+-#define CONFIG_KGDB 1
+-#define CONFIG_SERIO_RAW_MODULE 1
+-#define CONFIG_TASK_IO_ACCOUNTING 1
+-#define CONFIG_FAT_DEFAULT_IOCHARSET "iso8859-1"
+-#define CONFIG_UWB_MODULE 1
+-#define CONFIG_ASYNC_XOR_MODULE 1
+-#define CONFIG_I2O_CONFIG_MODULE 1
+-#define CONFIG_ISDN_CAPI_MIDDLEWARE 1
+-#define CONFIG_NET_CLS_RSVP_MODULE 1
+-#define CONFIG_TIPC_MODULE 1
+-#define CONFIG_MEMORY_HOTPLUG_SPARSE 1
+-#define CONFIG_DVB_STB6100_MODULE 1
+-#define CONFIG_W83977F_WDT_MODULE 1
+-#define CONFIG_MD_RAID0_MODULE 1
+-#define CONFIG_FRAME_WARN 1024
+-#define CONFIG_USB_NET_CDC_NCM_MODULE 1
+-#define CONFIG_HID_GENERIC_MODULE 1
+-#define CONFIG_FB_SIS_300 1
+-#define CONFIG_ACT200L_DONGLE_MODULE 1
+-#define CONFIG_DUMMY_IRQ_MODULE 1
+-#define CONFIG_AD7303_MODULE 1
+-#define CONFIG_HP_WATCHDOG_MODULE 1
+-#define CONFIG_MTD_DATAFLASH_OTP 1
+-#define CONFIG_COMEDI_USB_DRIVERS 1
+-#define CONFIG_BCM87XX_PHY 1
+-#define CONFIG_I2C_DESIGNWARE_PCI_MODULE 1
+-#define CONFIG_ASYNC_RAID6_TEST_MODULE 1
+-#define CONFIG_USB_ETH_MODULE 1
+-#define CONFIG_PATA_SCH_MODULE 1
+-#define CONFIG_GENERIC_HWEIGHT 1
+-#define CONFIG_INITRAMFS_SOURCE ""
+-#define CONFIG_RTL_CARDS_MODULE 1
+-#define CONFIG_PATA_NETCELL_MODULE 1
+-#define CONFIG_INPUT_IMS_PCU_MODULE 1
+-#define CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE 1
+-#define CONFIG_ATM_CLIP_MODULE 1
+-#define CONFIG_COMEDI_RTD520_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_SIGMATEL 1
+-#define CONFIG_CGROUPS 1
+-#define CONFIG_SND_USB_CAIAQ_INPUT 1
+-#define CONFIG_MMC 1
+-#define CONFIG_LZO_COMPRESS 1
+-#define CONFIG_USB_F_PHONET_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_GUNZE 1
+-#define CONFIG_CRYPTO_SEQIV_MODULE 1
+-#define CONFIG_DM_CACHE_CLEANER_MODULE 1
+-#define CONFIG_BRCMFMAC_MODULE 1
+-#define CONFIG_COMEDI_QUATECH_DAQP_CS_MODULE 1
+-#define CONFIG_TOUCHSCREEN_AD7877_MODULE 1
+-#define CONFIG_SND_HDA_POWER_SAVE_DEFAULT 0
+-#define CONFIG_TTY_PRINTK 1
+-#define CONFIG_HID_LOGITECH_MODULE 1
+-#define CONFIG_SND_INDIGODJX_MODULE 1
+-#define CONFIG_ISDN_I4L_MODULE 1
+-#define CONFIG_ARCNET_COM90xx_MODULE 1
+-#define CONFIG_VME_BUS_MODULE 1
+-#define CONFIG_DM_LOG_USERSPACE_MODULE 1
+-#define CONFIG_JOYSTICK_GAMECON_MODULE 1
+-#define CONFIG_SCSI_ENCLOSURE_MODULE 1
+-#define CONFIG_CAPI_EICON 1
+-#define CONFIG_DVB_SP887X_MODULE 1
+-#define CONFIG_STACKTRACE 1
+-#define CONFIG_NET_EMATCH_CANID_MODULE 1
+-#define CONFIG_SENSORS_LM92_MODULE 1
+-#define CONFIG_EXTCON 1
+-#define CONFIG_COMEDI_ADDI_APCI_3120_MODULE 1
+-#define CONFIG_SCSI_SAS_LIBSAS_MODULE 1
+-#define CONFIG_ISCSI_TARGET_MODULE 1
+-#define CONFIG_ARCNET_RIM_I_MODULE 1
+-#define CONFIG_NETFILTER_NETLINK_QUEUE_CT 1
+-#define CONFIG_OPROFILE_NMI_TIMER 1
+-#define CONFIG_PATA_RADISYS_MODULE 1
+-#define CONFIG_IPV6_GRE_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_IDLETIMER_MODULE 1
+-#define CONFIG_FB_ATY128_MODULE 1
+-#define CONFIG_UIO_AEC_MODULE 1
+-#define CONFIG_SCSI_PM8001_MODULE 1
+-#define CONFIG_SOC_CAMERA_IMX074_MODULE 1
+-#define CONFIG_USB_NET_RNDIS_WLAN_MODULE 1
+-#define CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC 1
+-#define CONFIG_VIDEO_TUNER_MODULE 1
+-#define CONFIG_IFB_MODULE 1
+-#define CONFIG_IIO_ST_ACCEL_3AXIS_MODULE 1
+-#define CONFIG_USB_FUNCTIONFS_ETH 1
+-#define CONFIG_HAS_IOPORT 1
+-#define CONFIG_LEDS_LP3944_MODULE 1
+-#define CONFIG_USB_SEVSEG_MODULE 1
+-#define CONFIG_VIDEOBUF_DMA_CONTIG_MODULE 1
+-#define CONFIG_SOC_CAMERA_SCALE_CROP_MODULE 1
+-#define CONFIG_SND_MPU401_UART_MODULE 1
+-#define CONFIG_RTC_DRV_PCF8563_MODULE 1
+-#define CONFIG_SND_MAX_CARDS 32
+-#define CONFIG_PPTP_MODULE 1
+-#define CONFIG_DVB_USB_V2_MODULE 1
+-#define CONFIG_SENSORS_SMSC47M1_MODULE 1
+-#define CONFIG_SND_USB_US122L_MODULE 1
+-#define CONFIG_USB_CDC_COMPOSITE_MODULE 1
+-#define CONFIG_USB_DSBR_MODULE 1
+-#define CONFIG_ISCSI_IBFT_FIND 1
+-#define CONFIG_ACORN_PARTITION_ICS 1
+-#define CONFIG_SND_DEBUG 1
+-#define CONFIG_KGDB_KDB 1
+-#define CONFIG_DCB 1
+-#define CONFIG_PCIPCWATCHDOG_MODULE 1
+-#define CONFIG_GPIO_LANGWELL 1
+-#define CONFIG_CGROUP_CPUACCT 1
+-#define CONFIG_USB_SERIAL_OTI6858_MODULE 1
+-#define CONFIG_ACTISYS_DONGLE_MODULE 1
+-#define CONFIG_VIDEO_GO7007_USB_MODULE 1
+-#define CONFIG_CAN_BCM_MODULE 1
+-#define CONFIG_PATA_CS5520_MODULE 1
+-#define CONFIG_X86_CMPXCHG64 1
+-#define CONFIG_VIDEO_SAA7146_VV_MODULE 1
+-#define CONFIG_CARL9170_HWRNG 1
+-#define CONFIG_NLMON_MODULE 1
+-#define CONFIG_ATH10K_PCI_MODULE 1
+-#define CONFIG_CAN_PEAK_PCMCIA_MODULE 1
+-#define CONFIG_NET_VENDOR_VIA 1
+-#define CONFIG_USB_ATM_MODULE 1
+-#define CONFIG_ISA_DMA_API 1
+-#define CONFIG_PCMCIA_FDOMAIN_MODULE 1
+-#define CONFIG_HZ 250
+-#define CONFIG_SND_AT73C213_MODULE 1
+-#define CONFIG_IIO_SIMPLE_DUMMY_MODULE 1
+-#define CONFIG_SERIAL_8250_SHARE_IRQ 1
+-#define CONFIG_UCB1400_CORE_MODULE 1
+-#define CONFIG_IXGBE_HWMON 1
+-#define CONFIG_USB_RTL8152_MODULE 1
+-#define CONFIG_NEED_MULTIPLE_NODES 1
+-#define CONFIG_ECHO_MODULE 1
+-#define CONFIG_I2C_HELPER_AUTO 1
+-#define CONFIG_NETFILTER_XT_MATCH_U32_MODULE 1
+-#define CONFIG_COMEDI_AMPLC_DIO200_PCI_MODULE 1
+-#define CONFIG_VIDEO_SONY_BTF_MPX_MODULE 1
+-#define CONFIG_SQUASHFS_ZLIB 1
+-#define CONFIG_VIDEO_CX23885_MODULE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1
+-#define CONFIG_AGP_INTEL 1
+-#define CONFIG_ACPI_PROC_EVENT 1
+-#define CONFIG_INLINE_SPIN_UNLOCK_IRQ 1
+-#define CONFIG_NLS_ISO8859_4_MODULE 1
+-#define CONFIG_TOUCHSCREEN_AD7879_I2C_MODULE 1
+-#define CONFIG_INTEL_OAKTRAIL_MODULE 1
+-#define CONFIG_SND_MTS64_MODULE 1
+-#define CONFIG_GPIO_TIMBERDALE 1
+-#define CONFIG_DIRECT_GBPAGES 1
+-#define CONFIG_ADE7759_MODULE 1
+-#define CONFIG_IDE_PHISON_MODULE 1
+-#define CONFIG_FB_BACKLIGHT 1
+-#define CONFIG_RTC_DRV_RX8025_MODULE 1
+-#define CONFIG_SERIAL_8250_NR_UARTS 48
+-#define CONFIG_RTC_DRV_MAX8997_MODULE 1
+-#define CONFIG_NET_EMATCH_IPSET_MODULE 1
+-#define CONFIG_TI_AM335X_ADC_MODULE 1
+-#define CONFIG_AD7291_MODULE 1
+-#define CONFIG_INFINIBAND_SRPT_MODULE 1
+-#define CONFIG_CRYPTO_RMD160_MODULE 1
+-#define CONFIG_IR_IMON_MODULE 1
+-#define CONFIG_PATA_HPT366_MODULE 1
+-#define CONFIG_SCSI_EATA_MODULE 1
+-#define CONFIG_LIS3L02DQ_MODULE 1
+-#define CONFIG_NET_VENDOR_ARC 1
+-#define CONFIG_INFINIBAND_IPATH_MODULE 1
+-#define CONFIG_INET_AH_MODULE 1
+-#define CONFIG_SENSORS_ATXP1_MODULE 1
+-#define CONFIG_NET_DSA_MV88E6123_61_65_MODULE 1
+-#define CONFIG_HAVE_USER_RETURN_NOTIFIER 1
+-#define CONFIG_MTD_UBI_BEB_LIMIT 20
+-#define CONFIG_DEFAULT_IOSCHED "deadline"
+-#define CONFIG_DRM_I2C_CH7006_MODULE 1
+-#define CONFIG_TABLET_USB_KBTAB_MODULE 1
+-#define CONFIG_UDF_FS_MODULE 1
+-#define CONFIG_IPV6_MIP6_MODULE 1
+-#define CONFIG_ADIS16060_MODULE 1
+-#define CONFIG_MARVELL_PHY 1
+-#define CONFIG_HAVE_PERF_USER_STACK_DUMP 1
+-#define CONFIG_ACPI_EC_DEBUGFS_MODULE 1
+-#define CONFIG_VXFS_FS_MODULE 1
+-#define CONFIG_GPIO_SCH_MODULE 1
+-#define CONFIG_CGROUP_PERF 1
+-#define CONFIG_NLATTR 1
+-#define CONFIG_SND_LOLA_MODULE 1
+-#define CONFIG_ISDN_CAPI_MODULE 1
+-#define CONFIG_HOTPLUG_PCI 1
+-#define CONFIG_IIO_ADIS_LIB_MODULE 1
+-#define CONFIG_SND_SOC_MAX9850_MODULE 1
+-#define CONFIG_ZD1211RW_MODULE 1
+-#define CONFIG_TCP_CONG_CUBIC 1
+-#define CONFIG_CEPH_FS_MODULE 1
+-#define CONFIG_SCSI_NETLINK 1
+-#define CONFIG_NR_CPUS 256
+-#define CONFIG_IXGBE_MODULE 1
+-#define CONFIG_SUSPEND_FREEZER 1
+-#define CONFIG_IIO_BUFFER_CB 1
+-#define CONFIG_LIRC_IMON_MODULE 1
+-#define CONFIG_MMC_SDHCI_MODULE 1
+-#define CONFIG_USB_MOUSE_MODULE 1
+-#define CONFIG_B43_SSB 1
+-#define CONFIG_SND_SUPPORT_OLD_API 1
+-#define CONFIG_DVB_DIB7000M_MODULE 1
+-#define CONFIG_NETFILTER_XT_CONNMARK_MODULE 1
+-#define CONFIG_IIO_ST_ACCEL_SPI_3AXIS_MODULE 1
+-#define CONFIG_LEDS_LT3593_MODULE 1
+-#define CONFIG_LOGITECH_FF 1
+-#define CONFIG_DVB_AF9033_MODULE 1
+-#define CONFIG_HID_KYE_MODULE 1
+-#define CONFIG_MOUSE_PS2_TRACKPOINT 1
+-#define CONFIG_MOUSE_VSXXXAA_MODULE 1
+-#define CONFIG_FIRMWARE_IN_KERNEL 1
+-#define CONFIG_VIDEO_TM6000_ALSA_MODULE 1
+-#define CONFIG_DRM_NOUVEAU_BACKLIGHT 1
+-#define CONFIG_SOFT_WATCHDOG_MODULE 1
+-#define CONFIG_SYSFS 1
+-#define CONFIG_IPWIRELESS_MODULE 1
+-#define CONFIG_PARIDE_FRPW_MODULE 1
+-#define CONFIG_IP_SET_BITMAP_IPMAC_MODULE 1
+-#define CONFIG_MTD_NAND_RICOH_MODULE 1
+-#define CONFIG_USB_DEFAULT_PERSIST 1
+-#define CONFIG_PANEL_PARPORT 0
+-#define CONFIG_TOUCHSCREEN_UCB1400_MODULE 1
+-#define CONFIG_LIB80211_CRYPT_WEP_MODULE 1
+-#define CONFIG_DELL_WMI_MODULE 1
+-#define CONFIG_SBP_TARGET_MODULE 1
+-#define CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST 1
+-#define CONFIG_SENSORS_W83791D_MODULE 1
+-#define CONFIG_INPUT_TOUCHSCREEN 1
+-#define CONFIG_RT2800USB_UNKNOWN 1
+-#define CONFIG_EDAC_LEGACY_SYSFS 1
+-#define CONFIG_RADIO_SI4713_MODULE 1
+-#define CONFIG_DSCC4_PCI_RST 1
+-#define CONFIG_RIONET_RX_SIZE 128
+-#define CONFIG_I2C_VIAPRO_MODULE 1
+-#define CONFIG_FB_HYPERV_MODULE 1
+-#define CONFIG_USB_GSPCA_NW80X_MODULE 1
+-#define CONFIG_NF_CONNTRACK_LABELS 1
+-#define CONFIG_GPIO_ADP5520_MODULE 1
+-#define CONFIG_RTC_DRV_RC5T583_MODULE 1
+-#define CONFIG_FB_SM7XX_MODULE 1
+-#define CONFIG_IP_NF_MATCH_AH_MODULE 1
+-#define CONFIG_INFINIBAND_SRP_MODULE 1
+-#define CONFIG_SYNCLINK_CS_MODULE 1
+-#define CONFIG_CARL9170_WPC 1
+-#define CONFIG_ARPD 1
+-#define CONFIG_TCP_CONG_VENO_MODULE 1
+-#define CONFIG_DVB_S5H1420_MODULE 1
+-#define CONFIG_INFINIBAND_MODULE 1
+-#define CONFIG_AFS_FS_MODULE 1
+-#define CONFIG_MFD_88PM800_MODULE 1
+-#define CONFIG_USB_EHCI_HCD_PLATFORM 1
+-#define CONFIG_SOC_CAMERA_MT9M001_MODULE 1
+-#define CONFIG_DVB_NET 1
+-#define CONFIG_ASN1 1
+-#define CONFIG_I2C_PARPORT_LIGHT_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_LIMIT_MODULE 1
+-#define CONFIG_CRYPTO_AES_NI_INTEL_MODULE 1
+-#define CONFIG_NFC_SHDLC 1
+-#define CONFIG_ULI526X_MODULE 1
+-#define CONFIG_TOUCHSCREEN_BU21013_MODULE 1
+-#define CONFIG_CC_STACKPROTECTOR 1
+-#define CONFIG_I2C_SIMTEC_MODULE 1
+-#define CONFIG_FB_SMSCUFX_MODULE 1
+-#define CONFIG_XZ_DEC_ARM 1
+-#define CONFIG_DEFAULT_IO_DELAY_TYPE 1
+-#define CONFIG_NLS_CODEPAGE_775_MODULE 1
+-#define CONFIG_USB_CONFIGFS_EEM 1
+-#define CONFIG_IRLAN_MODULE 1
+-#define CONFIG_RTLLIB_CRYPTO_TKIP_MODULE 1
+-#define CONFIG_MOUSE_SERIAL_MODULE 1
+-#define CONFIG_FB_SYS_FOPS_MODULE 1
+-#define CONFIG_JOYSTICK_ANALOG_MODULE 1
+-#define CONFIG_MISDN_HFCPCI_MODULE 1
+-#define CONFIG_WIMAX_MODULE 1
+-#define CONFIG_EXT2_FS_SECURITY 1
+-#define CONFIG_I2O_SCSI_MODULE 1
+-#define CONFIG_HAVE_SYSCALL_TRACEPOINTS 1
+-#define CONFIG_MEDIA_TUNER_XC4000_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_DEVGROUP_MODULE 1
+-#define CONFIG_ACPI_BATTERY 1
+-#define CONFIG_DVB_LGDT3305_MODULE 1
+-#define CONFIG_MEMSTICK_MODULE 1
+-#define CONFIG_SND_SOC_ALC5632_MODULE 1
+-#define CONFIG_FUJITSU_TABLET_MODULE 1
+-#define CONFIG_IIO_ST_PRESS_SPI_MODULE 1
+-#define CONFIG_KEYBOARD_MPR121_MODULE 1
+-#define CONFIG_VIDEO_USBTV_MODULE 1
+-#define CONFIG_PM_DEVFREQ 1
+-#define CONFIG_MFD_JANZ_CMODIO_MODULE 1
+-#define CONFIG_HISAX_ELSA 1
+-#define CONFIG_VIDEO_SAA7146_MODULE 1
+-#define CONFIG_MTD_COMPLEX_MAPPINGS 1
+-#define CONFIG_FB 1
+-#define CONFIG_BATTERY_DA9030_MODULE 1
+-#define CONFIG_TRACING 1
+-#define CONFIG_IIO_SYSFS_TRIGGER_MODULE 1
+-#define CONFIG_IP_NF_MATCH_RPFILTER_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_865_MODULE 1
+-#define CONFIG_I2C_COMPAT 1
+-#define CONFIG_KEYBOARD_OPENCORES_MODULE 1
+-#define CONFIG_LIRC_IGORPLUGUSB_MODULE 1
+-#define CONFIG_NFSD_V3_ACL 1
+-#define CONFIG_USB_GSPCA_SPCA500_MODULE 1
+-#define CONFIG_GPIO_UCB1400 1
+-#define CONFIG_SPARSEMEM_VMEMMAP_ENABLE 1
+-#define CONFIG_LEDS_TRIGGER_CPU 1
+-#define CONFIG_PC300TOO_MODULE 1
+-#define CONFIG_I2O_BLOCK_MODULE 1
+-#define CONFIG_HID_ELO_MODULE 1
+-#define CONFIG_SND_SOC_DA7213_MODULE 1
+-#define CONFIG_NET_ACT_NAT_MODULE 1
+-#define CONFIG_BATTERY_DS2780_MODULE 1
+-#define CONFIG_FTRACE_MCOUNT_RECORD 1
+-#define CONFIG_OCFS2_FS_STATS 1
+-#define CONFIG_VIRTUALIZATION 1
+-#define CONFIG_VIDEO_ZORAN_DC10_MODULE 1
+-#define CONFIG_MSDOS_PARTITION 1
+-#define CONFIG_VIRT_CPU_ACCOUNTING_GEN 1
+-#define CONFIG_MYRI10GE_DCA 1
+-#define CONFIG_PATA_PLATFORM_MODULE 1
+-#define CONFIG_BT_HCIUART_MODULE 1
+-#define CONFIG_TEST_STRING_HELPERS_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_NEXIO 1
+-#define CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE 0
+-#define CONFIG_RT2800USB_RT33XX 1
+-#define CONFIG_SND_SOC_WM8903_MODULE 1
+-#define CONFIG_DVB_LNBP22_MODULE 1
+-#define CONFIG_SENSORS_WM831X_MODULE 1
+-#define CONFIG_RTC_DRV_TPS6586X_MODULE 1
+-#define CONFIG_GPIO_ADP5588_MODULE 1
+-#define CONFIG_SENSORS_TMP421_MODULE 1
+-#define CONFIG_FB_RADEON_I2C 1
+-#define CONFIG_USB_GSPCA_SN9C2028_MODULE 1
+-#define CONFIG_SUNGEM_MODULE 1
+-#define CONFIG_HAVE_OPROFILE 1
+-#define CONFIG_IR_STREAMZAP_MODULE 1
+-#define CONFIG_SND_HDSPM_MODULE 1
+-#define CONFIG_CAN_PEAK_PCIEC 1
+-#define CONFIG_EFI_VARS_PSTORE_MODULE 1
+-#define CONFIG_X86_INTEL_LPSS 1
+-#define CONFIG_LEDS_CLEVO_MAIL_MODULE 1
+-#define CONFIG_CPU_IDLE_GOV_LADDER 1
+-#define CONFIG_IP_SET_MODULE 1
+-#define CONFIG_THERMAL 1
+-#define CONFIG_DVB_BUDGET_PATCH_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TOUCHRIGHT_MODULE 1
+-#define CONFIG_AMD8111_ETH_MODULE 1
+-#define CONFIG_COMEDI_ADL_PCI8164_MODULE 1
+-#define CONFIG_AMD_IOMMU 1
+-#define CONFIG_I2C_AMD8111_MODULE 1
+-#define CONFIG_INPUT_POWERMATE_MODULE 1
+-#define CONFIG_NET_FC 1
+-#define CONFIG_FB_S3_MODULE 1
+-#define CONFIG_BRCMUTIL_MODULE 1
+-#define CONFIG_DVB_TTUSB_BUDGET_MODULE 1
+-#define CONFIG_VETH_MODULE 1
+-#define CONFIG_RTC_DRV_PCF8583_MODULE 1
+-#define CONFIG_SND_SOC_WM_HUBS_MODULE 1
+-#define CONFIG_DVB_MT312_MODULE 1
+-#define CONFIG_MFD_TPS65912_I2C 1
+-#define CONFIG_NET_VENDOR_3COM 1
+-#define CONFIG_ATM_DUMMY_MODULE 1
+-#define CONFIG_MAX517_MODULE 1
+-#define CONFIG_HID_PETALYNX_MODULE 1
+-#define CONFIG_AMD_NUMA 1
+-#define CONFIG_MTD_PCMCIA_MODULE 1
+-#define CONFIG_FB_ATY_CT 1
+-#define CONFIG_ADXRS450_MODULE 1
+-#define CONFIG_TLAN_MODULE 1
+-#define CONFIG_COMEDI_AMPLC_PCI230_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_VIA 1
+-#define CONFIG_MEMSTICK_TIFM_MS_MODULE 1
+-#define CONFIG_ATM_LANE_MODULE 1
+-#define CONFIG_SENSORS_W83L786NG_MODULE 1
+-#define CONFIG_NET_ACT_MIRRED_MODULE 1
+-#define CONFIG_HAVE_ARCH_KGDB 1
+-#define CONFIG_USB_MUSB_TUSB6010_MODULE 1
+-#define CONFIG_INPUT_APANEL_MODULE 1
+-#define CONFIG_B43_PCICORE_AUTOSELECT 1
+-#define CONFIG_NF_CONNTRACK_IPV4_MODULE 1
+-#define CONFIG_QLCNIC_SRIOV 1
+-#define CONFIG_SERIAL_MFD_HSU_MODULE 1
+-#define CONFIG_MYRI10GE_MODULE 1
+-#define CONFIG_X86_PM_TIMER 1
+-#define CONFIG_USB_VL600_MODULE 1
+-#define CONFIG_ZONE_DMA_FLAG 1
+-#define CONFIG_PARIDE_BPCK_MODULE 1
+-#define CONFIG_RTC_DRV_HID_SENSOR_TIME_MODULE 1
+-#define CONFIG_B43LEGACY_HWRNG 1
+-#define CONFIG_BATTERY_BQ27x00_MODULE 1
+-#define CONFIG_ATH9K_BTCOEX_SUPPORT 1
+-#define CONFIG_CAN_SOFTING_MODULE 1
+-#define CONFIG_RT2X00_LIB_PCI_MODULE 1
+-#define CONFIG_SND_DUMMY_MODULE 1
+-#define CONFIG_SCSI_MVSAS_MODULE 1
+-#define CONFIG_ADIS16260_MODULE 1
+-#define CONFIG_NET_VENDOR_INTEL 1
+-#define CONFIG_USB_WUSB_CBAF_MODULE 1
+-#define CONFIG_NFC_PN544_I2C_MODULE 1
+-#define CONFIG_RPS 1
+-#define CONFIG_PACKET_DIAG_MODULE 1
+-#define CONFIG_DVB_AU8522_DTV_MODULE 1
+-#define CONFIG_HISAX_ST5481_MODULE 1
+-#define CONFIG_USB_NET_ZAURUS_MODULE 1
+-#define CONFIG_DEVFREQ_GOV_PERFORMANCE 1
+-#define CONFIG_INET6_XFRM_TUNNEL_MODULE 1
+-#define CONFIG_DRM_AST_MODULE 1
+-#define CONFIG_DM_MULTIPATH_ST_MODULE 1
+-#define CONFIG_SPI_DW_MID_DMA 1
+-#define CONFIG_SENSORS_LM95241_MODULE 1
+-#define CONFIG_PROC_PID_CPUSET 1
+-#define CONFIG_REALTEK_AUTOPM 1
+-#define CONFIG_USB_NET_AX88179_178A_MODULE 1
+-#define CONFIG_FB_METRONOME_MODULE 1
+-#define CONFIG_USB_MV_U3D_MODULE 1
+-#define CONFIG_AD525X_DPOT_SPI_MODULE 1
+-#define CONFIG_LEGACY_PTY_COUNT 0
+-#define CONFIG_MEDIA_TUNER_E4000_MODULE 1
+-#define CONFIG_INPUT_ATLAS_BTNS_MODULE 1
+-#define CONFIG_ACQUIRE_WDT_MODULE 1
+-#define CONFIG_VIDEO_SAA6588_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_DMC_TSC10 1
+-#define CONFIG_DVB_ZL10039_MODULE 1
+-#define CONFIG_CAPI_AVM 1
+-#define CONFIG_MTD_MAP_BANK_WIDTH_2 1
+-#define CONFIG_USB_AUDIO_MODULE 1
+-#define CONFIG_WDTPCI_MODULE 1
+-#define CONFIG_USB_SERIAL_DEBUG_MODULE 1
+-#define CONFIG_SENSORS_MAX16064_MODULE 1
+-#define CONFIG_MTD_NAND_DENALI_DT_MODULE 1
+-#define CONFIG_IP_SET_HASH_IPPORTIP_MODULE 1
+-#define CONFIG_MLX4_EN_MODULE 1
+-#define CONFIG_PARIDE_DSTR_MODULE 1
+-#define CONFIG_TABLET_USB_ACECAD_MODULE 1
+-#define CONFIG_HYPERVISOR_GUEST 1
+-#define CONFIG_SENSORS_LM70_MODULE 1
+-#define CONFIG_SERIAL_MAX310X 1
+-#define CONFIG_NET_EMATCH_NBYTE_MODULE 1
+-#define CONFIG_SENSORS_BH1770_MODULE 1
+-#define CONFIG_NORTEL_HERMES_MODULE 1
+-#define CONFIG_OVERLAYFS_FS_MODULE 1
+-#define CONFIG_SIS190_MODULE 1
+-#define CONFIG_RAPIDIO_DMA_ENGINE 1
+-#define CONFIG_TCG_NSC_MODULE 1
+-#define CONFIG_ZISOFS 1
+-#define CONFIG_WIMAX_I2400M_MODULE 1
+-#define CONFIG_CUSE_MODULE 1
+-#define CONFIG_SND_SOC_WM8728_MODULE 1
+-#define CONFIG_FB_BROADSHEET_MODULE 1
+-#define CONFIG_HTC_PASIC3_MODULE 1
+-#define CONFIG_USB_ZERO_MODULE 1
+-#define CONFIG_BLK_DEV_CRYPTOLOOP_MODULE 1
+-#define CONFIG_TOUCHSCREEN_WM97XX_MODULE 1
+-#define CONFIG_IP_MULTICAST 1
+-#define CONFIG_FB_RADEON_MODULE 1
+-#define CONFIG_CRYPTO_RMD256_MODULE 1
+-#define CONFIG_DVB_MT352_MODULE 1
+-#define CONFIG_RC_ATI_REMOTE_MODULE 1
+-#define CONFIG_W83627HF_WDT_MODULE 1
+-#define CONFIG_SQUASHFS_XZ 1
+-#define CONFIG_FB_VOODOO1_MODULE 1
+-#define CONFIG_USB_NET_CX82310_ETH_MODULE 1
+-#define CONFIG_GENERIC_CMOS_UPDATE 1
+-#define CONFIG_NET_VENDOR_CISCO 1
+-#define CONFIG_REGULATOR_AS3711_MODULE 1
+-#define CONFIG_EEPROM_MAX6875_MODULE 1
+-#define CONFIG_W1_MASTER_MATROX_MODULE 1
+-#define CONFIG_DRM_CIRRUS_QEMU_MODULE 1
+-#define CONFIG_MOUSE_APPLETOUCH_MODULE 1
+-#define CONFIG_HID_LOGITECH_DJ_MODULE 1
+-#define CONFIG_DEFAULT_SECURITY "apparmor"
+-#define CONFIG_VIDEO_STK1160_MODULE 1
+-#define CONFIG_TICK_ONESHOT 1
+-#define CONFIG_HISAX_HFCUSB_MODULE 1
+-#define CONFIG_FB_I740_MODULE 1
+-#define CONFIG_XEN_PCIDEV_FRONTEND_MODULE 1
+-#define CONFIG_NF_NAT_PROTO_UDPLITE_MODULE 1
+-#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1
+-#define CONFIG_NETPRIO_CGROUP_MODULE 1
+-#define CONFIG_CRYPTO_CTR_MODULE 1
+-#define CONFIG_GPIO_TPS6586X 1
+-#define CONFIG_PCMCIA_XIRC2PS_MODULE 1
+-#define CONFIG_COMPAT_FOR_U64_ALIGNMENT 1
+-#define CONFIG_MTRR_SANITIZER 1
+-#define CONFIG_DVB_STV090x_MODULE 1
+-#define CONFIG_SCSI_HPTIOP_MODULE 1
+-#define CONFIG_NATIONAL_PHY 1
+-#define CONFIG_B43LEGACY_PCICORE_AUTOSELECT 1
+-#define CONFIG_SPI_DW_PCI_MODULE 1
+-#define CONFIG_ORE_MODULE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1
+-#define CONFIG_DE_AOC 1
+-#define CONFIG_WIRELESS_EXT 1
+-#define CONFIG_MEDIA_TUNER_MT2060_MODULE 1
+-#define CONFIG_HID_PICOLCD_BACKLIGHT 1
+-#define CONFIG_SND_SOC_RT5640_MODULE 1
+-#define CONFIG_COMEDI_ADV_PCI1710_MODULE 1
+-#define CONFIG_SND_HDA_CODEC_CA0110 1
+-#define CONFIG_GPIO_TPS65910 1
+-#define CONFIG_RTC_DRV_RS5C348_MODULE 1
+-#define CONFIG_OMAP_CONTROL_USB_MODULE 1
+-#define CONFIG_VIDEO_SH_MOBILE_CSI2_MODULE 1
+-#define CONFIG_MODVERSIONS 1
+-#define CONFIG_HW_RANDOM 1
+-#define CONFIG_B43_PCI_AUTOSELECT 1
+-#define CONFIG_MUTEX_SPIN_ON_OWNER 1
+-#define CONFIG_NCPFS_STRONG 1
+-#define CONFIG_PATA_LEGACY_MODULE 1
+-#define CONFIG_CRYPTO_ABLK_HELPER_X86_MODULE 1
+-#define CONFIG_IO_DELAY_TYPE_0X80 0
+-#define CONFIG_DVB_USB_AU6610_MODULE 1
+-#define CONFIG_CAN_LEDS 1
+-#define CONFIG_SPI_LM70_LLP_MODULE 1
+-#define CONFIG_X86_SPEEDSTEP_LIB_MODULE 1
+-#define CONFIG_IE6XX_WDT_MODULE 1
+-#define CONFIG_SYS_HYPERVISOR 1
+-#define CONFIG_HAVE_DMA_ATTRS 1
+-#define CONFIG_TOUCHSCREEN_WACOM_I2C_MODULE 1
+-#define CONFIG_ATM_IA_MODULE 1
+-#define CONFIG_IRNET_MODULE 1
+-#define CONFIG_TRACE_ROUTER_MODULE 1
+-#define CONFIG_SND_VIRTUOSO_MODULE 1
+-#define CONFIG_AMIGA_PARTITION 1
+-#define CONFIG_EARLY_PRINTK 1
+-#define CONFIG_THINKPAD_ACPI_ALSA_SUPPORT 1
+-#define CONFIG_MTD_AR7_PARTS_MODULE 1
+-#define CONFIG_MEMCG_SWAP 1
+-#define CONFIG_SENSORS_ADS7871_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_737_MODULE 1
+-#define CONFIG_NF_NAT_IPV4_MODULE 1
+-#define CONFIG_HAVE_FUNCTION_GRAPH_TRACER 1
+-#define CONFIG_HW_RANDOM_VIA_MODULE 1
+-#define CONFIG_SUNDANCE_MODULE 1
+-#define CONFIG_SENSORS_W83781D_MODULE 1
+-#define CONFIG_I2C_DESIGNWARE_PLATFORM_MODULE 1
+-#define CONFIG_CAN_SOFTING_CS_MODULE 1
+-#define CONFIG_HAVE_CMPXCHG_LOCAL 1
+-#define CONFIG_VIDEOBUF2_CORE_MODULE 1
+-#define CONFIG_PARIDE_COMM_MODULE 1
+-#define CONFIG_SSB_DRIVER_GPIO 1
+-#define CONFIG_IRTTY_SIR_MODULE 1
+-#define CONFIG_REGULATOR_ARIZONA_MODULE 1
+-#define CONFIG_EEEPC_WMI_MODULE 1
+-#define CONFIG_INPUT_ADXL34X_I2C_MODULE 1
+-#define CONFIG_NTFS_FS_MODULE 1
+-#define CONFIG_VIDEO_AU0828_V4L2 1
+-#define CONFIG_REGULATOR_MAX8998_MODULE 1
+-#define CONFIG_ACPI_THERMAL 1
+-#define CONFIG_BLK_CPQ_DA_MODULE 1
+-#define CONFIG_RT2X00_LIB_CRYPTO 1
+-#define CONFIG_IIO_PERIODIC_RTC_TRIGGER_MODULE 1
+-#define CONFIG_SCSI_DH_HP_SW_MODULE 1
+-#define CONFIG_IP_SCTP_MODULE 1
+-#define CONFIG_DVB_STB0899_MODULE 1
+-#define CONFIG_P54_PCI_MODULE 1
+-#define CONFIG_LEDS_ADP5520_MODULE 1
+-#define CONFIG_SERIAL_8250_DMA 1
+-#define CONFIG_BASE_SMALL 0
+-#define CONFIG_IWLEGACY_DEBUGFS 1
+-#define CONFIG_ADE7854_I2C_MODULE 1
+-#define CONFIG_XEN_GRANT_DEV_ALLOC_MODULE 1
+-#define CONFIG_ISDN_PPP_BSDCOMP_MODULE 1
+-#define CONFIG_CRYPTO_BLKCIPHER2 1
+-#define CONFIG_SCSI_SAS_ATTRS_MODULE 1
+-#define CONFIG_SECURITY_SELINUX_AVC_STATS 1
+-#define CONFIG_RTL8187_MODULE 1
+-#define CONFIG_DEVPTS_MULTIPLE_INSTANCES 1
+-#define CONFIG_SND_SEQ_DUMMY_MODULE 1
+-#define CONFIG_CRYPTO_AES_X86_64_MODULE 1
+-#define CONFIG_B43LEGACY_PCI_AUTOSELECT 1
+-#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1
+-#define CONFIG_DM_RAID_MODULE 1
+-#define CONFIG_COMPACTION 1
+-#define CONFIG_AD9850_MODULE 1
+-#define CONFIG_NFS_V2_MODULE 1
+-#define CONFIG_USB_HCD_BCMA_MODULE 1
+-#define CONFIG_ADE7854_SPI_MODULE 1
+-#define CONFIG_SCSI_MPT3SAS_MAX_SGE 128
+-#define CONFIG_CAN_SJA1000_ISA_MODULE 1
+-#define CONFIG_DVB_TDA18271C2DD_MODULE 1
+-#define CONFIG_QLGE_MODULE 1
+-#define CONFIG_HAVE_TEXT_POKE_SMP 1
+-#define CONFIG_I2O_BUS_MODULE 1
+-#define CONFIG_VIDEO_TM6000_MODULE 1
+-#define CONFIG_DVB_CXD2820R_MODULE 1
+-#define CONFIG_WM8350_WATCHDOG_MODULE 1
+-#define CONFIG_VIDEO_TDA7432_MODULE 1
+-#define CONFIG_TEST_POWER_MODULE 1
+-#define CONFIG_WIMAX_GDM72XX_USB 1
+-#define CONFIG_RTC_DRV_DS2404_MODULE 1
+-#define CONFIG_COMEDI_NI_DAQ_DIO24_CS_MODULE 1
+-#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1
+-#define CONFIG_GPIO_STMPE 1
+-#define CONFIG_SND_SOC_WM8991_MODULE 1
+-#define CONFIG_STMPE_I2C 1
+-#define CONFIG_SERIAL_ALTERA_UART_BAUDRATE 115200
+-#define CONFIG_THINKPAD_ACPI_HOTKEY_POLL 1
+-#define CONFIG_USB_SERIAL_F81232_MODULE 1
+-#define CONFIG_VIDEO_OV7670_MODULE 1
+-#define CONFIG_RTC_DRV_DS1553_MODULE 1
+-#define CONFIG_TOUCHSCREEN_HAMPSHIRE_MODULE 1
+-#define CONFIG_CRYPTO_KHAZAD_MODULE 1
+-#define CONFIG_TOUCHSCREEN_TSC2005_MODULE 1
+-#define CONFIG_PROC_FS 1
+-#define CONFIG_MMC_CB710_MODULE 1
+-#define CONFIG_NET_PACKET_ENGINE 1
+-#define CONFIG_MTD_BLOCK_MODULE 1
+-#define CONFIG_NET_VENDOR_SILICOM 1
+-#define CONFIG_W83697HF_WDT_MODULE 1
+-#define CONFIG_ACPI_HOTPLUG_MEMORY 1
+-#define CONFIG_VIDEOBUF2_VMALLOC_MODULE 1
+-#define CONFIG_GENERIC_BUG_RELATIVE_POINTERS 1
+-#define CONFIG_SND_SOC_WM8523_MODULE 1
+-#define CONFIG_SECURITY_TOMOYO 1
+-#define CONFIG_RC_MAP_MODULE 1
+-#define CONFIG_LCD_S6E63M0_MODULE 1
+-#define CONFIG_WEXT_PRIV 1
+-#define CONFIG_THINKPAD_ACPI_VIDEO 1
+-#define CONFIG_VIRTIO_MMIO_MODULE 1
+-#define CONFIG_SCSI_LOWLEVEL 1
+-#define CONFIG_ROSE_MODULE 1
+-#define CONFIG_INPUT_GPIO_ROTARY_ENCODER_MODULE 1
+-#define CONFIG_IP_VS_PROTO_AH_ESP 1
+-#define CONFIG_MTD_QINFO_PROBE_MODULE 1
+-#define CONFIG_IRQ_FORCED_THREADING 1
+-#define CONFIG_NILFS2_FS_MODULE 1
+-#define CONFIG_ATH9K_PCI 1
+-#define CONFIG_SECURITY_YAMA_STACKED 1
+-#define CONFIG_NLS_ISO8859_3_MODULE 1
+-#define CONFIG_EXT2_FS_XATTR 1
+-#define CONFIG_CRYPTO_CMAC_MODULE 1
+-#define CONFIG_XEN_SYS_HYPERVISOR 1
+-#define CONFIG_ASUS_OLED_MODULE 1
+-#define CONFIG_WIMAX_GDM72XX_K_MODE 1
+-#define CONFIG_HID_PANTHERLORD_MODULE 1
+-#define CONFIG_MTDRAM_ERASE_SIZE 128
+-#define CONFIG_X86_HT 1
+-#define CONFIG_TEST_KSTRTOX_MODULE 1
+-#define CONFIG_SND_MODULE 1
+-#define CONFIG_MTD_ICHXROM_MODULE 1
+-#define CONFIG_IIO_ST_GYRO_I2C_3AXIS_MODULE 1
+-#define CONFIG_NET_SCH_TEQL_MODULE 1
+-#define CONFIG_MEMSTICK_JMICRON_38X_MODULE 1
+-#define CONFIG_SENSORS_MCP3021_MODULE 1
+-#define CONFIG_CRYPTO_SALSA20_X86_64_MODULE 1
+-#define CONFIG_IR_RC6_DECODER_MODULE 1
+-#define CONFIG_XEN_NETDEV_BACKEND_MODULE 1
+-#define CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR 0xFF108018
+-#define CONFIG_SND_SB16_DSP_MODULE 1
+-#define CONFIG_MTD_OOPS_MODULE 1
+-#define CONFIG_IWLEGACY_MODULE 1
+-#define CONFIG_SCSI_INIA100_MODULE 1
+-#define CONFIG_S2IO_MODULE 1
+-#define CONFIG_IP_VS_SH_MODULE 1
+-#define CONFIG_XEN_BALLOON 1
+-#define CONFIG_MTD_NAND_DOCG4_MODULE 1
+-#define CONFIG_VIDEO_MSP3400_MODULE 1
+-#define CONFIG_VIDEO_BT856_MODULE 1
+-#define CONFIG_USB_F_OBEX_MODULE 1
+-#define CONFIG_PLIP_MODULE 1
+-#define CONFIG_SCSI_EATA_TAGGED_QUEUE 1
+-#define CONFIG_CRYPTO_SERPENT_AVX_X86_64_MODULE 1
+-#define CONFIG_USB_PEGASUS_MODULE 1
+-#define CONFIG_IIO_ST_MAGN_3AXIS_MODULE 1
+-#define CONFIG_USB_TMC_MODULE 1
+-#define CONFIG_SND_SOC_WM8962_MODULE 1
+-#define CONFIG_USB_G_WEBCAM_MODULE 1
+-#define CONFIG_SBC_EPX_C3_WATCHDOG_MODULE 1
+-#define CONFIG_ATM_HE_USE_SUNI 1
+-#define CONFIG_SND_SOC_L3_MODULE 1
+-#define CONFIG_PAGEFLAGS_EXTENDED 1
+-#define CONFIG_BLK_DEV_FD_MODULE 1
+-#define CONFIG_LCD_HX8357_MODULE 1
+-#define CONFIG_IPPP_FILTER 1
+-#define CONFIG_V4L_PLATFORM_DRIVERS 1
+-#define CONFIG_W1_SLAVE_DS2408_READBACK 1
+-#define CONFIG_EVM 1
+-#define CONFIG_SND_PCSP_MODULE 1
+-#define CONFIG_FB_NVIDIA_I2C 1
+-#define CONFIG_RFKILL_INPUT 1
+-#define CONFIG_FB_CIRRUS_MODULE 1
+-#define CONFIG_NET_VENDOR_NATSEMI 1
+-#define CONFIG_SOLO6X10_MODULE 1
+-#define CONFIG_USB_MUSB_DUAL_ROLE 1
+-#define CONFIG_BLK_DEV_BSGLIB 1
+-#define CONFIG_ATH5K_PCI 1
+-#define CONFIG_MEDIA_TUNER_FC2580_MODULE 1
+-#define CONFIG_TABLET_USB_HANWANG_MODULE 1
+-#define CONFIG_REGULATOR_AAT2870_MODULE 1
+-#define CONFIG_ATH9K_COMMON_MODULE 1
+-#define CONFIG_DVB_STB6000_MODULE 1
+-#define CONFIG_COMEDI_MISC_DRIVERS 1
+-#define CONFIG_USB_SERIAL_QCAUX_MODULE 1
+-#define CONFIG_SATA_ACARD_AHCI_MODULE 1
+-#define CONFIG_NFS_USE_KERNEL_DNS 1
+-#define CONFIG_MISDN_SPEEDFAX_MODULE 1
+-#define CONFIG_SENSORS_IBMAEM_MODULE 1
+-#define CONFIG_LIRC_STAGING 1
+-#define CONFIG_SND_HDA_I915 1
+-#define CONFIG_WIMAX_GDM72XX_WIMAX2 1
+-#define CONFIG_LATTICE_ECP3_CONFIG_MODULE 1
+-#define CONFIG_SYSCTL 1
+-#define CONFIG_BRIDGE_IGMP_SNOOPING 1
+-#define CONFIG_IP_NF_TARGET_CLUSTERIP_MODULE 1
+-#define CONFIG_MTD_BLOCK2MTD_MODULE 1
+-#define CONFIG_W1_SLAVE_THERM_MODULE 1
+-#define CONFIG_CAN_SLCAN_MODULE 1
+-#define CONFIG_SND_SOC_WM_ADSP_MODULE 1
+-#define CONFIG_PARIDE_KBIC_MODULE 1
+-#define CONFIG_JOYSTICK_TWIDJOY_MODULE 1
+-#define CONFIG_PHYS_ADDR_T_64BIT 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1
+-#define CONFIG_NOZOMI_MODULE 1
+-#define CONFIG_MLX4_EN_DCB 1
+-#define CONFIG_NETFILTER_XT_TARGET_AUDIT_MODULE 1
+-#define CONFIG_VT6655_MODULE 1
+-#define CONFIG_TOUCHSCREEN_PIXCIR_MODULE 1
+-#define CONFIG_HOSTAP_CS_MODULE 1
+-#define CONFIG_TOUCHSCREEN_STMPE_MODULE 1
+-#define CONFIG_WM831X_BACKUP_MODULE 1
+-#define CONFIG_HAVE_C_RECORDMCOUNT 1
+-#define CONFIG_SENSORS_ADCXX_MODULE 1
+-#define CONFIG_SND_CS4281_MODULE 1
+-#define CONFIG_COMEDI_8255_MODULE 1
+-#define CONFIG_LCD_LD9040_MODULE 1
+-#define CONFIG_MEDIA_TUNER_MT2131_MODULE 1
+-#define CONFIG_HID_THINGM_MODULE 1
+-#define CONFIG_USB_NET_KALMIA_MODULE 1
+-#define CONFIG_IR_TTUSBIR_MODULE 1
+-#define CONFIG_ATH6KL_SDIO_MODULE 1
+-#define CONFIG_USB_NET_DM9601_MODULE 1
+-#define CONFIG_HAVE_ARCH_TRACEHOOK 1
+-#define CONFIG_SSB_PCIHOST 1
+-#define CONFIG_IR_MCEUSB_MODULE 1
+-#define CONFIG_BLK_DEV_OSD_MODULE 1
+-#define CONFIG_IIO_ST_ACCEL_I2C_3AXIS_MODULE 1
+-#define CONFIG_LDM_PARTITION 1
+-#define CONFIG_CIFS_MODULE 1
+-#define CONFIG_SMSC37B787_WDT_MODULE 1
+-#define CONFIG_XFRM_USER_MODULE 1
+-#define CONFIG_HISAX_1TR6 1
+-#define CONFIG_TCP_CONG_BIC_MODULE 1
+-#define CONFIG_EXTCON_PALMAS_MODULE 1
+-#define CONFIG_LEDS_PCA9532_MODULE 1
+-#define CONFIG_TASK_DELAY_ACCT 1
+-#define CONFIG_INPUT_PCF50633_PMU_MODULE 1
+-#define CONFIG_COMEDI_SKEL_MODULE 1
+-#define CONFIG_SCSI_DH_EMC_MODULE 1
+-#define CONFIG_NET_NS 1
+-#define CONFIG_SENSORS_TMP401_MODULE 1
+-#define CONFIG_SND_SOC_WM8988_MODULE 1
+-#define CONFIG_REGULATOR_MAX1586_MODULE 1
+-#define CONFIG_REISERFS_FS_XATTR 1
+-#define CONFIG_SENSORS_ADT7475_MODULE 1
+-#define CONFIG_MEMORY 1
+-#define CONFIG_HAVE_PERF_EVENTS 1
+-#define CONFIG_PCMCIA_XIRCOM_MODULE 1
+-#define CONFIG_COMEDI_II_PCI20KC_MODULE 1
+-#define CONFIG_HISAX_SCT_QUADRO 1
+-#define CONFIG_DVB_MANTIS_MODULE 1
+-#define CONFIG_SENSORS_LIS3_I2C_MODULE 1
+-#define CONFIG_RT2800PCI_RT35XX 1
+-#define CONFIG_CAN_C_CAN_MODULE 1
+-#define CONFIG_ATA_SFF 1
+-#define CONFIG_AD799X_RING_BUFFER 1
+-#define CONFIG_JOYSTICK_WALKERA0701_MODULE 1
+-#define CONFIG_CRYPTO_LRW_MODULE 1
+-#define CONFIG_EXT3_FS_SECURITY 1
+-#define CONFIG_REGULATOR_WM8350_MODULE 1
+-#define CONFIG_IWLWIFI_OPMODE_MODULAR 1
+-#define CONFIG_NET_EMATCH_CMP_MODULE 1
+-#define CONFIG_USB_GSPCA_T613_MODULE 1
+-#define CONFIG_SND_VIA82XX_MODEM_MODULE 1
+-#define CONFIG_SND_SOC_WM8580_MODULE 1
+-#define CONFIG_SND_MTPAV_MODULE 1
+-#define CONFIG_PPP_ASYNC_MODULE 1
+-#define CONFIG_MD_RAID10_MODULE 1
+-#define CONFIG_HAVE_ALIGNED_STRUCT_PAGE 1
+-#define CONFIG_NO_BOOTMEM 1
+-#define CONFIG_SSB_SDIOHOST_POSSIBLE 1
+-#define CONFIG_SENSORS_APPLESMC_MODULE 1
+-#define CONFIG_CAN_GW_MODULE 1
+-#define CONFIG_NLS_CODEPAGE_866_MODULE 1
+-#define CONFIG_SENSORS_ABITUGURU3_MODULE 1
+-#define CONFIG_CRAMFS_MODULE 1
+-#define CONFIG_RADIO_SAA7706H_MODULE 1
+-#define CONFIG_SKGE_GENESIS 1
+-#define CONFIG_WM831X_POWER_MODULE 1
+-#define CONFIG_LEDS_TRIGGER_TRANSIENT_MODULE 1
+-#define CONFIG_CYCLADES_MODULE 1
+-#define CONFIG_KEYBOARD_LM8323_MODULE 1
+-#define CONFIG_STMMAC_ETH_MODULE 1
+-#define CONFIG_CHELSIO_T1_MODULE 1
+-#define CONFIG_NFSD_V4_SECURITY_LABEL 1
+-#define CONFIG_AUDIT 1
+-#define CONFIG_CHR_DEV_ST_MODULE 1
+-#define CONFIG_RTC_DRV_TPS65910_MODULE 1
+-#define CONFIG_BCH_MODULE 1
+-#define CONFIG_INTEL_IOMMU 1
+-#define CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE 1
+-#define CONFIG_DM_MULTIPATH_MODULE 1
+-#define CONFIG_CRYPTO_USER_API_SKCIPHER_MODULE 1
+-#define CONFIG_SCSI_3W_SAS_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_DTLK_MODULE 1
+-#define CONFIG_REGULATOR_MC13892_MODULE 1
+-#define CONFIG_SENSORS_LM80_MODULE 1
+-#define CONFIG_DVB_IT913X_FE_MODULE 1
+-#define CONFIG_PCIEASPM 1
+-#define CONFIG_PM_ADVANCED_DEBUG 1
+-#define CONFIG_TSL2x7x_MODULE 1
+-#define CONFIG_VME_TSI148_MODULE 1
+-#define CONFIG_ATA_PIIX 1
+-#define CONFIG_B43LEGACY_MODULE 1
+-#define CONFIG_SND_SOC_WM8904_MODULE 1
+-#define CONFIG_AIC7XXX_REG_PRETTY_PRINT 1
+-#define CONFIG_HID_MULTITOUCH_MODULE 1
+-#define CONFIG_ISDN_HDLC_MODULE 1
+-#define CONFIG_ECRYPT_FS_MESSAGING 1
+-#define CONFIG_FB_DEFERRED_IO 1
+-#define CONFIG_SATA_AHCI_MODULE 1
+-#define CONFIG_COMEDI_MITE_MODULE 1
+-#define CONFIG_WIMAX_GDM72XX_USB_PM 1
+-#define CONFIG_DVB_USB_A800_MODULE 1
+-#define CONFIG_XEN_BALLOON_MEMORY_HOTPLUG 1
+-#define CONFIG_SND_SOC_WM2000_MODULE 1
+-#define CONFIG_SECURITY 1
+-#define CONFIG_I2C_SI470X_MODULE 1
+-#define CONFIG_DVB_A8293_MODULE 1
+-#define CONFIG_SENSORS_ASC7621_MODULE 1
+-#define CONFIG_OPTPROBES 1
+-#define CONFIG_USB_AMD5536UDC_MODULE 1
+-#define CONFIG_CHARGER_BQ2415X_MODULE 1
+-#define CONFIG_HISAX_NETJET_U 1
+-#define CONFIG_NETXEN_NIC_MODULE 1
+-#define CONFIG_BNX2X_SRIOV 1
+-#define CONFIG_ACPI_NUMA 1
+-#define CONFIG_ATM_TCP_MODULE 1
+-#define CONFIG_HID_ELECOM_MODULE 1
+-#define CONFIG_SND_TIMER_MODULE 1
+-#define CONFIG_COMEDI_ICP_MULTI_MODULE 1
+-#define CONFIG_DRM_R128_MODULE 1
+-#define CONFIG_KVM_MMIO 1
+-#define CONFIG_USB_EHCI_TT_NEWSCHED 1
+-#define CONFIG_SND_SOC_WM2200_MODULE 1
+-#define CONFIG_FAT_DEFAULT_CODEPAGE 437
+-#define CONFIG_SND_SOC_LM49453_MODULE 1
+-#define CONFIG_TCM_FC_MODULE 1
+-#define CONFIG_IPV6_MROUTE_MULTIPLE_TABLES 1
+-#define CONFIG_BLK_DEV 1
+-#define CONFIG_DVB_USB_IT913X_MODULE 1
+-#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1
+-#define CONFIG_SERIO_I8042 1
+-#define CONFIG_MAC80211_RC_DEFAULT "minstrel_ht"
+-#define CONFIG_FARSYNC_MODULE 1
+-#define CONFIG_RTL8187_LEDS 1
+-#define CONFIG_NFS_ACL_SUPPORT_MODULE 1
+-#define CONFIG_RT2800USB_RT55XX 1
+-#define CONFIG_W1_SLAVE_DS2433_MODULE 1
+-#define CONFIG_ATL1_MODULE 1
+-#define CONFIG_APPLICOM_MODULE 1
+-#define CONFIG_HISAX_NI1 1
+-#define CONFIG_USB_SERIAL_OMNINET_MODULE 1
+-#define CONFIG_HDLC_PPP_MODULE 1
+-#define CONFIG_BRIDGE_NETFILTER 1
+-#define CONFIG_TCP_CONG_SCALABLE_MODULE 1
+-#define CONFIG_USB_BTMTK_MODULE 1
+-#define CONFIG_DVB_MB86A20S_MODULE 1
+-#define CONFIG_PATA_TRIFLEX_MODULE 1
+-#define CONFIG_JOYSTICK_TMDC_MODULE 1
+-#define CONFIG_SERIAL_ALTERA_UART_MAXPORTS 4
+-#define CONFIG_IOMMU_API 1
+-#define CONFIG_GPIO_GENERIC_MODULE 1
+-#define CONFIG_TRACING_SUPPORT 1
+-#define CONFIG_UNIX98_PTYS 1
+-#define CONFIG_CDROM_PKTCDVD_MODULE 1
+-#define CONFIG_VFIO_MODULE 1
+-#define CONFIG_NFC_MICROREAD_MEI_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_CONNMARK_MODULE 1
+-#define CONFIG_MINIX_SUBPARTITION 1
+-#define CONFIG_NET_RX_BUSY_POLL 1
+-#define CONFIG_RADIO_WL1273_MODULE 1
+-#define CONFIG_SENSORS_SMSC47B397_MODULE 1
+-#define CONFIG_CRYPTO_MICHAEL_MIC_MODULE 1
+-#define CONFIG_CRYPTO_ANSI_CPRNG_MODULE 1
+-#define CONFIG_RCU_USER_QS 1
+-#define CONFIG_SECURITY_SELINUX 1
+-#define CONFIG_ZONE_DMA32 1
+-#define CONFIG_NET_SCHED 1
+-#define CONFIG_LCD_LMS501KF03_MODULE 1
+-#define CONFIG_NETFILTER_XT_TARGET_CONNSECMARK_MODULE 1
+-#define CONFIG_UWB_I1480U_MODULE 1
+-#define CONFIG_JBD 1
+-#define CONFIG_STAGING_MEDIA 1
+-#define CONFIG_DVB_PLL_MODULE 1
+-#define CONFIG_PRINTK_TIME 1
+-#define CONFIG_PANEL_MODULE 1
+-#define CONFIG_VIDEO_SH_MOBILE_CEU_MODULE 1
+-#define CONFIG_SERIAL_JSM_MODULE 1
+-#define CONFIG_EXT2_FS_POSIX_ACL 1
+-#define CONFIG_INPUT_MOUSEDEV_SCREEN_Y 768
+-#define CONFIG_SECCOMP_FILTER 1
+-#define CONFIG_PATA_HPT37X_MODULE 1
+-#define CONFIG_UIO_PCI_GENERIC_MODULE 1
+-#define CONFIG_PPP 1
+-#define CONFIG_RFD_FTL_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_QUOTA_MODULE 1
+-#define CONFIG_TI_ST_MODULE 1
+-#define CONFIG_ARCH_MAY_HAVE_PC_FDC 1
+-#define CONFIG_BACKLIGHT_TPS65217_MODULE 1
+-#define CONFIG_TOUCHSCREEN_ATMEL_MXT_MODULE 1
+-#define CONFIG_HAVE_KERNEL_LZO 1
+-#define CONFIG_ASYNC_CORE_MODULE 1
+-#define CONFIG_NET_SCH_MULTIQ_MODULE 1
+-#define CONFIG_INET_DIAG_MODULE 1
+-#define CONFIG_CRYPTO_GHASH_MODULE 1
+-#define CONFIG_OCFS2_DEBUG_MASKLOG 1
+-#define CONFIG_SND_SOC_WM8741_MODULE 1
+-#define CONFIG_SYNCLINKMP_MODULE 1
+-#define CONFIG_PSTORE 1
+-#define CONFIG_SCSI_LPFC_MODULE 1
+-#define CONFIG_NF_NAT_FTP_MODULE 1
+-#define CONFIG_MAC80211_RC_MINSTREL 1
+-#define CONFIG_CRYPTO_RMD320_MODULE 1
+-#define CONFIG_IIO_CONSUMERS_PER_TRIGGER 2
+-#define CONFIG_NF_CT_PROTO_UDPLITE_MODULE 1
+-#define CONFIG_CARDMAN_4000_MODULE 1
+-#define CONFIG_IO_DELAY_TYPE_UDELAY 2
+-#define CONFIG_SPEAKUP_MODULE 1
+-#define CONFIG_HANGCHECK_TIMER_MODULE 1
+-#define CONFIG_JOYSTICK_WARRIOR_MODULE 1
+-#define CONFIG_SENSORS_W83627EHF_MODULE 1
+-#define CONFIG_ELF_CORE 1
+-#define CONFIG_NOTIFIER_ERROR_INJECTION_MODULE 1
+-#define CONFIG_SENSORS_LM73_MODULE 1
+-#define CONFIG_VIA_VELOCITY_MODULE 1
+-#define CONFIG_SENSORS_PC87360_MODULE 1
+-#define CONFIG_TEXTSEARCH 1
+-#define CONFIG_VIDEO_IVTV_MODULE 1
+-#define CONFIG_ACPI_DOCK 1
+-#define CONFIG_USB_DWC3_MODULE 1
+-#define CONFIG_KS8851_MODULE 1
+-#define CONFIG_XEN_HAVE_PVMMU 1
+-#define CONFIG_MTD_JEDECPROBE_MODULE 1
+-#define CONFIG_I2O_EXT_ADAPTEC 1
+-#define CONFIG_NF_CT_NETLINK_HELPER_MODULE 1
+-#define CONFIG_MFD_MC13783_MODULE 1
+-#define CONFIG_MTD_ONENAND_VERIFY_WRITE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1
+-#define CONFIG_INPUT_PCF8574_MODULE 1
+-#define CONFIG_SOC_CAMERA_OV9640_MODULE 1
+-#define CONFIG_USB_SUPPORT 1
+-#define CONFIG_I2C_SCMI_MODULE 1
+-#define CONFIG_I2C_VIA_MODULE 1
+-#define CONFIG_INPUT_POLLDEV_MODULE 1
+-#define CONFIG_INPUT_MAX8925_ONKEY_MODULE 1
+-#define CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES 1
+-#define CONFIG_SND_INTEL8X0M_MODULE 1
+-#define CONFIG_USB_FUSBH200_HCD_MODULE 1
+-#define CONFIG_UPROBE_EVENT 1
+-#define CONFIG_MEDIA_RC_SUPPORT 1
+-#define CONFIG_KEMPLD_WDT_MODULE 1
+-#define CONFIG_RTC_DRV_BQ32K_MODULE 1
+-#define CONFIG_USB_GSPCA_PAC7311_MODULE 1
+-#define CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS 1
+-#define CONFIG_VIA_WDT_MODULE 1
+-#define CONFIG_BLK_DEV_NVME_MODULE 1
+-#define CONFIG_USB_HWA_HCD_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_EASYTOUCH 1
+-#define CONFIG_STAGING 1
+-#define CONFIG_NET_VENDOR_SIS 1
+-#define CONFIG_F2FS_FS_MODULE 1
+-#define CONFIG_TOUCHSCREEN_EDT_FT5X06_MODULE 1
+-#define CONFIG_FB_RIVA_I2C 1
+-#define CONFIG_SENSORS_LIS3LV02D_MODULE 1
+-#define CONFIG_INET_LRO 1
+-#define CONFIG_AD9523_MODULE 1
+-#define CONFIG_FIREWIRE_MODULE 1
+-#define CONFIG_ATM_MODULE 1
+-#define CONFIG_MMIOTRACE 1
+-#define CONFIG_TOUCHSCREEN_ST1232_MODULE 1
+-#define CONFIG_WIMAX_GDM72XX_QOS 1
+-#define CONFIG_SCSI_FC_ATTRS_MODULE 1
+-#define CONFIG_VT_CONSOLE 1
+-#define CONFIG_EDAC_SBRIDGE_MODULE 1
+-#define CONFIG_HID_UCLOGIC_MODULE 1
+-#define CONFIG_HW_RANDOM_VIRTIO_MODULE 1
+-#define CONFIG_COMEDI_PCMCIA_DRIVERS 1
+-#define CONFIG_ACPI_APEI 1
+-#define CONFIG_SND_ES1968_RADIO 1
+-#define CONFIG_LEDS_GPIO_MODULE 1
+-#define CONFIG_SND_SB_COMMON_MODULE 1
+-#define CONFIG_SND_CS46XX_MODULE 1
+-#define CONFIG_USB_GSPCA_STK014_MODULE 1
+-#define CONFIG_IP_VS_FTP_MODULE 1
+-#define CONFIG_SND_SOC_MC13783_MODULE 1
+-#define CONFIG_SND_SOC_LM4857_MODULE 1
+-#define CONFIG_FANOTIFY_ACCESS_PERMISSIONS 1
+-#define CONFIG_SENSORS_LM3533_MODULE 1
+-#define CONFIG_IIO_ST_PRESS_I2C_MODULE 1
+-#define CONFIG_VIDEO_CX18_MODULE 1
+-#define CONFIG_VMWARE_PVSCSI_MODULE 1
+-#define CONFIG_CFG80211_WEXT 1
+-#define CONFIG_SERIAL_SCCNXP_CONSOLE 1
+-#define CONFIG_HISAX_EURO 1
+-#define CONFIG_SMARTJOYPLUS_FF 1
+-#define CONFIG_I2C_PARPORT_MODULE 1
+-#define CONFIG_ISDN_DIVAS_BRIPCI 1
+-#define CONFIG_NETFILTER_XT_MATCH_PHYSDEV_MODULE 1
+-#define CONFIG_NOP_USB_XCEIV_MODULE 1
+-#define CONFIG_GPIO_DA9052_MODULE 1
+-#define CONFIG_SND_VIA82XX_MODULE 1
+-#define CONFIG_SC520_WDT_MODULE 1
+-#define CONFIG_ISDN_DIVAS_MODULE 1
+-#define CONFIG_NFC_PN533_MODULE 1
+-#define CONFIG_REGULATOR_ANATOP_MODULE 1
+-#define CONFIG_DVB_USB_DIBUSB_MB_MODULE 1
+-#define CONFIG_SND_DARLA20_MODULE 1
+-#define CONFIG_SND_SOC_DA732X_MODULE 1
+-#define CONFIG_BLK_DEV_RAM 1
+-#define CONFIG_USB_F_NCM_MODULE 1
+-#define CONFIG_TOUCHSCREEN_AD7879_MODULE 1
+-#define CONFIG_SENSORS_HDAPS_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_STATE_MODULE 1
+-#define CONFIG_DVB_L64781_MODULE 1
+-#define CONFIG_INPUT_EVBUG_MODULE 1
+-#define CONFIG_LOGIRUMBLEPAD2_FF 1
+-#define CONFIG_SND_INDIGOIOX_MODULE 1
+-#define CONFIG_MFD_TPS6586X 1
+-#define CONFIG_SND_ASIHPI_MODULE 1
+-#define CONFIG_BSD_DISKLABEL 1
+-#define CONFIG_RTC_DRV_M48T35_MODULE 1
+-#define CONFIG_I2C_TAOS_EVM_MODULE 1
+-#define CONFIG_CRYPTO_CAST_COMMON_MODULE 1
+-#define CONFIG_IIO_TRIGGERED_BUFFER_MODULE 1
+-#define CONFIG_COMEDI_KCOMEDILIB_MODULE 1
+-#define CONFIG_FB_HGA_MODULE 1
+-#define CONFIG_RTC_DRV_PCF2127_MODULE 1
+-#define CONFIG_USB_STORAGE_FREECOM_MODULE 1
+-#define CONFIG_LCD_VGG2432A4_MODULE 1
+-#define CONFIG_USB_MUSB_UX500_MODULE 1
+-#define CONFIG_SCSI_BUSLOGIC_MODULE 1
+-#define CONFIG_BRIDGE_EBT_LOG_MODULE 1
+-#define CONFIG_LEDS_PCA9633_MODULE 1
+-#define CONFIG_TOUCHSCREEN_ADS7846_MODULE 1
+-#define CONFIG_BACKLIGHT_CARILLO_RANCH_MODULE 1
+-#define CONFIG_GADGET_UAC1 1
+-#define CONFIG_IR_RC5_DECODER_MODULE 1
+-#define CONFIG_REGULATOR_S5M8767_MODULE 1
+-#define CONFIG_FIREWIRE_NOSY_MODULE 1
+-#define CONFIG_NET_SCH_GRED_MODULE 1
+-#define CONFIG_PCI_DIRECT 1
+-#define CONFIG_MMC_VIA_SDMMC_MODULE 1
+-#define CONFIG_DRM_MODULE 1
+-#define CONFIG_FUSION_MAX_SGE 128
+-#define CONFIG_RTC_DRV_DA9055_MODULE 1
+-#define CONFIG_DOUBLEFAULT 1
+-#define CONFIG_INET6_XFRM_MODE_BEET_MODULE 1
+-#define CONFIG_AD7150_MODULE 1
+-#define CONFIG_MEDIA_RADIO_SUPPORT 1
+-#define CONFIG_PCF50633_GPIO_MODULE 1
+-#define CONFIG_IWL4965_MODULE 1
+-#define CONFIG_AUFS_POLL 1
+-#define CONFIG_POSIX_MQUEUE_SYSCTL 1
+-#define CONFIG_RTC_DRV_MAX6900_MODULE 1
+-#define CONFIG_ICS932S401_MODULE 1
+-#define CONFIG_RIONET_TX_SIZE 128
+-#define CONFIG_RBTREE_TEST_MODULE 1
+-#define CONFIG_UNUSED_SYMBOLS 1
+-#define CONFIG_SENSORS_MAX1111_MODULE 1
+-#define CONFIG_CRYPTO_DEV_PADLOCK_AES_MODULE 1
+-#define CONFIG_ISDN_DRV_AVMB1_B1PCIV4 1
+-#define CONFIG_SAMSUNG_LAPTOP_MODULE 1
+-#define CONFIG_USB_USS720_MODULE 1
+-#define CONFIG_LEDS_DAC124S085_MODULE 1
+-#define CONFIG_FB_CFB_COPYAREA 1
+-#define CONFIG_USB_F_ECM_MODULE 1
+-#define CONFIG_FB_EFI 1
+-#define CONFIG_MOUSE_GPIO_MODULE 1
+-#define CONFIG_USB_SISUSBVGA_MODULE 1
+-#define CONFIG_DVB_RTL2830_MODULE 1
+-#define CONFIG_HAVE_KVM_IRQCHIP 1
+-#define CONFIG_BRIDGE_EBT_STP_MODULE 1
+-#define CONFIG_RT73USB_MODULE 1
+-#define CONFIG_DE2104X_DSL 0
+-#define CONFIG_BRIDGE_EBT_ARP_MODULE 1
+-#define CONFIG_BALLOON_COMPACTION 1
+-#define CONFIG_CHARGER_MAX8997_MODULE 1
+-#define CONFIG_USB_CYTHERM_MODULE 1
+-#define CONFIG_IP6_NF_MATCH_EUI64_MODULE 1
+-#define CONFIG_BINARY_PRINTF 1
+-#define CONFIG_MWIFIEX_MODULE 1
+-#define CONFIG_HP_ILO_MODULE 1
+-#define CONFIG_USB_STORAGE_JUMPSHOT_MODULE 1
+-#define CONFIG_SENSORS_MAX6642_MODULE 1
+-#define CONFIG_GPIO_MC33880_MODULE 1
+-#define CONFIG_SND_SOC_SGTL5000_MODULE 1
+-#define CONFIG_NET_SCH_PLUG_MODULE 1
+-#define CONFIG_SND_GINA20_MODULE 1
+-#define CONFIG_CPU_FREQ_STAT_DETAILS 1
+-#define CONFIG_GENERIC_CLOCKEVENTS_BUILD 1
+-#define CONFIG_TRACER_MAX_TRACE 1
+-#define CONFIG_USB_KEENE_MODULE 1
+-#define CONFIG_VIDEOBUF_GEN_MODULE 1
+-#define CONFIG_MTD_CFI_AMDSTD_MODULE 1
+-#define CONFIG_CLK_TWL6040_MODULE 1
+-#define CONFIG_LEDS_WM831X_STATUS_MODULE 1
+-#define CONFIG_DRM_VIA_MODULE 1
+-#define CONFIG_SGI_PARTITION 1
+-#define CONFIG_INPUT_SPARSEKMAP_MODULE 1
+-#define CONFIG_GPIO_PALMAS 1
+-#define CONFIG_CRYPTO_TWOFISH_X86_64_3WAY_MODULE 1
+-#define CONFIG_ADIS16400_MODULE 1
+-#define CONFIG_AIC7XXX_CMDS_PER_DEVICE 8
+-#define CONFIG_VIDEO_V4L2_MODULE 1
+-#define CONFIG_DVB_STV6110_MODULE 1
+-#define CONFIG_AC97_BUS_MODULE 1
+-#define CONFIG_CW1200_MODULE 1
+-#define CONFIG_SYSVIPC_SYSCTL 1
+-#define CONFIG_TOUCHSCREEN_CLEARPAD_TM1217_MODULE 1
+-#define CONFIG_ADE7753_MODULE 1
+-#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1
+-#define CONFIG_HID_NTRIG_MODULE 1
+-#define CONFIG_X86_64_ACPI_NUMA 1
+-#define CONFIG_DMA_SHARED_BUFFER 1
+-#define CONFIG_RTC_SYSTOHC 1
+-#define CONFIG_DVB_USB_NOVA_T_USB2_MODULE 1
+-#define CONFIG_VHOST_SCSI_MODULE 1
+-#define CONFIG_CIFS_POSIX 1
+-#define CONFIG_ATH_CARDS_MODULE 1
+-#define CONFIG_PATA_RDC_MODULE 1
+-#define CONFIG_SND_PORTMAN2X4_MODULE 1
+-#define CONFIG_USB_EPSON2888 1
+-#define CONFIG_SND_INDIGODJ_MODULE 1
+-#define CONFIG_SENSORS_W83L785TS_MODULE 1
+-#define CONFIG_W1_SLAVE_DS28E04_MODULE 1
+-#define CONFIG_DECOMPRESS_GZIP 1
+-#define CONFIG_SND_AW2_MODULE 1
+-#define CONFIG_SENSORS_EMC2103_MODULE 1
+-#define CONFIG_NLS_MAC_CELTIC_MODULE 1
+-#define CONFIG_SND_AU8830_MODULE 1
+-#define CONFIG_SPI_SC18IS602_MODULE 1
+-#define CONFIG_RTLLIB_CRYPTO_WEP_MODULE 1
+-#define CONFIG_VIRTIO_BLK 1
+-#define CONFIG_SERIAL_8250_CS_MODULE 1
+-#define CONFIG_DECOMPRESS_LZO 1
+-#define CONFIG_USB_SERIAL_ARK3116_MODULE 1
+-#define CONFIG_64BIT 1
+-#define CONFIG_SND_MIXART_MODULE 1
+-#define CONFIG_QUOTA 1
+-#define CONFIG_SND_BT87X_MODULE 1
+-#define CONFIG_SENSORS_WM8350_MODULE 1
+-#define CONFIG_DM9102_MODULE 1
+-#define CONFIG_COMEDI_NI_MIO_CS_MODULE 1
+-#define CONFIG_SENSORS_LINEAGE_MODULE 1
+-#define CONFIG_CAN_EMS_PCMCIA_MODULE 1
+-#define CONFIG_SCSI_MPT2SAS_MAX_SGE 128
+-#define CONFIG_VXGE_MODULE 1
+-#define CONFIG_PARIDE_PCD_MODULE 1
+-#define CONFIG_ZBUD 1
+-#define CONFIG_MMC_SDHCI_PLTFM_MODULE 1
+-#define CONFIG_SND_SOC_ADAU1373_MODULE 1
+-#define CONFIG_I2C_CHARDEV_MODULE 1
+-#define CONFIG_RCU_NOCB_CPU 1
+-#define CONFIG_RCU_FAST_NO_HZ 1
+-#define CONFIG_W83697UG_WDT_MODULE 1
+-#define CONFIG_MEDIA_TUNER_FC0013_MODULE 1
+-#define CONFIG_LLC_MODULE 1
+-#define CONFIG_MTD_NAND_NANDSIM_MODULE 1
+-#define CONFIG_CROSS_COMPILE ""
+-#define CONFIG_FMC_FAKEDEV_MODULE 1
+-#define CONFIG_REGULATOR_MAX8649_MODULE 1
+-#define CONFIG_SND_SOC_88PM860X_MODULE 1
+-#define CONFIG_MEDIA_TUNER_TEA5761_MODULE 1
+-#define CONFIG_MFD_MC13XXX_SPI_MODULE 1
+-#define CONFIG_SC92031_MODULE 1
+-#define CONFIG_REGMAP_MMIO 1
+-#define CONFIG_SND_TRIDENT_MODULE 1
+-#define CONFIG_IPDDP_MODULE 1
+-#define CONFIG_NETWORK_SECMARK 1
+-#define CONFIG_SND_RIPTIDE_MODULE 1
+-#define CONFIG_SND_CTXFI_MODULE 1
+-#define CONFIG_GENERIC_CLOCKEVENTS_BROADCAST 1
+-#define CONFIG_VIDEO_TVAUDIO_MODULE 1
+-#define CONFIG_REGULATOR_MAX8907_MODULE 1
+-#define CONFIG_RXKAD_MODULE 1
+-#define CONFIG_HID_HOLTEK_MODULE 1
+-#define CONFIG_MTD_GPIO_ADDR_MODULE 1
+-#define CONFIG_KEYBOARD_SAMSUNG_MODULE 1
+-#define CONFIG_ARCH_RANDOM 1
+-#define CONFIG_SERIAL_8250_PCI 1
+-#define CONFIG_LIB80211_CRYPT_CCMP_MODULE 1
+-#define CONFIG_HAVE_MIXED_BREAKPOINTS_REGS 1
+-#define CONFIG_RTC_DRV_DS1672_MODULE 1
+-#define CONFIG_INTEL_MEI_MODULE 1
+-#define CONFIG_USB_SERIAL_SSU100_MODULE 1
+-#define CONFIG_BATMAN_ADV_DAT 1
+-#define CONFIG_MOUSE_PS2_SYNAPTICS 1
+-#define CONFIG_ATA_BMDMA 1
+-#define CONFIG_NFC_SIM_MODULE 1
+-#define CONFIG_ATALK_MODULE 1
+-#define CONFIG_XZ_DEC_ARMTHUMB 1
+-#define CONFIG_B43_BCMA 1
+-#define CONFIG_SND_SOC_RT5631_MODULE 1
+-#define CONFIG_AD7791_MODULE 1
+-#define CONFIG_MTD_SWAP_MODULE 1
+-#define CONFIG_JFFS2_CMODE_FAVOURLZO 1
+-#define CONFIG_MEMORY_FAILURE 1
+-#define CONFIG_NFS_V4_1 1
+-#define CONFIG_SKFP_MODULE 1
+-#define CONFIG_ARCH_WANT_FRAME_POINTERS 1
+-#define CONFIG_REGMAP 1
+-#define CONFIG_SFC_MCDI_MON 1
+-#define CONFIG_MTD_DOCG3_MODULE 1
+-#define CONFIG_6PACK_MODULE 1
+-#define CONFIG_NLS_UTF8_MODULE 1
+-#define CONFIG_RADIO_SI470X 1
+-#define CONFIG_PCIE_PME 1
+-#define CONFIG_VIDEO_TM6000_DVB_MODULE 1
+-#define CONFIG_JOYSTICK_XPAD_MODULE 1
+-#define CONFIG_USB_SERIAL_FLASHLOADER_MODULE 1
+-#define CONFIG_FB_ATY_BACKLIGHT 1
+-#define CONFIG_INFINIBAND_ISERT_MODULE 1
+-#define CONFIG_ADIS16130_MODULE 1
+-#define CONFIG_NETFILTER_TPROXY_MODULE 1
+-#define CONFIG_BAYCOM_PAR_MODULE 1
+-#define CONFIG_AB3100_CORE 1
+-#define CONFIG_CAN_DEV_MODULE 1
+-#define CONFIG_BACKLIGHT_WM831X_MODULE 1
+-#define CONFIG_INPUT_YEALINK_MODULE 1
+-#define CONFIG_COMEDI_VMK80XX_MODULE 1
+-#define CONFIG_DVB_DIB3000MB_MODULE 1
+-#define CONFIG_SCSI_SRP_TGT_ATTRS 1
+-#define CONFIG_USB_PXA27X_MODULE 1
+-#define CONFIG_MFD_DA9055 1
+-#define CONFIG_AD5755_MODULE 1
+-#define CONFIG_TI_ADC081C_MODULE 1
+-#define CONFIG_SPEAKUP_SYNTH_SPKOUT_MODULE 1
+-#define CONFIG_RTC_DRV_M41T80_MODULE 1
+-#define CONFIG_USB_SERIAL_ZTE_MODULE 1
+-#define CONFIG_PCCARD_NONSTATIC 1
+-#define CONFIG_VT6656_MODULE 1
+-#define CONFIG_USB_USBNET_MODULE 1
+-#define CONFIG_SCSI_MULTI_LUN 1
+-#define CONFIG_CPU_SUP_CENTAUR 1
+-#define CONFIG_SND_SOC_CS4271_MODULE 1
+-#define CONFIG_CB710_CORE_MODULE 1
+-#define CONFIG_USB_SERIAL_PL2303_MODULE 1
+-#define CONFIG_SND_SOC_AB8500_CODEC_MODULE 1
+-#define CONFIG_NET_ACT_POLICE_MODULE 1
+-#define CONFIG_AIC79XX_DEBUG_MASK 0
+-#define CONFIG_NODES_SPAN_OTHER_NODES 1
+-#define CONFIG_HAVE_INTEL_TXT 1
+-#define CONFIG_HAMRADIO 1
+-#define CONFIG_SYSCTL_EXCEPTION_TRACE 1
+-#define CONFIG_REGULATOR_PCAP_MODULE 1
+-#define CONFIG_SYSVIPC_COMPAT 1
+-#define CONFIG_GPIO_PCA953X_MODULE 1
+-#define CONFIG_INPUT_XEN_KBDDEV_FRONTEND_MODULE 1
+-#define CONFIG_HOTPLUG_PCI_SHPC_MODULE 1
+-#define CONFIG_ADIS16240_MODULE 1
+-#define CONFIG_DVB_USB_CINERGY_T2_MODULE 1
+-#define CONFIG_FHANDLE 1
+-#define CONFIG_FT1000_PCMCIA_MODULE 1
+-#define CONFIG_COMEDI_ADDI_APCI_3XXX_MODULE 1
+-#define CONFIG_SERIAL_ALTERA_UART_MODULE 1
+-#define CONFIG_USB_MICROTEK_MODULE 1
+-#define CONFIG_PANASONIC_LAPTOP_MODULE 1
+-#define CONFIG_HISAX_BKM_A4T 1
+-#define CONFIG_INPUT_MC13783_PWRBUTTON_MODULE 1
+-#define CONFIG_HISAX_ENTERNOW_PCI 1
+-#define CONFIG_HID_SMARTJOYPLUS_MODULE 1
+-#define CONFIG_ATA_GENERIC 1
+-#define CONFIG_NEW_LEDS 1
+-#define CONFIG_SWAP 1
+-#define CONFIG_MFD_TPS80031 1
+-#define CONFIG_MTD_ONENAND_MODULE 1
+-#define CONFIG_MTD_TS5500_MODULE 1
+-#define CONFIG_MICROCODE_INTEL 1
+-#define CONFIG_GENERIC_ADC_BATTERY_MODULE 1
+-#define CONFIG_RTC_DRV_DS1511_MODULE 1
+-#define CONFIG_IP_FIB_TRIE_STATS 1
+-#define CONFIG_CRYPTO_SHA256_SSSE3_MODULE 1
+-#define CONFIG_ATM_FORE200E_MODULE 1
+-#define CONFIG_NET_SCH_HFSC_MODULE 1
+-#define CONFIG_RTC_DRV_RV3029C2_MODULE 1
+-#define CONFIG_GPIO_TWL6040_MODULE 1
+-#define CONFIG_WIL6210_MODULE 1
+-#define CONFIG_SND_ISIGHT_MODULE 1
+-#define CONFIG_VIDEOBUF_DMA_SG_MODULE 1
+-#define CONFIG_MTD_NAND_DISKONCHIP_MODULE 1
+-#define CONFIG_MAC80211_MODULE 1
+-#define CONFIG_SPI_ALTERA_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH 1
+-#define CONFIG_MEGARAID_MM_MODULE 1
+-#define CONFIG_ARCH_USES_PG_UNCACHED 1
+-#define CONFIG_CRC_CCITT_MODULE 1
+-#define CONFIG_EXT3_FS_POSIX_ACL 1
+-#define CONFIG_DVB_TDA8261_MODULE 1
+-#define CONFIG_IGBVF_MODULE 1
+-#define CONFIG_BLK_DEV_SD 1
+-#define CONFIG_PHYSICAL_ALIGN 0x1000000
+-#define CONFIG_INPUT_AD714X_SPI_MODULE 1
+-#define CONFIG_NETFILTER_NETLINK_MODULE 1
+-#define CONFIG_SND_SOC_WL1273_MODULE 1
+-#define CONFIG_VITESSE_PHY 1
+-#define CONFIG_MODULE_UNLOAD 1
+-#define CONFIG_FSCACHE_STATS 1
+-#define CONFIG_DEVFREQ_GOV_USERSPACE 1
+-#define CONFIG_AVERAGE 1
+-#define CONFIG_INFINIBAND_MTHCA_MODULE 1
+-#define CONFIG_SENSORS_MAX6650_MODULE 1
+-#define CONFIG_USB_GSPCA_BENQ_MODULE 1
+-#define CONFIG_REGULATOR_TPS65023_MODULE 1
+-#define CONFIG_SND_AC97_CODEC_MODULE 1
+-#define CONFIG_ARCH_WANT_OLD_COMPAT_IPC 1
+-#define CONFIG_MOXA_SMARTIO_MODULE 1
+-#define CONFIG_DVB_USB_CXUSB_MODULE 1
+-#define CONFIG_TSL2583_MODULE 1
+-#define CONFIG_X25_ASY_MODULE 1
+-#define CONFIG_RT2500PCI_MODULE 1
+-#define CONFIG_SENSORS_LM85_MODULE 1
+-#define CONFIG_AD525X_DPOT_MODULE 1
+-#define CONFIG_SND_ATIIXP_MODULE 1
+-#define CONFIG_TRACER_SNAPSHOT 1
+-#define CONFIG_INFINIBAND_IPOIB_CM 1
+-#define CONFIG_COMEDI_PARPORT_MODULE 1
+-#define CONFIG_ADE7854_MODULE 1
+-#define CONFIG_HID_PICOLCD_LCD 1
+-#define CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST 1
+-#define CONFIG_RCU_FANOUT 64
+-#define CONFIG_SND_SOC_WM8996_MODULE 1
+-#define CONFIG_ARCH_USES_NUMA_PROT_NONE 1
+-#define CONFIG_BITREVERSE 1
+-#define CONFIG_DEVPORT 1
+-#define CONFIG_HID_HUION_MODULE 1
+-#define CONFIG_INTEL_RST_MODULE 1
+-#define CONFIG_X509_CERTIFICATE_PARSER 1
+-#define CONFIG_BLK_DEV_RAM_SIZE 65536
+-#define CONFIG_USB_SERIAL_WWAN_MODULE 1
+-#define CONFIG_SND_ICE1724_MODULE 1
+-#define CONFIG_MAC_PARTITION 1
+-#define CONFIG_CONSOLE_POLL 1
+-#define CONFIG_IIO_ADIS_LIB_BUFFER 1
+-#define CONFIG_SENSORS_DA9052_ADC_MODULE 1
+-#define CONFIG_XFS_POSIX_ACL 1
+-#define CONFIG_BT_WILINK_MODULE 1
+-#define CONFIG_CRYPTO_PCOMP_MODULE 1
+-#define CONFIG_TOUCHSCREEN_DA9034_MODULE 1
+-#define CONFIG_CISS_SCSI_TAPE 1
+-#define CONFIG_MSI_LAPTOP_MODULE 1
+-#define CONFIG_BRCMFMAC_USB 1
+-#define CONFIG_TOUCHSCREEN_DYNAPRO_MODULE 1
+-#define CONFIG_FB_MODE_HELPERS 1
+-#define CONFIG_NLS_ISO8859_13_MODULE 1
+-#define CONFIG_MTD_MTDRAM_MODULE 1
+-#define CONFIG_PCI_PRI 1
+-#define CONFIG_BLK_DEV_SX8_MODULE 1
+-#define CONFIG_CRYPTO_BLKCIPHER 1
+-#define CONFIG_EXTCON_MAX77693_MODULE 1
+-#define CONFIG_X86_L1_CACHE_SHIFT 6
+-#define CONFIG_X86_PAT 1
+-#define CONFIG_USB_STORAGE_ONETOUCH_MODULE 1
+-#define CONFIG_NLS_ISO8859_8_MODULE 1
+-#define CONFIG_USB_WPAN_HCD_MODULE 1
+-#define CONFIG_DM_CACHE_MQ_MODULE 1
+-#define CONFIG_RT2400PCI_MODULE 1
+-#define CONFIG_NF_CONNTRACK_MODULE 1
+-#define CONFIG_RTC_DRV_PCF8523_MODULE 1
+-#define CONFIG_HID_PICOLCD_CIR 1
+-#define CONFIG_COMEDI_GSC_HPDI_MODULE 1
+-#define CONFIG_FB_NVIDIA_MODULE 1
+-#define CONFIG_LCD_CLASS_DEVICE_MODULE 1
+-#define CONFIG_IPDDP_ENCAP 1
+-#define CONFIG_ARCH_DMA_ADDR_T_64BIT 1
+-#define CONFIG_FILE_LOCKING 1
+-#define CONFIG_ACPI_I2C 1
+-#define CONFIG_PATA_HPT3X3_MODULE 1
+-#define CONFIG_USB_GSPCA_XIRLINK_CIT_MODULE 1
+-#define CONFIG_AD2S1200_MODULE 1
+-#define CONFIG_RTC_DRV_STK17TA8_MODULE 1
+-#define CONFIG_USB_GSPCA_SN9C20X_MODULE 1
+-#define CONFIG_TOUCHSCREEN_USB_ELO 1
+-#define CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST 1
+-#define CONFIG_KARMA_PARTITION 1
+-#define CONFIG_FB_SM501_MODULE 1
+-#define CONFIG_SND_SOC_I2C_AND_SPI_MODULE 1
+-#define CONFIG_NETPOLL 1
+-#define CONFIG_ZSWAP 1
+-#define CONFIG_SPEAKUP_SYNTH_AUDPTR_MODULE 1
+-#define CONFIG_MAC80211_MESSAGE_TRACING 1
+-#define CONFIG_SENSORS_F71882FG_MODULE 1
+-#define CONFIG_ACPI_APEI_GHES 1
+-#define CONFIG_FB_CARILLO_RANCH_MODULE 1
+-#define CONFIG_SENSORS_ADT7310_MODULE 1
+-#define CONFIG_AIO 1
+-#define CONFIG_SERIO_ARC_PS2_MODULE 1
+-#define CONFIG_DVB_TDA8083_MODULE 1
+-#define CONFIG_NET_MPLS_GSO_MODULE 1
+-#define CONFIG_BLK_DEV_DAC960_MODULE 1
+-#define CONFIG_USB_FOTG210_UDC_MODULE 1
+-#define CONFIG_CLKEVT_I8253 1
+-#define CONFIG_DVB_USB_AZ6007_MODULE 1
+-#define CONFIG_REGULATOR_USERSPACE_CONSUMER_MODULE 1
+-#define CONFIG_NET_EMATCH 1
+-#define CONFIG_PERF_EVENTS 1
+-#define CONFIG_GENERIC_TIME_VSYSCALL 1
+-#define CONFIG_IP_NF_TARGET_REJECT_MODULE 1
+-#define CONFIG_NET_SCH_CHOKE_MODULE 1
+-#define CONFIG_LEDS_CLASS 1
+-#define CONFIG_GENERIC_HARDIRQS 1
+-#define CONFIG_COMEDI_BOND_MODULE 1
+-#define CONFIG_DVB_USB_DIGITV_MODULE 1
+-#define CONFIG_IP6_NF_MATCH_HL_MODULE 1
+-#define CONFIG_BLK_CPQ_CISS_DA_MODULE 1
+-#define CONFIG_TIPC_MEDIA_IB 1
+-#define CONFIG_VIDEO_SAA7110_MODULE 1
+-#define CONFIG_MTD_L440GX_MODULE 1
+-#define CONFIG_WINBOND_FIR_MODULE 1
+-#define CONFIG_IP_VS_TAB_BITS 12
+-#define CONFIG_IP6_NF_MATCH_OPTS_MODULE 1
+-#define CONFIG_SENSORS_DA9055_MODULE 1
+-#define CONFIG_SCSI_SAS_HOST_SMP 1
+-#define CONFIG_VERSION_SIGNATURE "Ubuntu 3.11.0-20.35~precise1-generic 3.11.10.6"
+-#define CONFIG_AUFS_BR_RAMFS 1
+-#define CONFIG_RTC_INTF_DEV 1
+-#define CONFIG_MTD_MAP_BANK_WIDTH_4 1
+-#define CONFIG_IIO_ST_SENSORS_SPI_MODULE 1
+-#define CONFIG_DCACHE_WORD_ACCESS 1
+-#define CONFIG_IP6_NF_TARGET_NPT_MODULE 1
+-#define CONFIG_SOC_CAMERA_OV9740_MODULE 1
+-#define CONFIG_DVB_USB_CE6230_MODULE 1
+-#define CONFIG_PARIDE_ATEN_MODULE 1
+-#define CONFIG_DEFAULT_DEADLINE 1
+-#define CONFIG_INFINIBAND_CXGB3_MODULE 1
+-#define CONFIG_USB_SERIAL_SYMBOL_MODULE 1
+-#define CONFIG_SERIAL_TIMBERDALE_MODULE 1
+-#define CONFIG_HERMES_MODULE 1
+-#define CONFIG_REGULATOR_MAX8952_MODULE 1
+-#define CONFIG_SND_SOC_HDMI_CODEC_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_OSF_MODULE 1
+-#define CONFIG_USB_MIDI_GADGET_MODULE 1
+-#define CONFIG_SATA_QSTOR_MODULE 1
+-#define CONFIG_WILINK_PLATFORM_DATA 1
+-#define CONFIG_VIDEO_GO7007_MODULE 1
+-#define CONFIG_PATA_SIS 1
+-#define CONFIG_AMD_NB 1
+-#define CONFIG_SND_VIRMIDI_MODULE 1
+-#define CONFIG_LIB80211_CRYPT_TKIP_MODULE 1
+-#define CONFIG_LOCKUP_DETECTOR 1
+-#define CONFIG_QSEMI_PHY 1
+-#define CONFIG_IP_VS_PROTO_UDP 1
+-#define CONFIG_VIDEO_BT866_MODULE 1
+-#define CONFIG_NLS_DEFAULT "utf8"
+-#define CONFIG_ACPI_CONTAINER 1
+-#define CONFIG_SND_DMA_SGBUF 1
+-#define CONFIG_UTS_NS 1
+-#define CONFIG_NF_CT_PROTO_GRE_MODULE 1
+-#define CONFIG_BT_HCIUART_BCSP 1
+-#define CONFIG_NF_CT_NETLINK_MODULE 1
+-#define CONFIG_EFS_FS_MODULE 1
+-#define CONFIG_AUXDISPLAY 1
+-#define CONFIG_NET_EMATCH_TEXT_MODULE 1
+-#define CONFIG_DMA_ENGINE 1
+-#define CONFIG_SND_HDA_CODEC_ANALOG 1
+-#define CONFIG_ADIS16209_MODULE 1
+-#define CONFIG_X86_ACPI_CPUFREQ 1
+-#define CONFIG_HID_WIIMOTE_MODULE 1
+-#define CONFIG_BACKLIGHT_AS3711_MODULE 1
+-#define CONFIG_USB_MA901_MODULE 1
+-#define CONFIG_P54_SPI_MODULE 1
+-#define CONFIG_RDS_TCP_MODULE 1
+-#define CONFIG_CRYPTO_AEAD2 1
+-#define CONFIG_CRYPTO_FCRYPT_MODULE 1
+-#define CONFIG_PCMCIA_ATMEL_MODULE 1
+-#define CONFIG_NFC_NCI_MODULE 1
+-#define CONFIG_TOSHIBA_BT_RFKILL_MODULE 1
+-#define CONFIG_MOUSE_PS2_MODULE 1
+-#define CONFIG_NET_IPIP_MODULE 1
+-#define CONFIG_IP_VS_SH_TAB_BITS 8
+-#define CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE 0
+-#define CONFIG_USB_SERIAL_IPAQ_MODULE 1
+-#define CONFIG_NETFILTER_XT_MATCH_HL_MODULE 1
+-#define CONFIG_CHROMEOS_LAPTOP_MODULE 1
+-#define CONFIG_LEDS_TCA6507_MODULE 1
+-#define CONFIG_CRYPTO_ALGAPI2 1
+-#define CONFIG_EVM_HMAC_VERSION 2
+-#define CONFIG_SATA_SIS_MODULE 1
+-#define CONFIG_PHYSICAL_START 0x1000000
+-#define CONFIG_NETFILTER_XT_TARGET_LED_MODULE 1
+-#define CONFIG_WEXT_SPY 1
+-#define CONFIG_UBIFS_FS_LZO 1
+-#define CONFIG_USB_G_ACM_MS_MODULE 1
+-#define CONFIG_ACPI_SBS_MODULE 1
+-#define CONFIG_KEYBOARD_ADP5589_MODULE 1
+-#define CONFIG_HAVE_MEMBLOCK 1
+-#define CONFIG_DEBUG_RODATA 1
+-#define CONFIG_FB_3DFX_MODULE 1
+-#define CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS 1
+-#define CONFIG_INPUT 1
+-#define CONFIG_KVM_DEVICE_ASSIGNMENT 1
+-#define CONFIG_SND_SOC_WM8983_MODULE 1
+-#define CONFIG_PCI200SYN_MODULE 1
+-#define CONFIG_PPPOATM_MODULE 1
+-#define CONFIG_VIDEO_ZORAN_MODULE 1
+-#define CONFIG_PMIC_DA9052 1
+-#define CONFIG_PATA_OPTI_MODULE 1
+-#define CONFIG_PROC_SYSCTL 1
+-#define CONFIG_SND_HDA_CODEC_REALTEK 1
+-#define CONFIG_ATH6KL_MODULE 1
+-#define CONFIG_HAVE_PERF_EVENTS_NMI 1
+-#define CONFIG_NETFILTER_XT_TARGET_CT_MODULE 1
+-#define CONFIG_RD_LZ4 1
+-#define CONFIG_MMU 1
+-#define CONFIG_DVB_CX24123_MODULE 1
+-#define CONFIG_OCFS2_FS_MODULE 1
+-#define CONFIG_MTD_M25P80_MODULE 1
+-#define CONFIG_USB_KAWETH_MODULE 1
+-#define CONFIG_USB_SIERRA_NET_MODULE 1
+-#define CONFIG_AIC7XXX_RESET_DELAY_MS 15000
+-#define CONFIG_VMWARE_BALLOON_MODULE 1
+-#define CONFIG_GPIO_MCP23S08_MODULE 1
+-#define CONFIG_HISAX_GAZEL 1
+-#define CONFIG_BRIDGE_EBT_NFLOG_MODULE 1
+-#define CONFIG_CAN_SJA1000_PLATFORM_MODULE 1
+-#define CONFIG_TABLET_USB_AIPTEK_MODULE 1
+-#define CONFIG_AGP 1
+-#define CONFIG_INLINE_WRITE_UNLOCK 1
+-#define CONFIG_REGULATOR_TPS6524X_MODULE 1
+-#define CONFIG_INPUT_AD714X_MODULE 1
+-#define CONFIG_SENSORS_GL520SM_MODULE 1
+-#define CONFIG_E1000_MODULE 1
+-#define CONFIG_SCSI_SYM53C8XX_MMIO 1
diff --git a/recipes-ccsp/util/utopia/dhcp_script.sh b/recipes-ccsp/util/utopia/dhcp_script.sh
new file mode 100644
index 0000000..483062f
--- /dev/null
+++ b/recipes-ccsp/util/utopia/dhcp_script.sh
@@ -0,0 +1,2 @@
+#!/bin/bash
+sysevent set lease_resync
diff --git a/recipes-ccsp/util/utopia/firewall-secure-onboard.patch b/recipes-ccsp/util/utopia/firewall-secure-onboard.patch
new file mode 100644
index 0000000..b765f81
--- /dev/null
+++ b/recipes-ccsp/util/utopia/firewall-secure-onboard.patch
@@ -0,0 +1,15 @@
+diff --git a/source/firewall/firewall.c b/source/firewall/firewall.c
+index d54c10b9..755fe4a7 100644
+--- a/source/firewall/firewall.c
++++ b/source/firewall/firewall.c
+@@ -10728,6 +10728,10 @@ static int prepare_multinet_filter_forward(FILE *filter_fp) {
+ fprintf(filter_fp, "-A INPUT -i wifi2 -m pkttype ! --pkt-type unicast -j ACCEPT\n");
+ fprintf(filter_fp, "-A INPUT -i wifi3 -d 169.254.1.0/24 -j ACCEPT\n");
+ fprintf(filter_fp, "-A INPUT -i wifi3 -m pkttype ! --pkt-type unicast -j ACCEPT\n");
++ fprintf(filter_fp, "-A INPUT -i wifi6 -d 169.254.0.0/24 -j ACCEPT\n");
++ fprintf(filter_fp, "-A INPUT -i wifi6 -m pkttype ! --pkt-type unicast -j ACCEPT\n");
++ fprintf(filter_fp, "-A INPUT -i wifi7 -d 169.254.1.0/24 -j ACCEPT\n");
++ fprintf(filter_fp, "-A INPUT -i wifi7 -m pkttype ! --pkt-type unicast -j ACCEPT\n");
+ fprintf(filter_fp, "-A INPUT -i bhaul -d 169.254.85.0/24 -j ACCEPT\n");
+ fprintf(filter_fp, "-A INPUT -i bhaul -m pkttype ! --pkt-type unicast -j ACCEPT\n");
+ #elif defined(_COSA_BCM_MIPS_)
diff --git a/recipes-ccsp/util/utopia/posix-gwprovapp.patch b/recipes-ccsp/util/utopia/posix-gwprovapp.patch
new file mode 100644
index 0000000..fedf7dd
--- /dev/null
+++ b/recipes-ccsp/util/utopia/posix-gwprovapp.patch
@@ -0,0 +1,13 @@
+diff --git a/source/syscfg/lib/Makefile.am b/source/syscfg/lib/Makefile.am
+index 50d14ea2..8bfc3789 100644
+--- a/source/syscfg/lib/Makefile.am
++++ b/source/syscfg/lib/Makefile.am
+@@ -20,7 +20,7 @@ AM_CFLAGS = -D_ANSC_LINUX
+ AM_CFLAGS += -D_ANSC_USER
+ AM_CFLAGS += -D_ANSC_LITTLE_ENDIAN_
+ AM_CFLAGS += -D_GNU_SOURCE
+-AM_CFLAGS += -DSC_POSIX_SEM
++AM_CFLAGS += -DSC_SYSV_SEM
+
+ ACLOCAL_AMFLAGS = -I m4
+
diff --git a/recipes-ccsp/util/utopia/system_defaults b/recipes-ccsp/util/utopia/system_defaults
new file mode 100644
index 0000000..2cf4e59
--- /dev/null
+++ b/recipes-ccsp/util/utopia/system_defaults
@@ -0,0 +1,984 @@
+# If not stated otherwise in this file or this component's LICENSE
+# file the following copyright and licenses apply:
+#
+#Copyright [2019] [RDK Management]
+#
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+
+################################################################################
+# This file contains system defaults which will be used
+# if, and only if, the value has not yet been set
+# Both sysevent and syscfg namespace can be set
+#
+# syntax is
+# 1) for syscfg address space
+# $name=value Normal
+# $$name=value If the default should take precedence over running config.
+# 2) for sysevent address space
+# @name=value or
+# @name=value flag where flag is defined in sysevent.h
+# TUPLE_FLAG_NONE = 0x00000000 (no flags)
+# TUPLE_FLAG_SERIAL = 0x00000001 (execute registered handlers in serial fashion)
+# TUPLE_FLAG_EVENT = 0x00000002 (execute registered handlers upon any set operation)
+# TUPLE_FLAG_WORM = 0x00000004 (write once read many)
+# example @foo=bar 0x00000001
+# For sysevent address space you can use a syscfg value as the
+# initial value for the sysevent tuple by prefacing the value by $
+# eg. @name=$name will use the current value of syscfg <name> as the value
+################################################################################
+
+# Version of the database.
+$$Version=11
+
+#-------------------------------------------------------------------
+# sysevent namespace
+#-------------------------------------------------------------------
+
+# wan_ifname is the name (as known to the OS) of the wan interface
+@wan_ifname=erouter0
+
+# model_name - display friendly model name of this device
+@model_name=USGv2 0x00000004
+
+# firmware_version is the current firmware version
+@firmware_version=0.0 0x00000004
+
+# current_wan_ipaddr is the ip address currently assigned to the wan
+@current_wan_ipaddr= 0.0.0.0
+
+@lan-status=stopped
+@wan-status=stopped
+@bridge-status=stopped
+@forwarding-status=stopped
+
+# current_wan_state is the current state of the wan (up/down)
+@current_wan_state=down
+# desired_wan_state is the desired state of the wan (up/down)
+@desired_wan_state=down
+# phylink_wan_state is the current state wan port's physical link (up/down)
+@phylink_wan_state=up
+# ipv4_x_states are used for events internal to the wan but initialize them
+@current_ipv4_wan_state=down
+@current_ipv4_link_state=down
+@desired_ipv4_wan_state=down
+@desired_ipv4_link_state=down
+
+# current hostname is taken from syscfg
+@hostname=$hostname
+
+# current usb device state (inserted/removed)
+#@usb_device_state=removed
+#@usb_device_mount_pt=none
+
+# Wireless radio definitions for ut610n
+#@wl0_radio_type=single 0x00000004
+#@wl0_radio_band=2.4g 0x00000004
+#@wl0_osifname=eth1 0x00000004
+
+#@wl1_radio_type=dual 0x00000004
+#@wl1_radio_band="2.4g 5g" 0x00000004
+#@wl1_osifname=eth2 0x00000004
+
+
+#-------------------------------------------------------------------
+# syscfg namespace
+#-------------------------------------------------------------------
+
+# hostname - the name of the home gateway as known to itself
+# and the home network. The hostname is used to identify the home gateway
+# during dns lookups.
+# This may be "" or unset if no hostname is desired, but this will
+# result in an inability to resolve the home gateway by name to
+# provide its current lan interface ip address.
+# dont assign hostname. instead let registration assign ssid on a per box basis
+# $hostname=ut610n
+
+# Last eRouter Mode, can be modified by DOCSIS Configure File TLV202
+# 0 - disabled
+# 1 - IPv4
+# 2 - IPv6
+# 3 - IPv4 and IPv6
+$last_erouter_mode=3
+
+# wan_physical_ifname - the name (as known to the OS) of the physical interface
+# that is used for the wan. This setting is not meant for users to manipulate.
+$$wan_physical_ifname=erouter0
+
+# wan_bridge_ifname - the name (as known to the OS) of the wan interface that is
+# to be enslaved in the lan bridge when in bridge mode.
+$$wan_bridge_ifname=lbr0
+
+# wan_virtual_ifnum - this is used only if the wan interface is part of a
+# virtual lan. This technique can be used to separate the ethernet switch
+# into a wan port and some lan ports.
+# If so, the value of wan_virtual_ifnum determines the name of the vlan
+# ("vlan" contatenated with wan_virtual_ifnum). The wan_physical_ifname
+# will be part of the resultant virtual lan.
+# If no vlan is used then the tuple is not required, or may be set to ""
+# This setting is not meant for users to manipulate.
+#$wan_virtual_ifnum=2
+
+# wan_mtu - the size of the wan interface's mtu
+# 0 - means auto-mtu, system will pick appropriate
+# default depending on WAN protocol
+$wan_mtu=0
+
+# wan_proto - describes how the wan interface is provisioned
+# must be one of: dhcp, static, pppoe, pptp, l2tp, telstra
+$wan_proto=dhcp
+
+# if wan_proto=static then we need to know the values to which to provision
+# ----------------
+# the wan interface
+# wan_ipaddr - desired wan interface ip address
+# wan_netmask - desired netmask for the interface
+# wan_default_gateway - the default gateway to route to
+# wan_domain - the name of the wan domain (optional)
+# nameserver1 - primary DNS nameserver to use, or 0.0.0.0 if none
+# nameserver2 - secondary DNS nameserver to use, or 0.0.0.0 if none
+# nameserver3 - tertiary DNS nameserver to use, or 0.0.0.0 if none
+# $wan_ipaddr=0.0.0.0
+# $wan_netmask=255.255.255.0
+# $wan_default_gateway=0.0.0.0
+# $nameserver1=0.0.0.0
+# $nameserver2=0.0.0.0
+# $nameserver3=0.0.0.0
+# wan_domain - the domain of the wan. The wan_domain is required
+# by some ISPs in order to define the search order for dns queries.
+# and thus is sometimes used when setting a static wan provisioning.
+# This may be "" or unset if no wan_domain setting is required.
+# $wan_domain=
+
+# if wan_proto=pppoe then
+# ---------------
+# wan_proto_username - the username
+# wan_proto_password - the password
+# wan_proto_remote_name - an remotename (optional)
+# wan_domain - the authentication domain (optional)
+# pppoe_service_name - for pppoe an optional service name
+# pppoe_access_concentrator_name - for pppoe an optional ac name
+# ppp_conn_method - describes the connection method
+# must be either: redial or demand
+# ppp_keepalive_interval - if ppp_conn_method=redial (should be 30-180)
+# ppp_idle_time - if ppp_conn_method=demand (should be 1-9999)
+$wan_proto_username=
+$wan_proto_password=
+$wan_proto_remote_name=
+$pppoe_service_name=
+$pppoe_access_concentrator_name=
+# $ppp_conn_method=demand
+# $ppp_keepalive_interval=180
+# $ppp_idle_time=9999
+
+# if wan_proto=pptp then
+# ---------------
+# wan_proto_username - the username
+# wan_proto_password - the password
+# wan_proto_remote_name - an remotename (optional)
+# wan_domain - the authentication domain (optional)
+# wan_proto_server_address- ip address of the pptp server
+# pptp_address_static- whether or not to use auto or static ip address
+# 0 or "" means automatic
+# 1 means static
+# if static then
+# wan_ipaddr - desired wan interface ip address
+# wan_netmask - desired netmask for the interface
+# wan_default_gateway - the default gateway to route to
+# wan_domain - the name of the wan domain (optional)
+# nameserver1 - primary DNS nameserver to use, or 0.0.0.0 if none
+# nameserver2 - secondary DNS nameserver to use, or 0.0.0.0 if none
+# nameserver3 - tertiary DNS nameserver to use, or 0.0.0.0 if none
+#
+# ppp_conn_method - describes the connection method
+# must be either: redial or demand
+# ppp_keepalive_interval - if ppp_conn_method=redial (should be 30-180)
+# ppp_idle_time - if ppp_conn_method=demand (should be 1-9999)
+$wan_proto_server_address=
+$wan_domain=
+$pptp_address_static=0
+
+# if wan_proto=l2tp then
+# -------------
+# wan_proto_username - the username
+# wan_proto_password - the password
+# wan_proto_server_address- ip address of the l2tp server
+# l2tp_address_static- whether or not to use auto or static ip address
+# 0 or "" means automatic
+# 1 means static
+# if static then
+# wan_ipaddr - desired wan interface ip address
+# wan_netmask - desired netmask for the interface
+# wan_default_gateway - the default gateway to route to
+# wan_domain - the name of the wan domain (optional)
+# nameserver1 - primary DNS nameserver to use, or 0.0.0.0 if none
+# nameserver2 - secondary DNS nameserver to use, or 0.0.0.0 if none
+# nameserver3 - tertiary DNS nameserver to use, or 0.0.0.0 if none
+#
+# ppp_conn_method - describes the connection method
+# must be either: redial or demand
+# ppp_keepalive_interval - if ppp_conn_method=redial (should be 30-180)
+# ppp_idle_time - if ppp_conn_method=demand (should be 1-9999)
+$l2tp_address_static=0
+
+
+# lan_ifname - the name (as known to the OS) of the lan interface
+# This setting is not meant for users to manipulate.
+$lan_ifname=brlan0
+
+# lan_ethernet_virtual_ifnums - a list of vlan nums. This is used if the
+# ethernet switch has been segmented into wan and lan ports using the
+# technique described in wan_virtual_ifnum.
+# This setting is not meant for users to manipulate.
+#$lan_ethernet_virtual_ifnums=1
+
+# lan_ethernet_physical_ifnames - a list of names of ethernet interfaces,
+# which will be enslaved into the lan bridge (which is known as lan_ifname
+# as described above)
+# This setting is not meant for users to manipulate
+$$lan_ethernet_physical_ifnames=lan0 lan1 lan2 lan3 lan4
+
+# lan_wl_physical_ifnames - a list of names of 802.11 interfaces, which will
+# be enslaved into the lan bridge (which is known as lan_ifname as
+# described above).
+# This setting is not meant for users to manipulate
+# $lan_wl_physical_ifnames=eth1 eth2
+
+# wireless interface settings
+# ---------------------------
+# for each wireless interface in lan_wl_physical_ifnames you must
+# specify the settings for that interface using the format
+# XXXX_setting, where
+# XXXX is the interface name, for example eth1
+# setting is the name of the value to set.
+# For example eth1_wl_ssid
+# controls the wl_ssid value for eth1
+# a) ssid
+# b) wep
+# wl_wep_enabled is 0 if wep is not enabled and 1 if enabled
+# if wl_wep_enabled then you must specify the wep settings
+# wl_wep_primary_key specifies the primary wep key [0-3]
+# wl_wep_key_X specifies the wep_key for the index X
+# E.g:
+# $wl1_key_1=
+# $wl1_key_2=
+# $wl1_key_3=
+# $wl1_key_4=
+
+
+# WLAN domain: wl0_xxx is for 2.4GHz, wl1_xxx is for 5GHz
+
+# WLAN radio settings
+# $wl_config_mode=manual
+
+# 2.4GHz
+# $wl0_state=up
+# dont assign ssid. instead let registration assign ssid on a per box basis
+# $wl0_ssid=ut610n
+# $wl0_ssid_broadcast=1
+# $wl0_network_mode=11n
+# $wl0_radio_band=auto
+# $wl0_channel=auto
+# $wl0_sideband=lower
+
+# 5GHz
+# $wl1_state=up
+# dont assign ssid. instead let registration assign ssid on a per box basis
+# $wl1_ssid=ut610n_media
+# $wl1_ssid_broadcast=1
+# $wl1_network_mode=11n
+# $wl1_radio_band=auto
+# $wl1_channel=auto
+# $wl1_sideband=lower
+
+# WLAN security settings
+
+# 2.4GHz
+# $wl0_security_mode=disabled
+# $wl0_encryption=
+# $wl0_passphrase=
+# $wl0_tx_key=1
+# $wl0_radius_server=
+# $wl0_radius_port=1812
+# $wl0_shared=0
+# $wl0_encryption=tkip
+# $wl0_key_renewal=3600
+
+# 5GHz
+# $wl1_security_mode=disabled
+# $wl1_encryption=
+# $wl1_passphrase=
+# $wl1_tx_key=1
+# $wl1_radius_server=
+# $wl1_radius_port=1812
+# $wl1_shared=0
+# $wl1_key_renewal=3600
+
+# WLAN MAC filters
+# $wl_access_restriction=disabled
+# $wl_mac_filter=
+
+# Advanced features
+# 2.4GHZ
+# $wl0_ap_isolation=disabled
+# $wl0_frame_burst=enabled
+# $wl0_authentication_type=auto
+# $wl0_basic_rate=default
+# $wl0_transmission_rate=auto
+# $wl0_n_transmission_rate=auto
+# $wl0_transmission_power=high
+# $wl0_cts_protection_mode=auto
+# $wl0_beacon_interval=100
+# $wl0_dtim_interval=1
+# $wl0_fragmentation_threshold=2346
+# $wl0_rts_threshold=2347
+
+# 5GHz
+# $wl1_ap_isolation=disabled
+# $wl1_frame_burst=enabled
+# $wl1_authentication_type=auto
+# $wl1_basic_rate=default
+# $wl1_transmission_rate=auto
+# $wl1_n_transmission_rate=auto
+# $wl1_transmission_power=high
+# $wl1_cts_protection_mode=auto
+# $wl1_beacon_interval=100
+# $wl1_dtim_interval=1
+# $wl1_fragmentation_threshold=2346
+# $wl1_rts_threshold=2347
+
+# Wireless QoS
+# $wl_wmm_support=enabled
+# $wl_no_acknowledgement=disabled
+
+# lan_ipaddr - the ip address to assign the lan_ifname
+# lan_netmask - the netmask to assign the lan_ifname
+$lan_ipaddr=10.0.0.1
+$lan_netmask=255.255.255.0
+
+# lan_domain - the name of the lan side domain
+# -----------
+# This may be blank or unassigned if no lan domain is desired
+# however for internal dns lookups it is usually desirable to
+# have a lan domain
+$lan_domain=utopia.net
+
+$StaticRouteCount=0
+
+# dhcp server
+# ----------
+# dhcp_server_enabled - if 0 then not enabled, if 1 then enabled
+# It must be enabled for any dhcp options to take effect
+# dhcp_start - the starting address for assigning dhcp leases
+# on the lan side
+# It is the last octet of the ip address. Eg 100 is 192.168.1.100
+# dhcp_num - the number of ip addresses that the dhcp server
+# can give out on the lan side
+# dhcp_lease_time - the number of minutes (m) or hours (h) that
+# a dhcp lease is given to a lan client
+# dhcp_nameserver_enabled, dhcp_nameserver_1, dhcp_nameserver_2, dhcp_nameserver_3 - nameservers to provision to dhcp clients
+# dhcp_wins_server - wins server to provision to client
+# dhcp_server_propagate_wan_domain - to maintain old (and less good) behavior of using the wan domain
+# for lan clients then ser dhcp_server_propagate_wan_domain to 1
+# dhcp_server_propagate_wan_nameserver - to maintain old (and less good) behavior of using the wan nameservers
+# for lan clients then ser dhcp_server_propagate_wan_nameserver to 1
+# dhcp_server_slow_start - if we are propagating info from wan, and if wan is not yet provisioned, then give dhcp
+# clients a short lease in order to give wan a chance to come up
+$dhcp_nameserver_enabled=0
+$dhcp_server_enabled=1
+$dhcp_start=10.0.0.2
+$dhcp_end=10.0.0.253
+$dhcp_num=252
+$dhcp_lease_time=7d
+$dhcp_server_propagate_wan_domain=1
+$dhcp_server_propagate_wan_nameserver=1
+$dhcp_server_slow_start=1
+
+# static dhcp leases
+# ------------------
+# if you want to have static addresses given to lan hosts by the dhcp server then
+# dhcp_num_static_host - the number of static hosts provisioned
+# and for each host dhcp_static_host_1 ... dhcp_static_host_x must be
+# either none (for a hole in the array)
+# or mac_address,last_octet_of_ip_address,friendly-name, eg. 11:22:33:44:55:66,99,Bob's iMac
+$dhcp_num_static_hosts=0
+
+# static nameservers
+# $nameserver1=
+# $nameserver2=
+# $nameserver3=
+
+# static wins server
+# ------------------
+#$dhcp_wins_server=
+
+# ddns
+# ----
+# ddns_enable - will set/disable the ddns client
+# 0 is disabled, otherwise it is enabled
+# ddns_service - the name of the ddns service
+# one of:
+# null ezip pgpow dhs
+# dyndns dyndns-static dyndns-custom
+# ods tzo easydns easydns-partner
+# gnudip justlinux dyns hn zoneedit
+# heipv6tb
+
+# ddns_update_days - the maximum number of days that we can wait between
+# ddns updates in order that the server doesnt think we implicitly unregistered
+# from the ddns service
+# ddns_last_update - the timestamp when we last registered with the
+# ddns service.
+# it may be 0 if we never registered
+# ddns_hostname - the name we are registering as with the ddns service
+# ddns_username/ddns_password - the credentials for the ddns service
+# ddns_mx - string to send as the mail exchange
+# ddns_wildcard - set your domain to have a wildcard
+# ddns_server - override default ip:port of ddns service provider
+# wan_last_ipaddr - the ip address that was last successfully registered
+# This should be 0.0.0.0 until we register successfully with the ddns server
+# This is not meant to be changed by the user
+# with ddns service. It may be 0.0.0.0 if we never successfully registered
+# It may also be unset
+# $wan_last_ipaddr=0.0.0.0
+# ddns_last_update - the timestamp of when we last updated successfully
+# with the ddns server
+# It may be 0 or it may be unset if never registered
+# This is not meant to be changed by the user
+# ddns_last_update=0
+$ddns_enable=0
+$ddns_update_days=28
+$ddns_last_update=0
+$ddns_enable1=0
+$ddns_enable2=0
+$ddns_service1=dyndns
+$ddns_service2=tzo
+$ddns_username1=admin1
+$ddns_username2=admin2
+$ddns_hostname1=cisco.com
+$ddns_hostname2=cisco.com
+$ddns_password1=admin1
+$ddns_password2=admin2
+# ntp_server is the name of the ntp server we should use
+$ntp_enabled=1
+$ntp_server1=time.nist.gov
+$ntp_server2=nist1-ny.glassey.com
+#$ntp_server3=2.pool.ntp.org
+# dynamic ntp servers
+# if we get ntp_servers from dhcp client then they will be added to sysevent
+#@dhcpc_ntp_server1=
+#@dhcpc_ntp_server2=
+#@dhcpc_ntp_server3=
+
+# TZ is the timezone that we are in. eg GMT+08:00
+# also Daylight Savings time can be added
+# One specification for DST starting on March 8 @ 2 AM and ending on Nov 11 @ 2AM
+# is: March 8 is the 0th day of the 2nd week of the 3rd month, and
+# Nov 11 is the 0th day of the 1st week of the 11th month
+# thus: DST,M3.2.0/02:00,M11.1.0/02:00
+$TZ=GMT+00:00
+$ntp_cityindex=0
+$auto_dst=1
+$ntp_daylightenable=0
+$ntp_daylightoffset=60
+
+# IGMP Proxy
+$igmpproxy_enabled=1
+
+# MLD Proxy
+$mldproxy_enabled=1
+
+# UPnP InternetGatewayDevice (IGD) settings
+$upnp_igd_enabled=1
+$igd_allow_userconfig=1
+$igd_allow_wandisable=0
+$upnp_igd_advr_expire=1800
+$upnp_igd_advr_ttl=5
+
+# Webserver settings
+# default admin username & password ("admin" in encrypted form)
+# http_is_admin_default indicates whether the default password is being used
+$http_admin_user=admin
+$http_admin_password=TSLIIHauhEfGE
+$http_admin_port=80
+$http_admin_is_default=1
+
+# Default settings for WebUI
+$user_count=3
+$user_name_1=mso
+$user_name_2=cusadmin
+$user_name_3=admin
+#$user_password_1=password of the day
+$user_password_1=W2402
+$user_password_2=WebUI
+$user_password_3=password
+$user_insNum_1=1
+$user_insNum_2=2
+$user_insNum_3=3
+
+# User Interface access level
+@lan_ip_webaccess=1
+@cm_ip_webaccess=1
+#@mta_ip_webaccess=
+@rg_ip_webaccess=0
+
+# Access restrictions on management interface
+$mgmt_http_enable=1
+$mgmt_https_enable=0
+$mgmt_wifi_access=1
+
+$mgmt_wan_access=1
+$mgmt_wan_httpaccess=1
+$mgmt_wan_httpsaccess=0
+$mgmt_wan_sshaccess=1
+$mgmt_wan_telnetaccess=0
+$mgmt_wan_httpport=8080
+$mgmt_wan_httpsport=443
+$mgmt_wan_sshport=22
+$mgmt_wan_telnetport=23
+$mgmt_wan_srcany=1
+$mgmt_wan_srcstart_ip=255.255.255.255
+$mgmt_wan_srcend_ip=255.255.255.255
+$mgmt_wan_fwupgrade=0
+$mgmt_lan_telnetaccess=0
+$mgmt_lan_sshaccess=0
+$mgmt_mta_telnetaccess=0
+$mgmt_mta_sshaccess=0
+
+# NAT
+# ---
+# NAT can be explicitly turned off by setting nat_enabled 0
+$nat_enabled=1
+
+# Firewall
+#---------
+# $firewall_enabled= 0|1 1 is enabled, 0 is disabled
+# $GeneralPurposeFirewallRuleCount - the number of general purpose firewall rules
+# $GeneralPurposeFirewallRule_X - where X is a number assigns a firewall rule.
+# There can be as many rules as one likes but
+# for each rule X must be incremented by 1
+# A firewall rule is any rule that is acceptable to iptables-restore
+# You may use shell variables $WAN_IPADDR $LAN_IPADDR $WAN_IFNAME $LAN_IFNAME
+# in the rule and the runtime values will be inserted
+# eg syscfg set GeneralPurposeFilrewallRule_1 "-A INPUT -p tcp -m tcp -d $WAN_IPADDR --dport 22 -j ACCEPT"
+# $v6firewall_ruleX - where X is a number assigns a firewall rule.
+# There can be as many rules as one likes but
+# for each rule X must be incremented by 1
+# There can be no gaps in the numbering
+# A ipv6 firewall rule is any rule that is acceptable to ip6tables-restore
+# You may use shell variables $WAN_IPADDR $LAN_IPADDR $WAN_IFNAME $LAN_IFNAME
+# in the rule and the runtime values will be inserted
+# eg.
+#$GeneralPurposeFirewallRuleCount=3
+#$GeneralPurposeFirewallRule_1=-A INPUT -p tcp -m tcp -d $WAN_IPADDR --dport 22 -j ACCEPT
+#$GeneralPurposeFirewallRule_2=-A INPUT -p tcp -m tcp -d $WAN_IPADDR --dport 80 -j ACCEPT
+#$GeneralPurposeFirewallRule_3=-A INPUT -p tcp -m tcp -d $WAN_IPADDR --dport 443 -j ACCEPT
+
+# For development only, allow nfs and telnet through eth0
+#$GeneralPurposeFirewallRuleCount=1
+#$GeneralPurposeFirewallRule_1=-A INPUT -i eth0 -j ACCEPT
+#$GeneralPurposeFirewallRule_2=-A INPUT -p tcp -m tcp -d $WAN_IPADDR --dport 80 -j ACCEPT
+
+$firewall_enabled=1
+$firewall_level=Low
+$firewall_levelv6=Low
+
+# Do not block rfc 1918 private addresses on the WAN side
+$block_rfc1918=0
+
+$block_ping=0
+$block_multicast=0
+$block_nat_redirection=1
+$nat_hairping_enable=1
+$block_ident=0
+
+# during development we want to allow ping, rfc 1918 addresses on wan, ssh/http/https from wan
+# no matter what rules are in firewall
+$firewall_development_override=0
+
+$dmz_enabled=0
+
+$block_webproxy=0
+$block_java=0
+$block_activex=0
+$block_cookies=0
+$portscan_enabled=0
+
+$IPSecPassthrough=1
+$PPTPPassthrough=1
+
+$SinglePortForwardCount=0
+$PortRangeForwardCount=0
+$PortRangeTriggerCount=0
+$InternetAccessPolicyCount=0
+$W2LWellKnownFirewallRuleCount=0
+
+# IPv6 Section
+
+# 6to4 tunnels
+# $6to4_enable= 0|1|2 1 is enabled except when WAN is RFC1918, 0 is disabled, 2 is enabled even with WAN in RFC1928
+$6to4_enable=0
+
+# AICCU (www.SixSs.net tunnel broker) = IPv6 over UDP over IPv4
+# $aiccu_enable = 0|1 1 is enabled, 0 is disabled even if $aiccu_user/password are configured
+$aiccu_enable=0
+#$aiccu_user=foo
+#$aiccu_password=T@#dK
+#$aiccu_tunnel=T1234
+#$aiccu_prefix=2001:db8:: # only prefix, no prefix length
+
+# Hurricane Electric tunnels (www.tunnelbroker.net) = IPv6 over IPv4
+# $he_enable = 0|1 1 is enabled, 0 is disabled even if $he_user/password are configured
+$he_enable=0
+#$he_client_ipv6=2001:db8:cafe::2 # IPv6 address of the client tunnel interface
+#$he_user=foo
+#$he_password=T@#dK
+#$he_tunnel=1234
+#$he_server_ipv4=192.0.0.2 # The IPv4 address of the tunnel broker
+#$he_prefix=2001:db8:: # only prefix, no prefix length
+
+# Bridging IPv6
+# $ipv6_bridging_enable = 0|1 1 is enabled, 0 is disabled
+$ipv6_bridging_enable=0
+
+# NDP Proxy for IPv6
+# $ipv6_ndp_proxy_enable = 0|1 1 is enabled, 0 is disabled
+$ipv6_ndp_proxy_enable=0
+
+# DHCPv6 client
+# $dhcpv6c_enable = 0|1|2|3 1 is enabled for PD, 2 is enabled for IA, 3 is enabled for IA and PD, 0 is disabled
+$dhcpv6c_enable=0
+
+# DHCPv6 server
+# $dhcpv6s_enable = 0|1 1 is enabled, 0 is disabled
+$dhcpv6s_enable=0
+
+# 6rd tunnels
+# $6rd_enable= 0|1 1 is enabled, 0 is disabled
+$6rd_enable=0
+# $6rd_zone= the leading part of the IPv6 prefix
+# $6rd_zone_length= the length of the 6RD zone
+# $6rd_common_prefix4= the length of the leading common part of the IPv4 address of all 6RD router
+# $6rd_relay= the IPv4 address of the default 6RD relay
+
+# Static IPv6 configuration
+# $ipv6_static_enable = 0|1
+$ipv6_static_enable=0
+
+# WAN static interface configuration (optional when SLAAC is used)
+#$wan_ipv6addr=2001:db8:cafe:baba::1/64
+#$wan_ipv6_default_gateway=fe80::bad:babe
+# LAN static interface configuration MANDATORY when ipv6_static_enable == 1
+#$lan_ipv6addr=2001:db8:f00::1/64
+
+# router advertisement provisioning on LAN side
+# $router_adv_enable= 0|1
+$router_adv_enable=1
+$router_managed_flag=1
+$router_other_flag=1
+
+# allow wan interface to be provisioned using router advertisement
+$router_adv_provisioning_enable=1
+
+
+# Locale Settings
+$locale=en-us
+
+# Rip
+#----
+# $rip_enabled 1 , 0 is disabled
+# $rip_no_split_horizon 1 , 1 means dont use split horizon
+# $rip_interface_wan 0|1, 0 means disable rip on the wan interface
+# $rip_interface_lan 0|1, 0 means disable rip on the lan interface
+$rip_enabled=0
+$cosa_usgv2_rip00::Version=2
+$cosa_usgv2_rip00::ConnectedMetric=1
+$cosa_usgv2_rip00::DefaultMetric=1
+$cosa_usgv2_rip00::UpdateTime=30
+$cosa_usgv2_rip00::CollectionTime=120
+$cosa_usgv2_rip00::TimoutTime=180
+
+$cosa_usgv2_rip00::If1Enable=1
+$cosa_usgv2_rip00::If1KeyChainName=keychain1
+$cosa_usgv2_rip00::If1Name=erouter0
+$cosa_usgv2_rip00::If1Alias=Ethernet
+$cosa_usgv2_rip00::If1AuthenticateType=3
+$cosa_usgv2_rip00::If1ReceiveEnable=1
+$cosa_usgv2_rip00::If1ReceiveVersion=2
+$cosa_usgv2_rip00::If1SendEnable=1
+$cosa_usgv2_rip00::If1SendVersion=2
+$cosa_usgv2_rip00::If1Neighbor=0
+$cosa_usgv2_rip00::If1KeyID=0
+$cosa_usgv2_rip00::If1Md5KeyValue=
+$cosa_usgv2_rip00::If1SimplePassword=
+
+# RIPNG
+# $ripng_enabled=0
+
+# Logging
+# -------
+# $log_level=[0|1|2]
+# 0 - disabled
+# 1 - default log
+# 2 - extra log
+# 3 - debug log
+# syslog level=1 to 8
+# 1 - Emergency
+# 2 - Alert
+# 3 - Critical
+# 4 - Error
+# 5 - Warning (maps to 0 - disabled)
+# 6 - Notice (maps to 1 - normal logging)
+# 7 - Info
+# 8 - Debug (maps to 2 - debug logging)
+# $log_remote=0|<ip-addr>:[port]
+$log_level=2
+$log_remote=0
+
+# Samba usb storage filesystem
+#$samba_server_enabled=0
+
+# Quality of Service
+#------------------
+$qos_enable=1
+
+# NAS Shared Folder
+#------------------
+#$SharedFolderCount=1
+#$SharedFolder_1=sf_1
+#$sf_1::name=Shared
+#$sf_1::folder=Shared
+#$sf_1::drive=/tmp/sda1
+#$sf_1::readonly=0
+
+# Bridge Mode Settings
+#------------------
+$bridge_mode=0
+
+# Wifi Bridge Mode Settings
+#------------------
+$wifi_bridge_mode=0
+
+# MOCA configuration
+# $moca_lof_channel
+# The last RF channel number on which a node was successfully in the steady state. Channel center frequency = 25 MHz * channel number.
+# Valid values are 32 to 60. Set to 0 if there is no LOF.
+# $moca_freq_mode
+# auto - automatic scan
+# manual - fixed manual mode, use the value in moca_freq_plan
+# $moca_freq_plan
+# Valid values are 800MHz to 1500MHz (in 25 MHz increments)
+# $moca_constant_tx_power
+# auto - automatic level
+# manual - fixed manual mode, use the value in moca_maximum_tx_power
+# $moca_maximum_tx_power
+# Maximum analog transmit power of the MoCA interface in units of 3dB.
+# Valid values are 0 (0dB) to 12 (36dB) for current ADI chip.
+# $moca_dig_offset
+# Maximum digital transmit power of the MoCA interface in units of 1/4dB.
+# Valid values are -48 (-12dB) to 23 (5.75dB), 0 is recommended.
+# $moca_preferred_nc
+# Valid values are master, slave, auto and auto_nc.
+# $moca_enable_privacy
+# Valid values are enable and disable.
+# $moca_password_seed
+# A string up to 17 characters max.
+
+#------------------
+
+$moca_lof_channel=0
+$moca_freq_mode=auto
+$moca_freq_plan=1150
+$moca_constant_tx_power=auto
+$moca_dig_offset=0
+$moca_preferred_nc=1
+$moca_enable_privacy=0
+$moca_password_seed=99999999988888888
+$moca_enabled=1
+$moca_scan_enabled=0
+$moca_node_taboo_enabled=1
+$moca_node_taboo_mask=eaaefe00
+$moca_mixed_mode=1
+
+# saMocaDevicePower settings
+$moca_pwr_apc_enable=1
+$moca_maximum_tx_power=10
+$moca_phy_rate=235
+$moca_beacon_pwr_level=9
+
+# CCSP Defaults
+$dhcpv6s00::serverenable=1
+$dhcpv6s00::servertype=1
+$dhcpv6s00::poolnumber=1
+$dhcpv6spool00::instancenumber=1
+$dhcpv6spool00::bEnabled=1
+$dhcpv6spool00::Interface=Device.IP.Interface.2.
+$dhcpv6spool00::IANAEnable=1
+#$dhcpv6spool00::IANAManualPrefixes=Device.IP.Interface.1.IPv6Prefix.1.
+$dhcpv6spool00::IANAPrefixes=Device.IP.Interface.1.IPv6Prefix.1.
+$dhcpv6spool00::LeaseTime=604800
+$dhcpv6spool00::PrefixRangeBegin=0:0:0:0001
+$dhcpv6spool00::PrefixRangeEnd=0:0:0:fffe
+$dhcpv6spool00::EUI64Enable=1
+$dhcpv6spool00::RapidEnable=0
+$dhcpv6spool00::UnicastEnable=0
+$dhcpv6spool00::IANAAmount=255
+$dhcpv6spool00::optionnumber=2
+
+$dhcpv6spool0option0::bEnabled=1
+$dhcpv6spool0option0::Tag=23
+$dhcpv6spool0option0::PassthroughClient=Device.DHCPv6.Client.1.
+$dhcpv6spool0option1::bEnabled=1
+$dhcpv6spool0option1::Tag=24
+$dhcpv6spool0option1::PassthroughClient=Device.DHCPv6.Client.1.
+
+$CaptivePortal_Enable=true
+$redirection_flag=true
+
+#CCSP RECOVERY MONITOR
+$ccsp_recovery_enable=1
+
+# CM Diagnostic IP Support (192.168.100.1), also used for inter-processor DBUS
+$$cmdiag_ifname=lan0
+$cmdiag_enabled=1
+$$ecm_wan_ifname=erouter0
+$$emta_wan_ifname=mta0
+
+# Parental Control Defaults
+$managedsites_enabled=0
+$managedservices_enabled=1
+$manageddevices_enabled=0
+$manageddevices_allow_all=0
+$ManagedSiteBlockCount=0
+$ManagedSiteTrustCount=0
+$ManagedServiceBlockCount=0
+$ManagedServiceTrustCount=0
+$ManagedDeviceCount=0
+
+#HS Port Forward Defaults
+$CosaNAT::port_trigger_enabled=1
+$CosaNAT::port_forward_enabled=1
+$CosaNAT::port_hs_forward_enabled=1
+
+#Email Notification Defaults
+$email_notification_sendlogs=0
+$email_notification_firewallbreach=0
+$email_notification_parentalcontrolbreach=0
+$email_notification_alertswarning=0
+$email_notification_enabled=0
+$email_notification_fromaddr=admin@rdkb.dev
+
+# remote logging
+$rlog_enable=0
+$rlog_host=192.168.0.120
+$rlog_port=514
+
+#Firewall log settings
+$FW_LOG_FILE_PATH=/nvram2/log/firewall
+$$FW_LOG_COMPRESSED_FILE_SIZE=10
+
+#SYSTEM log settings
+#$SYS_LOG_FILE_PATH GET FROM SYSLOG CONFIG FILE
+$$SYS_LOG_COMMPRESSED_FILE_SIZE=10
+
+#Event log settings
+#$EVT_LOG_FILE_PATH GET FROM SYSLOG CONFIG FILE
+$$EVT_LOG_COMMPRESSED_FILE_SIZE=10
+
+# mta dsx log enable/disable
+$mta_dsx_log_enable=true
+
+#MoCA extender default parameters
+$MoCAExtRadioInstanceNumber0=1
+$MoCAExtRadioID0=RADIO_2.4GHz
+$MoCAExtRadioEnable0=1
+$MoCAExtRadioMode0=14
+$MoCAExtRadioChannelWidth0=1
+$MoCAExtRadioChannel0=6
+$MoCAExtRadioSecChannel0=3
+$MoCAExtRadioBeaconInterval0=100
+$MoCAExtRadioDTIMInterval0=2
+$MoCAExtRadioGuardInterval0=400
+$MoCAExtRadioCoexistance0=1
+
+$MoCAExtRadioInstanceNumber1=2
+$MoCAExtRadioID1=RADIO_5GHz
+$MoCAExtRadioEnable1=1
+$MoCAExtRadioMode1=9
+$MoCAExtRadioChannelWidth1=2
+$MoCAExtRadioChannel1=40
+$MoCAExtRadioSecChannel1=3
+$MoCAExtRadioBeaconInterval1=100
+$MoCAExtRadioDTIMInterval1=2
+$MoCAExtRadioGuardInterval1=400
+$MoCAExtRadioCoexistance1=1
+
+$MoCAExtSsidWpsEnabled=1
+$MoCAExtSsidWpsPinCode=12345678
+$MoCAExtSsidWpsSsidIndex=10001000
+
+$MoCAExtSsidNum=0
+
+#static ip defaults
+$staticdns_enable=0
+$wan_ipaddr=0.0.0.0
+$wan_netmask=0.0.0.0
+$wan_default_gateway=0.0.0.0
+$nameserver1=0.0.0.0
+$nameserver2=0.0.0.0
+$hostname=TurrisOmnia-GW
+
+$IPv6subPrefix=true
+
+#DSLite
+#dslite_enable - Enable/disable DS-Lite
+$dslite_enable=0
+
+#dslite_count - The number of dslite entries
+$dslite_count=1
+
+#dslite_InsNum - The index of dslite entry
+$dslite_InsNum_1=1
+
+#dslite_active - Enable or disable this 1st ipv6 tunnel
+$dslite_active_1=0
+
+#dslite_alias - The alias of the 1st ipv6 tunnel
+$dslite_alias_1=Dslite.Tunnel.1
+
+#dslite_mode - The preferred method to be used for EndpointName: DHCPv6(1), Static(2)
+$dslite_mode_1=1
+
+#dslite_addr_type - The preferred method to be used for the DS-Lite Endpoint: FQDN(1) IPv6Address(2)
+$dslite_addr_type_1=2
+
+#dslite_addr_fqdn - The Fully Qualified Domain Name (FQDN) of the tunnel concentrator (remote endpoint)
+$dslite_addr_fqdn_1=none
+
+#dslite_addr_ipv6 - The IPv6 address of the tunnel concentrator (remote endpoint)
+$dslite_addr_ipv6_1=::
+
+#dslite_mss_clamping_enable - Turn on/off (TCP) MSS clamping for ipv6 tunnel
+$dslite_mss_clamping_enable_1=0
+
+#dslite_tcpmss - TCP Mss value for ipv6 tunnel
+$dslite_tcpmss_1=1420
+
+#dslite_ipv6_frag_enable - Enable/disable dslite IPv6 frag
+$dslite_ipv6_frag_enable_1=0
+
+#Defaults for WanManager
+$tr_dhcpv6c_enabled=1
+$tr_dhcpv6c_iana_enabled=1
+$tr_dhcpv6c_iapd_enabled=1
+
diff --git a/recipes-common/mesh-agent/files/enabling_dhcp_lease_resync.patch b/recipes-common/mesh-agent/files/enabling_dhcp_lease_resync.patch
new file mode 100644
index 0000000..b149b34
--- /dev/null
+++ b/recipes-common/mesh-agent/files/enabling_dhcp_lease_resync.patch
@@ -0,0 +1,54 @@
+From cc64f3a69d13feda1b9f07b8f572080436d7560b Mon Sep 17 00:00:00 2001
+From: "rajakumaran.a" <rajakumaran.a@lnttechservices.com>
+Date: Thu, 2 Apr 2020 10:09:05 +0000
+Subject: [PATCH] Mesh dns lease update
+
+Signed-off-by: rajakumaran.a <rajakumaran.a@lnttechservices.com>
+Change-Id: Ib098c6d444b75d15120b2224ff46869b0e436c2f
+---
+ source/MeshAgentSsp/cosa_mesh_apis.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/source/MeshAgentSsp/cosa_mesh_apis.c b/source/MeshAgentSsp/cosa_mesh_apis.c
+index 46ed117..566cc0d 100644
+--- a/source/MeshAgentSsp/cosa_mesh_apis.c
++++ b/source/MeshAgentSsp/cosa_mesh_apis.c
+@@ -2154,7 +2154,9 @@ static void *Mesh_sysevent_handler(void *data)
+ async_id_t mesh_enable_asyncid;
+ async_id_t mesh_url_asyncid;
+ async_id_t wifi_txRate_asyncid;
+-
++#ifdef _PLATFORM_TURRIS_
++ async_id_t lease_resync_asyncid;
++#endif
+ sysevent_set_options(sysevent_fd, sysevent_token, meshSyncMsgArr[MESH_WIFI_RESET].sysStr, TUPLE_FLAG_EVENT);
+ sysevent_setnotification(sysevent_fd, sysevent_token, meshSyncMsgArr[MESH_WIFI_RESET].sysStr, &wifi_init_asyncid);
+ sysevent_set_options(sysevent_fd, sysevent_token, meshSyncMsgArr[MESH_WIFI_SSID_NAME].sysStr, TUPLE_FLAG_EVENT);
+@@ -2195,6 +2197,10 @@ static void *Mesh_sysevent_handler(void *data)
+ sysevent_set_options(sysevent_fd, sysevent_token, meshSyncMsgArr[MESH_WIFI_TXRATE].sysStr, TUPLE_FLAG_EVENT);
+ sysevent_setnotification(sysevent_fd, sysevent_token, meshSyncMsgArr[MESH_WIFI_TXRATE].sysStr, &wifi_txRate_asyncid);
+
++#ifdef _PLATFORM_TURRIS_
++ sysevent_set_options(sysevent_fd, sysevent_token, meshSyncMsgArr[MESH_DHCP_RESYNC_LEASES].sysStr, TUPLE_FLAG_EVENT);
++ sysevent_setnotification(sysevent_fd, sysevent_token, meshSyncMsgArr[MESH_DHCP_RESYNC_LEASES].sysStr, &lease_resync_asyncid);
++#endif
+
+ for (;;)
+ {
+@@ -3198,6 +3204,13 @@ static void *Mesh_sysevent_handler(void *data)
+ }
+ }
+ }
++#ifdef _PLATFORM_TURRIS_
++ else if (strcmp(name, meshSyncMsgArr[MESH_DHCP_RESYNC_LEASES].sysStr)==0)
++ {
++ //This will handle sending lease information to plume for every new connection, without restarting the MeshAgent
++ Mesh_sendDhcpLeaseSync();
++ }
++#endif
+ else
+ {
+ MeshWarning("undefined event %s \n",name);
+--
+2.24.0
+
diff --git a/recipes-common/mesh-agent/files/meshagent-enable-ovs-default.patch b/recipes-common/mesh-agent/files/meshagent-enable-ovs-default.patch
new file mode 100644
index 0000000..2fbdb31
--- /dev/null
+++ b/recipes-common/mesh-agent/files/meshagent-enable-ovs-default.patch
@@ -0,0 +1,13 @@
+diff --git a/source/MeshAgentSsp/cosa_mesh_apis.c b/source/MeshAgentSsp/cosa_mesh_apis.c
+index c100dfd..a33b37e 100644
+--- a/source/MeshAgentSsp/cosa_mesh_apis.c
++++ b/source/MeshAgentSsp/cosa_mesh_apis.c
+@@ -2497,7 +2497,7 @@ static void Mesh_SetDefaults(ANSC_HANDLE hThisObject)
+ if(Mesh_SysCfgGetStr("mesh_ovs_enable", out_val, sizeof(out_val)) != 0)
+ {
+ MeshInfo("Syscfg error, Setting OVS mode to default\n");
+- Mesh_SetOVS(false,true,true);
++ Mesh_SetOVS(true,true,true);
+ }
+ else
+ {
diff --git a/recipes-common/mesh-agent/files/skip-apply-settings.patch b/recipes-common/mesh-agent/files/skip-apply-settings.patch
new file mode 100644
index 0000000..1dcb38a
--- /dev/null
+++ b/recipes-common/mesh-agent/files/skip-apply-settings.patch
@@ -0,0 +1,33 @@
+diff --git a/source/MeshAgentSsp/cosa_mesh_apis.c b/source/MeshAgentSsp/cosa_mesh_apis.c
+index fd657d5..b4d441b 100644
+--- a/source/MeshAgentSsp/cosa_mesh_apis.c
++++ b/source/MeshAgentSsp/cosa_mesh_apis.c
+@@ -1470,7 +1470,7 @@ bool Mesh_GetEnabled(const char *name)
+
+ return enabled;
+ }
+-
++#ifndef _PLATFORM_TURRIS_
+ static void applyWifiRadioSettings(int radioId)
+ {
+ CCSP_MESSAGE_BUS_INFO *bus_info = (CCSP_MESSAGE_BUS_INFO *)bus_handle;
+@@ -1506,6 +1506,7 @@ static void applyWifiRadioSettings(int radioId)
+ bus_info->freefunc(faultParam);
+ }
+ }
++#endif
+
+ void changeChBandwidth(int radioId, int channelBw) {
+ CCSP_MESSAGE_BUS_INFO *bus_info = (CCSP_MESSAGE_BUS_INFO *)bus_handle;
+@@ -1543,7 +1544,12 @@ void changeChBandwidth(int radioId, int channelBw) {
+ bus_info->freefunc( faultParam );
+ }
+
++/* On Turris omnia platform change bandwidth is already done with wifi_pushRadioChannel2 call.
++ * We want to copy config to datamodel, but we don't want to apply radio settings
++ */
++#ifndef _PLATFORM_TURRIS_
+ applyWifiRadioSettings(radioId);
++#endif
+ }
+
diff --git a/recipes-common/mesh-agent/mesh-agent.bbappend b/recipes-common/mesh-agent/mesh-agent.bbappend
new file mode 100644
index 0000000..5e04c60
--- /dev/null
+++ b/recipes-common/mesh-agent/mesh-agent.bbappend
@@ -0,0 +1,40 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "\
+file://enabling_dhcp_lease_resync.patch;apply=no \
+file://meshagent-enable-ovs-default.patch;apply=no \
+file://skip-apply-settings.patch;apply=no \
+"
+
+DEPENDS_append_dunfell = " safec trower-base64"
+RDEPENDS_${PN}_append_dunfell = " bash"
+
+# we need to patch to code for mesh-agent
+do_turris_meshagent_patches() {
+ cd ${S}
+ if [ ! -e patch_applied ]; then
+ bbnote "Patching enabling_dhcp_lease_resync.patch"
+ patch -p1 < ${WORKDIR}/enabling_dhcp_lease_resync.patch ${S}/source/MeshAgentSsp/cosa_mesh_apis.c
+
+ bbnote "Patching meshagent-enable-ovs-default.patch"
+ patch -p1 < ${WORKDIR}/meshagent-enable-ovs-default.patch ${S}/source/MeshAgentSsp/cosa_mesh_apis.c
+
+ bbnote "Patching skip-apply-settings.patch"
+ patch -p1 < ${WORKDIR}/skip-apply-settings.patch ${S}/source/MeshAgentSsp/cosa_mesh_apis.c
+
+ touch patch_applied
+ fi
+}
+addtask turris_meshagent_patches after do_unpack before do_configure
+
+do_install_append () {
+ install -D -m 0644 ${S}/systemd_units/meshAgent.service ${D}${systemd_unitdir}/system/meshAgent.service
+}
+
+FILES_${PN}_append = "${systemd_unitdir}/system/meshAgent.service"
+
+CFLAGS_append = " -D_PLATFORM_TURRIS_"
+
+LDFLAGS_append_dunfell = " -lsyscfg -lsysevent -lbreakpadwrapper -lsafec-3.5.1"
+
+LDFLAGS_remove_dunfell = "-lsafec-3.5"
diff --git a/recipes-common/rdk-logger/files/0001-Add-sys-time-and-select-include.patch b/recipes-common/rdk-logger/files/0001-Add-sys-time-and-select-include.patch
new file mode 100644
index 0000000..935d37f
--- /dev/null
+++ b/recipes-common/rdk-logger/files/0001-Add-sys-time-and-select-include.patch
@@ -0,0 +1,27 @@
+From 5885fbd6a145e12e36b90d0627306a23eface17f Mon Sep 17 00:00:00 2001
+From: Simon Chung <simon.c.chung@accenture.com>
+Date: Fri, 16 Apr 2021 11:47:02 +0100
+Subject: [PATCH] Add sys time and select include
+
+Change-Id: Ia00ff2f15280e564b8ff4af0fb255444292c2855
+---
+ src/rdk_dynamic_logger.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/rdk_dynamic_logger.c b/src/rdk_dynamic_logger.c
+index 48eb55e..6675dfa 100644
+--- a/src/rdk_dynamic_logger.c
++++ b/src/rdk_dynamic_logger.c
+@@ -28,6 +28,9 @@
+ #include <unistd.h>
+ #include "rdk_dynamic_logger.h"
+
++#include <sys/time.h>
++#include <sys/select.h>
++
+ #define DL_PORT 12035
+ #define DL_SIGNATURE "COMC"
+ #define DL_SIGNATURE_LEN 4
+--
+2.28.0
+
diff --git a/recipes-common/rdk-logger/rdk-logger_git.bbappend b/recipes-common/rdk-logger/rdk-logger_git.bbappend
new file mode 100644
index 0000000..59b1edb
--- /dev/null
+++ b/recipes-common/rdk-logger/rdk-logger_git.bbappend
@@ -0,0 +1,17 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'extender', 'file://0001-Add-sys-time-and-select-include.patch;apply=no', '', d)}"
+
+# we need to patch to code for rdk-logger
+do_rdk_logger_patches() {
+ cd ${S}
+ if [ -f ${WORKDIR}/0001-Add-sys-time-and-select-include.patch ]; then
+ if [ ! -e patch_applied_rdklogger ]; then
+ bbnote "Patching 0001-Add-sys-time-and-select-include.patch"
+ patch -p1 < ${WORKDIR}/0001-Add-sys-time-and-select-include.patch
+
+ touch patch_applied_rdklogger
+ fi
+ fi
+}
+addtask do_rdk_logger_patches after do_unpack before do_configure
diff --git a/recipes-connectivity/dibbler/dibbler_git.bbappend b/recipes-connectivity/dibbler/dibbler_git.bbappend
new file mode 100644
index 0000000..5f4dc90
--- /dev/null
+++ b/recipes-connectivity/dibbler/dibbler_git.bbappend
@@ -0,0 +1 @@
+CLIENT_NOTIFY_BSD = "git"
diff --git a/recipes-connectivity/hostapd/files/c89daaeca4ee90c8bc158e37acb1b679c823d7ab.patch b/recipes-connectivity/hostapd/files/c89daaeca4ee90c8bc158e37acb1b679c823d7ab.patch
new file mode 100644
index 0000000..6e2715a
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/c89daaeca4ee90c8bc158e37acb1b679c823d7ab.patch
@@ -0,0 +1,111 @@
+From c89daaeca4ee90c8bc158e37acb1b679c823d7ab Mon Sep 17 00:00:00 2001
+From: Helmut Schaa <helmut.schaa@googlemail.com>
+Date: Tue, 3 Dec 2013 14:51:43 +0100
+Subject: [PATCH] hostapd: Initial OVS support
+
+---
+ src/drivers/linux_ioctl.c | 67 ++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 66 insertions(+), 1 deletion(-)
+
+diff --git a/src/drivers/linux_ioctl.c b/src/drivers/linux_ioctl.c
+index 837971d2..e54aeb06 100644
+--- a/src/drivers/linux_ioctl.c
++++ b/src/drivers/linux_ioctl.c
+@@ -14,6 +14,62 @@
+ #include "utils/common.h"
+ #include "linux_ioctl.h"
+
++#define OPENVSWITCH
++#ifdef OPENVSWITCH
++#include <sys/wait.h>
++
++#define run_prog(p, ...) ({ \
++ int rc = -1, status; \
++ pid_t pid = fork(); \
++ if (!pid) \
++ exit(execl(p, p, ##__VA_ARGS__, NULL)); \
++ if (pid < 0) {\
++ rc = -1;\
++ } else {\
++ while ((rc = waitpid(pid, &status, 0)) == -1 && errno == EINTR); \
++ rc = (rc == pid && WIFEXITED(status)) ? WEXITSTATUS(status) : -1; \
++ }\
++ rc;\
++})
++
++int ovs_br_get(char *brname, const char *ifname)
++{
++ FILE *f;
++ char cmd[64];
++ char *c;
++
++ brname[0] = '\0';
++
++ sprintf(cmd, "/usr/bin/ovs-vsctl iface-to-br %s", ifname);
++ f = popen(cmd, "r");
++ if (!f)
++ return -1;
++ c = fgets(brname, IFNAMSIZ, f);
++ pclose(f);
++ if (c && strlen(brname)) {
++ /* Ignore newline */
++ if ((c = strchr(brname, '\n')))
++ *c = '\0';
++ return 0;
++ }
++ return -1;
++}
++
++int ovs_br_add_if(const char *brname, const char *ifname)
++{
++ if (run_prog("/usr/bin/ovs-vsctl", "add-port", brname, ifname))
++ return -1;
++ return 0;
++}
++
++int ovs_br_del_if(const char *brname, const char *ifname)
++{
++ if (run_prog("/usr/bin/ovs-vsctl", "del-port", brname, ifname))
++ return -1;
++ return 0;
++}
++
++#endif
+
+ int linux_set_iface_flags(int sock, const char *ifname, int dev_up)
+ {
+@@ -162,6 +217,9 @@ int linux_br_add_if(int sock, const char *brname, const char *ifname)
+ struct ifreq ifr;
+ int ifindex;
+
++ if (!ovs_br_add_if(brname, ifname))
++ return 0;
++
+ ifindex = if_nametoindex(ifname);
+ if (ifindex == 0)
+ return -1;
+@@ -184,6 +242,9 @@ int linux_br_del_if(int sock, const char *brname, const char *ifname)
+ struct ifreq ifr;
+ int ifindex;
+
++ if (!ovs_br_del_if(brname, ifname))
++ return 0;
++
+ ifindex = if_nametoindex(ifname);
+ if (ifindex == 0)
+ return -1;
+@@ -206,6 +267,9 @@ int linux_br_get(char *brname, const char *ifname)
+ char path[128], brlink[128], *pos;
+ ssize_t res;
+
++ if (!ovs_br_get(brname, ifname))
++ return 0;
++
+ os_snprintf(path, sizeof(path), "/sys/class/net/%s/brport/bridge",
+ ifname);
+ res = readlink(path, brlink, sizeof(brlink));
+@@ -219,3 +283,4 @@ int linux_br_get(char *brname, const char *ifname)
+ os_strlcpy(brname, pos, IFNAMSIZ);
+ return 0;
+ }
++
diff --git a/recipes-connectivity/hostapd/files/defconfig b/recipes-connectivity/hostapd/files/defconfig
new file mode 100644
index 0000000..7b04cc3
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/defconfig
@@ -0,0 +1,391 @@
+# Example hostapd build time configuration
+#
+# This file lists the configuration options that are used when building the
+# hostapd binary. All lines starting with # are ignored. Configuration option
+# lines must be commented out complete, if they are not to be included, i.e.,
+# just setting VARIABLE=n is not disabling that variable.
+#
+# This file is included in Makefile, so variables like CFLAGS and LIBS can also
+# be modified from here. In most cass, these lines should use += in order not
+# to override previous values of the variables.
+
+# Driver interface for Host AP driver
+CONFIG_DRIVER_HOSTAP=y
+
+# Driver interface for wired authenticator
+CONFIG_DRIVER_WIRED=y
+
+# Driver interface for drivers using the nl80211 kernel interface
+CONFIG_DRIVER_NL80211=y
+
+# QCA vendor extensions to nl80211
+#CONFIG_DRIVER_NL80211_QCA=y
+
+# driver_nl80211.c requires libnl. If you are compiling it yourself
+# you may need to point hostapd to your version of libnl.
+#
+#CFLAGS += -I$<path to libnl include files>
+#LIBS += -L$<path to libnl library files>
+
+# Use libnl v2.0 (or 3.0) libraries.
+#CONFIG_LIBNL20=y
+
+# Use libnl 3.2 libraries (if this is selected, CONFIG_LIBNL20 is ignored)
+CONFIG_LIBNL32=y
+
+
+# Driver interface for FreeBSD net80211 layer (e.g., Atheros driver)
+#CONFIG_DRIVER_BSD=y
+#CFLAGS += -I/usr/local/include
+#LIBS += -L/usr/local/lib
+#LIBS_p += -L/usr/local/lib
+#LIBS_c += -L/usr/local/lib
+
+# Driver interface for no driver (e.g., RADIUS server only)
+#CONFIG_DRIVER_NONE=y
+
+# IEEE 802.11F/IAPP
+CONFIG_IAPP=y
+
+# WPA2/IEEE 802.11i RSN pre-authentication
+CONFIG_RSN_PREAUTH=y
+
+# IEEE 802.11w (management frame protection)
+CONFIG_IEEE80211W=y
+
+# Support Operating Channel Validation
+#CONFIG_OCV=y
+
+# Integrated EAP server
+CONFIG_EAP=y
+
+# EAP Re-authentication Protocol (ERP) in integrated EAP server
+CONFIG_ERP=y
+
+# EAP-MD5 for the integrated EAP server
+CONFIG_EAP_MD5=y
+
+# EAP-TLS for the integrated EAP server
+CONFIG_EAP_TLS=y
+
+# EAP-MSCHAPv2 for the integrated EAP server
+CONFIG_EAP_MSCHAPV2=y
+
+# EAP-PEAP for the integrated EAP server
+CONFIG_EAP_PEAP=y
+
+# EAP-GTC for the integrated EAP server
+CONFIG_EAP_GTC=y
+
+# EAP-TTLS for the integrated EAP server
+CONFIG_EAP_TTLS=y
+
+# EAP-SIM for the integrated EAP server
+#CONFIG_EAP_SIM=y
+
+# EAP-AKA for the integrated EAP server
+#CONFIG_EAP_AKA=y
+
+# EAP-AKA' for the integrated EAP server
+# This requires CONFIG_EAP_AKA to be enabled, too.
+#CONFIG_EAP_AKA_PRIME=y
+
+# EAP-PAX for the integrated EAP server
+#CONFIG_EAP_PAX=y
+
+# EAP-PSK for the integrated EAP server (this is _not_ needed for WPA-PSK)
+#CONFIG_EAP_PSK=y
+
+# EAP-pwd for the integrated EAP server (secure authentication with a password)
+#CONFIG_EAP_PWD=y
+
+# EAP-SAKE for the integrated EAP server
+#CONFIG_EAP_SAKE=y
+
+# EAP-GPSK for the integrated EAP server
+#CONFIG_EAP_GPSK=y
+# Include support for optional SHA256 cipher suite in EAP-GPSK
+#CONFIG_EAP_GPSK_SHA256=y
+
+# EAP-FAST for the integrated EAP server
+#CONFIG_EAP_FAST=y
+
+# EAP-TEAP for the integrated EAP server
+# Note: The current EAP-TEAP implementation is experimental and should not be
+# enabled for production use. The IETF RFC 7170 that defines EAP-TEAP has number
+# of conflicting statements and missing details and the implementation has
+# vendor specific workarounds for those and as such, may not interoperate with
+# any other implementation. This should not be used for anything else than
+# experimentation and interoperability testing until those issues has been
+# resolved.
+#CONFIG_EAP_TEAP=y
+
+# Wi-Fi Protected Setup (WPS)
+CONFIG_WPS=y
+# Enable UPnP support for external WPS Registrars
+CONFIG_WPS_UPNP=y
+# Enable WPS support with NFC config method
+CONFIG_WPS_NFC=y
+
+# EAP-IKEv2
+#CONFIG_EAP_IKEV2=y
+
+# Trusted Network Connect (EAP-TNC)
+#CONFIG_EAP_TNC=y
+
+# EAP-EKE for the integrated EAP server
+#CONFIG_EAP_EKE=y
+
+# PKCS#12 (PFX) support (used to read private key and certificate file from
+# a file that usually has extension .p12 or .pfx)
+CONFIG_PKCS12=y
+
+# RADIUS authentication server. This provides access to the integrated EAP
+# server from external hosts using RADIUS.
+CONFIG_RADIUS_SERVER=y
+
+# Build IPv6 support for RADIUS operations
+CONFIG_IPV6=y
+
+# IEEE Std 802.11r-2008 (Fast BSS Transition)
+CONFIG_IEEE80211R=y
+
+# Use the hostapd's IEEE 802.11 authentication (ACL), but without
+# the IEEE 802.11 Management capability (e.g., FreeBSD/net80211)
+CONFIG_DRIVER_RADIUS_ACL=y
+
+# IEEE 802.11n (High Throughput) support
+CONFIG_IEEE80211N=y
+
+# Wireless Network Management (IEEE Std 802.11v-2011)
+# Note: This is experimental and not complete implementation.
+CONFIG_WNM=y
+
+# IEEE 802.11ac (Very High Throughput) support
+CONFIG_IEEE80211AC=y
+
+# IEEE 802.11ax HE support
+# Note: This is experimental and work in progress. The definitions are still
+# subject to change and this should not be expected to interoperate with the
+# final IEEE 802.11ax version.
+#CONFIG_IEEE80211AX=y
+
+# Remove debugging code that is printing out debug messages to stdout.
+# This can be used to reduce the size of the hostapd considerably if debugging
+# code is not needed.
+#CONFIG_NO_STDOUT_DEBUG=y
+
+# Add support for writing debug log to a file: -f /tmp/hostapd.log
+# Disabled by default.
+CONFIG_DEBUG_FILE=y
+
+# Send debug messages to syslog instead of stdout
+#CONFIG_DEBUG_SYSLOG=y
+
+# Add support for sending all debug messages (regardless of debug verbosity)
+# to the Linux kernel tracing facility. This helps debug the entire stack by
+# making it easy to record everything happening from the driver up into the
+# same file, e.g., using trace-cmd.
+#CONFIG_DEBUG_LINUX_TRACING=y
+
+# Remove support for RADIUS accounting
+#CONFIG_NO_ACCOUNTING=y
+
+# Remove support for RADIUS
+#CONFIG_NO_RADIUS=y
+
+# Remove support for VLANs
+#CONFIG_NO_VLAN=y
+
+# Enable support for fully dynamic VLANs. This enables hostapd to
+# automatically create bridge and VLAN interfaces if necessary.
+#CONFIG_FULL_DYNAMIC_VLAN=y
+
+# Use netlink-based kernel API for VLAN operations instead of ioctl()
+# Note: This requires libnl 3.1 or newer.
+#CONFIG_VLAN_NETLINK=y
+
+# Remove support for dumping internal state through control interface commands
+# This can be used to reduce binary size at the cost of disabling a debugging
+# option.
+#CONFIG_NO_DUMP_STATE=y
+
+# Enable tracing code for developer debugging
+# This tracks use of memory allocations and other registrations and reports
+# incorrect use with a backtrace of call (or allocation) location.
+#CONFIG_WPA_TRACE=y
+# For BSD, comment out these.
+#LIBS += -lexecinfo
+#LIBS_p += -lexecinfo
+#LIBS_c += -lexecinfo
+
+# Use libbfd to get more details for developer debugging
+# This enables use of libbfd to get more detailed symbols for the backtraces
+# generated by CONFIG_WPA_TRACE=y.
+#CONFIG_WPA_TRACE_BFD=y
+# For BSD, comment out these.
+#LIBS += -lbfd -liberty -lz
+#LIBS_p += -lbfd -liberty -lz
+#LIBS_c += -lbfd -liberty -lz
+
+# hostapd depends on strong random number generation being available from the
+# operating system. os_get_random() function is used to fetch random data when
+# needed, e.g., for key generation. On Linux and BSD systems, this works by
+# reading /dev/urandom. It should be noted that the OS entropy pool needs to be
+# properly initialized before hostapd is started. This is important especially
+# on embedded devices that do not have a hardware random number generator and
+# may by default start up with minimal entropy available for random number
+# generation.
+#
+# As a safety net, hostapd is by default trying to internally collect
+# additional entropy for generating random data to mix in with the data
+# fetched from the OS. This by itself is not considered to be very strong, but
+# it may help in cases where the system pool is not initialized properly.
+# However, it is very strongly recommended that the system pool is initialized
+# with enough entropy either by using hardware assisted random number
+# generator or by storing state over device reboots.
+#
+# hostapd can be configured to maintain its own entropy store over restarts to
+# enhance random number generation. This is not perfect, but it is much more
+# secure than using the same sequence of random numbers after every reboot.
+# This can be enabled with -e<entropy file> command line option. The specified
+# file needs to be readable and writable by hostapd.
+#
+# If the os_get_random() is known to provide strong random data (e.g., on
+# Linux/BSD, the board in question is known to have reliable source of random
+# data from /dev/urandom), the internal hostapd random pool can be disabled.
+# This will save some in binary size and CPU use. However, this should only be
+# considered for builds that are known to be used on devices that meet the
+# requirements described above.
+#CONFIG_NO_RANDOM_POOL=y
+
+# Should we attempt to use the getrandom(2) call that provides more reliable
+# yet secure randomness source than /dev/random on Linux 3.17 and newer.
+# Requires glibc 2.25 to build, falls back to /dev/random if unavailable.
+#CONFIG_GETRANDOM=y
+
+# Should we use poll instead of select? Select is used by default.
+#CONFIG_ELOOP_POLL=y
+
+# Should we use epoll instead of select? Select is used by default.
+#CONFIG_ELOOP_EPOLL=y
+
+# Should we use kqueue instead of select? Select is used by default.
+#CONFIG_ELOOP_KQUEUE=y
+
+# Select TLS implementation
+# openssl = OpenSSL (default)
+# gnutls = GnuTLS
+# internal = Internal TLSv1 implementation (experimental)
+# linux = Linux kernel AF_ALG and internal TLSv1 implementation (experimental)
+# none = Empty template
+#CONFIG_TLS=openssl
+
+# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.1)
+# can be enabled to get a stronger construction of messages when block ciphers
+# are used.
+#CONFIG_TLSV11=y
+
+# TLS-based EAP methods require at least TLS v1.0. Newer version of TLS (v1.2)
+# can be enabled to enable use of stronger crypto algorithms.
+#CONFIG_TLSV12=y
+
+# Select which ciphers to use by default with OpenSSL if the user does not
+# specify them.
+#CONFIG_TLS_DEFAULT_CIPHERS="DEFAULT:!EXP:!LOW"
+
+# If CONFIG_TLS=internal is used, additional library and include paths are
+# needed for LibTomMath. Alternatively, an integrated, minimal version of
+# LibTomMath can be used. See beginning of libtommath.c for details on benefits
+# and drawbacks of this option.
+#CONFIG_INTERNAL_LIBTOMMATH=y
+#ifndef CONFIG_INTERNAL_LIBTOMMATH
+#LTM_PATH=/usr/src/libtommath-0.39
+#CFLAGS += -I$(LTM_PATH)
+#LIBS += -L$(LTM_PATH)
+#LIBS_p += -L$(LTM_PATH)
+#endif
+# At the cost of about 4 kB of additional binary size, the internal LibTomMath
+# can be configured to include faster routines for exptmod, sqr, and div to
+# speed up DH and RSA calculation considerably
+#CONFIG_INTERNAL_LIBTOMMATH_FAST=y
+
+# Interworking (IEEE 802.11u)
+# This can be used to enable functionality to improve interworking with
+# external networks.
+#CONFIG_INTERWORKING=y
+
+# Hotspot 2.0
+#CONFIG_HS20=y
+
+# Enable SQLite database support in hlr_auc_gw, EAP-SIM DB, and eap_user_file
+#CONFIG_SQLITE=y
+
+# Enable Fast Session Transfer (FST)
+#CONFIG_FST=y
+
+# Enable CLI commands for FST testing
+#CONFIG_FST_TEST=y
+
+# Testing options
+# This can be used to enable some testing options (see also the example
+# configuration file) that are really useful only for testing clients that
+# connect to this hostapd. These options allow, for example, to drop a
+# certain percentage of probe requests or auth/(re)assoc frames.
+#
+#CONFIG_TESTING_OPTIONS=y
+
+# Automatic Channel Selection
+# This will allow hostapd to pick the channel automatically when channel is set
+# to "acs_survey" or "0". Eventually, other ACS algorithms can be added in
+# similar way.
+#
+# Automatic selection is currently only done through initialization, later on
+# we hope to do background checks to keep us moving to more ideal channels as
+# time goes by. ACS is currently only supported through the nl80211 driver and
+# your driver must have survey dump capability that is filled by the driver
+# during scanning.
+#
+# You can customize the ACS survey algorithm with the hostapd.conf variable
+# acs_num_scans.
+#
+# Supported ACS drivers:
+# * ath9k
+# * ath5k
+# * ath10k
+#
+# For more details refer to:
+# http://wireless.kernel.org/en/users/Documentation/acs
+#
+CONFIG_ACS=y
+
+# Multiband Operation support
+# These extentions facilitate efficient use of multiple frequency bands
+# available to the AP and the devices that may associate with it.
+CONFIG_MBO=y
+
+# Client Taxonomy
+# Has the AP retain the Probe Request and (Re)Association Request frames from
+# a client, from which a signature can be produced which can identify the model
+# of client device like "Nexus 6P" or "iPhone 5s".
+CONFIG_TAXONOMY=y
+
+# Fast Initial Link Setup (FILS) (IEEE 802.11ai)
+#CONFIG_FILS=y
+# FILS shared key authentication with PFS
+#CONFIG_FILS_SK_PFS=y
+
+# Include internal line edit mode in hostapd_cli. This can be used to provide
+# limited command line editing and history support.
+#CONFIG_WPA_CLI_EDIT=y
+
+# Opportunistic Wireless Encryption (OWE)
+# Experimental implementation of draft-harkins-owe-07.txt
+#CONFIG_OWE=y
+
+# Airtime policy support
+CONFIG_AIRTIME_POLICY=y
+
+# Override default value for the wpa_disable_eapol_key_retries configuration
+# parameter. See that parameter in hostapd.conf for more details.
+#CFLAGS += -DDEFAULT_WPA_DISABLE_EAPOL_KEY_RETRIES=1
diff --git a/recipes-connectivity/hostapd/files/hostapd-2G.conf b/recipes-connectivity/hostapd/files/hostapd-2G.conf
new file mode 100644
index 0000000..14cf67b
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd-2G.conf
@@ -0,0 +1,48 @@
+driver=nl80211
+interface=wifi0
+bridge=brlan0
+ssid=TurrisOmnia
+
+country_code=US
+ieee80211d=1
+hw_mode=g
+beacon_int=100
+channel=11
+
+ieee80211n=1
+ht_capab=[SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1]
+
+ap_isolate=1
+bss_load_update_period=60
+#chan_util_avg_period=600
+disassoc_low_ack=1
+preamble=1
+wmm_enabled=1
+ignore_broadcast_ssid=0
+uapsd_advertisement_enabled=1
+auth_algs=1
+rrm_neighbor_report=1
+bss_transition=1
+macaddr_acl=0
+bssid=
+
+#Security parameters
+wpa=2
+wpa_pairwise=CCMP
+wpa_key_mgmt=WPA-PSK
+wpa_passphrase=rdk@1234
+
+#WPS configuration lines
+wps_state=0
+ap_setup_locked=1
+config_methods=virtual_push_button keypad
+wps_pin_requests=/var/run/hostapd_wps_pin_requests.log
+eap_server=1
+
+#Interface for separate control program. hostapd_cli command will use it when trying to connect with hostapd.
+ctrl_interface=/var/run/hostapd
+
+logger_syslog=127
+logger_syslog_level=2
+logger_stdout=127
+logger_stdout_level=2
diff --git a/recipes-connectivity/hostapd/files/hostapd-5G.conf b/recipes-connectivity/hostapd/files/hostapd-5G.conf
new file mode 100644
index 0000000..d3b6117
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd-5G.conf
@@ -0,0 +1,54 @@
+driver=nl80211
+interface=wifi1
+bridge=brlan0
+ssid=TurrisOmnia
+
+country_code=US
+ieee80211d=1
+hw_mode=a
+beacon_int=100
+channel=36
+
+#ieee80211h=1
+ieee80211n=1
+ht_capab=[SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
+
+ieee80211ac=1
+#vht_oper_chwidth=1
+#vht_oper_centr_freq_seg0_idx=42
+vht_capab=[RXLDPC][SHORT-GI-80][TX-STBC-2BY1][RX-ANTENNA-PATTERN][TX-ANTENNA-PATTERN][RX-STBC-1][MAX-MPDU-11454][MAX-A-MPDU-LEN-EXP7]
+
+ap_isolate=1
+bss_load_update_period=60
+#chan_util_avg_period=600
+disassoc_low_ack=1
+preamble=1
+wmm_enabled=1
+ignore_broadcast_ssid=0
+uapsd_advertisement_enabled=1
+auth_algs=1
+rrm_neighbor_report=1
+bss_transition=1
+macaddr_acl=0
+bssid=
+
+#Security parameters
+wpa=2
+wpa_pairwise=CCMP
+wpa_key_mgmt=WPA-PSK
+wpa_passphrase=rdk@1234
+
+#WPS configuration lines, but WPS disabled by default
+wps_state=0
+ap_setup_locked=1
+config_methods=virtual_push_button keypad
+wps_pin_requests=/var/run/hostapd_wps_pin_requests.log
+eap_server=1
+
+#Interface for separate control program. hostapd_cli command will use it when trying to connect with hostapd.
+ctrl_interface=/var/run/hostapd
+
+logger_syslog=127
+logger_syslog_level=2
+logger_stdout=127
+logger_stdout_level=2
diff --git a/recipes-connectivity/hostapd/files/hostapd-bhaul2G.conf b/recipes-connectivity/hostapd/files/hostapd-bhaul2G.conf
new file mode 100644
index 0000000..38cafc5
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd-bhaul2G.conf
@@ -0,0 +1,35 @@
+driver=nl80211
+logger_syslog=127
+logger_syslog_level=2
+logger_stdout=127
+logger_stdout_level=2
+country_code=US
+ieee80211d=1
+hw_mode=g
+beacon_int=100
+channel=11
+
+ieee80211n=1
+#ht_coex=0
+ht_capab=[SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
+
+interface=wifi2
+ctrl_interface=/var/run/hostapd
+ap_isolate=1
+bss_load_update_period=60
+#chan_util_avg_period=600
+disassoc_low_ack=1
+preamble=1
+wmm_enabled=1
+ignore_broadcast_ssid=1
+uapsd_advertisement_enabled=1
+auth_algs=1
+wpa=2
+bssid=
+wpa_pairwise=CCMP
+rrm_neighbor_report=1
+wpa_key_mgmt=WPA-PSK
+bss_transition=1
+
+macaddr_acl=1
+accept_mac_file=/tmp/hostapd-acl2
diff --git a/recipes-connectivity/hostapd/files/hostapd-bhaul5G.conf b/recipes-connectivity/hostapd/files/hostapd-bhaul5G.conf
new file mode 100644
index 0000000..8c5d9e0
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd-bhaul5G.conf
@@ -0,0 +1,35 @@
+driver=nl80211
+logger_syslog=127
+logger_syslog_level=2
+logger_stdout=127
+logger_stdout_level=2
+country_code=US
+ieee80211d=1
+hw_mode=a
+beacon_int=100
+channel=36
+
+ieee80211n=1
+#ht_coex=0
+ht_capab=[SHORT-GI-20][SHORT-GI-40][TX-STBC][RX-STBC1][DSSS_CCK-40]
+
+interface=wifi3
+ctrl_interface=/var/run/hostapd
+ap_isolate=1
+bss_load_update_period=60
+#chan_util_avg_period=600
+disassoc_low_ack=1
+preamble=1
+wmm_enabled=1
+ignore_broadcast_ssid=1
+uapsd_advertisement_enabled=1
+auth_algs=1
+wpa=2
+bssid=
+wpa_pairwise=CCMP
+rrm_neighbor_report=1
+wpa_key_mgmt=WPA-PSK
+bss_transition=1
+
+macaddr_acl=1
+accept_mac_file=/tmp/hostapd-acl3
diff --git a/recipes-connectivity/hostapd/files/hostapd-enable-80211ac.patch b/recipes-connectivity/hostapd/files/hostapd-enable-80211ac.patch
new file mode 100644
index 0000000..824233d
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd-enable-80211ac.patch
@@ -0,0 +1,14 @@
+diff -Naur 2.5-r0-orig/defconfig 2.5-r0/defconfig
+--- 2.5-r0-orig/defconfig 2019-07-15 11:06:28.150942350 +0000
++++ 2.5-r0/defconfig 2019-07-15 10:58:17.959429890 +0000
+@@ -139,6 +139,9 @@
+ # IEEE 802.11n (High Throughput) support
+ CONFIG_IEEE80211N=y
+
++CONFIG_IEEE80211AC=y
++CONFIG_ACS=y
++
+ # Remove debugging code that is printing out debug messages to stdout.
+ # This can be used to reduce the size of the hostapd considerably if debugging
+ # code is not needed.
+File 2.5-r0-orig/pseudo/pseudo.socket is a socket while file 2.5-r0/pseudo/pseudo.socket is a socket
diff --git a/recipes-connectivity/hostapd/files/hostapd-init.sh b/recipes-connectivity/hostapd/files/hostapd-init.sh
new file mode 100644
index 0000000..fd5532d
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd-init.sh
@@ -0,0 +1,222 @@
+# If not stated otherwise in this file or this component's LICENSE
+# file the following copyright and licenses apply:
+#
+#Copyright [2019] [RDK Management]
+#
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+#!/bin/sh
+
+device_type=`cat /version.txt | grep imagename | cut -d':' -f2 | cut -d'-' -f3`
+echo "device_type: $device_type"
+if [ $device_type == "extender" ];
+then
+#Workaround: allowing devices initialization
+sleep 5;
+fi
+
+nvram_mounted=`mount | grep nvram -wc`
+if [ $nvram_mounted == 0 ]; then
+ mkdir -p /nvram
+ if [ -b /dev/mmcblk0p6 ]; then
+ #for Older Turris Omnia
+ mount /dev/mmcblk0p6 /nvram
+ else
+ #for Omnia2019 and Omnia2020
+ mount /dev/mmcblk0p5 /nvram
+ fi
+fi
+
+WIFI0_MAC=`cat /sys/class/net/wlan0/address`
+WIFI1_MAC=`cat /sys/class/net/wlan1/address`
+echo "2.4GHz Radio MAC: $WIFI0_MAC"
+echo "5GHz Radio MAC: $WIFI1_MAC"
+
+if [ ! -f /nvram/hostapd0.conf ]
+then
+ cp /etc/hostapd-2G.conf /nvram/hostapd0.conf
+ #Set bssid for wifi0
+ NEW_MAC=$(echo 0x$WIFI0_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+2, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd0.conf
+ echo "wpa_psk_file=/tmp/hostapd0.psk" >> /nvram/hostapd0.conf
+fi
+
+if [ ! -f /nvram/hostapd1.conf ]
+then
+ cp /etc/hostapd-5G.conf /nvram/hostapd1.conf
+ #Set bssid for wifi1
+ NEW_MAC=$(echo 0x$WIFI1_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+2, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd1.conf
+ echo "wpa_psk_file=/tmp/hostapd1.psk" >> /nvram/hostapd1.conf
+fi
+
+if [ ! -f /nvram/hostapd2.conf ]
+then
+ cp /etc/hostapd-bhaul2G.conf /nvram/hostapd2.conf
+ #Set bssid for wifi2
+ NEW_MAC=$(echo 0x$WIFI0_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+4, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd2.conf
+ echo "wpa_psk_file=/tmp/hostapd2.psk" >> /nvram/hostapd2.conf
+fi
+
+if [ ! -f /nvram/hostapd3.conf ]
+then
+ cp /etc/hostapd-bhaul5G.conf /nvram/hostapd3.conf
+ #Set bssid for wifi3
+ NEW_MAC=$(echo 0x$WIFI1_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+4, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd3.conf
+ echo "wpa_psk_file=/tmp/hostapd3.psk" >> /nvram/hostapd3.conf
+fi
+
+if [ ! -f /nvram/hostapd4.conf ]
+then
+ cp /etc/hostapd-bhaul2G.conf /nvram/hostapd4.conf
+ #Set bssid for wifi4
+ NEW_MAC=$(echo 0x$WIFI0_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+6, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd4.conf
+ sed -i "/^interface=/c\interface=wifi4" /nvram/hostapd4.conf
+ sed -i "/^accept_mac/c\accept_mac_file=/tmp/hostapd-acl4" /nvram/hostapd4.conf
+ echo "wpa_psk_file=/tmp/hostapd4.psk" >> /nvram/hostapd4.conf
+fi
+
+if [ ! -f /nvram/hostapd5.conf ]
+then
+ cp /etc/hostapd-bhaul5G.conf /nvram/hostapd5.conf
+ #Set bssid for wifi5
+ NEW_MAC=$(echo 0x$WIFI1_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+6, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd5.conf
+ sed -i "/^interface=/c\interface=wifi5" /nvram/hostapd5.conf
+ sed -i "/^accept_mac/c\accept_mac_file=/tmp/hostapd-acl5" /nvram/hostapd5.conf
+ echo "wpa_psk_file=/tmp/hostapd5.psk" >> /nvram/hostapd5.conf
+fi
+
+if [ ! -f /nvram/hostapd6.conf ]
+then
+ cp /etc/hostapd-bhaul2G.conf /nvram/hostapd6.conf
+ #Set bssid for wifi6
+ NEW_MAC=$(echo 0x$WIFI1_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+8, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd6.conf
+ sed -i "/^interface=/c\interface=wifi6" /nvram/hostapd6.conf
+ sed -i "/^accept_mac/c\accept_mac_file=/tmp/hostapd-acl6" /nvram/hostapd6.conf
+ echo "wpa_psk_file=/tmp/hostapd6.psk" >> /nvram/hostapd6.conf
+fi
+
+if [ ! -f /nvram/hostapd7.conf ]
+then
+ cp /etc/hostapd-bhaul5G.conf /nvram/hostapd7.conf
+ #Set bssid for wifi7
+ NEW_MAC=$(echo 0x$WIFI1_MAC| awk -F: '{printf "%02x:%s:%s:%s:%s:%s", strtonum($1)+8, $2, $3, $4 ,$5, $6}')
+ sed -i "/^bssid=/c\bssid=$NEW_MAC" /nvram/hostapd7.conf
+ sed -i "/^interface=/c\interface=wifi7" /nvram/hostapd7.conf
+ sed -i "/^accept_mac/c\accept_mac_file=/tmp/hostapd-acl7" /nvram/hostapd7.conf
+ echo "wpa_psk_file=/tmp/hostapd7.psk" >> /nvram/hostapd7.conf
+fi
+
+#Setting up VAP status file
+echo -e "wifi0=1\nwifi1=1\nwifi2=0\nwifi3=0\nwifi4=0\nwifi5=0\nwifi6=0\nwifi7=0" >/tmp/vap-status
+
+#Creating files for tracking AssociatedDevices
+touch /tmp/AllAssociated_Devices_2G.txt
+touch /tmp/AllAssociated_Devices_5G.txt
+
+if [ $device_type == "extender" ];
+then
+ ifconfig wlan0 down
+ ifconfig wlan1 down
+ exit 0;
+fi
+
+#Creating virtual interfaces wifi0 and wifi1 for Home APs
+iw dev wlan0 interface add wifi0 type __ap
+iw dev wlan1 interface add wifi1 type __ap
+
+#2.4GHz Virtual Access Points for backhaul connection
+iw dev wlan0 interface add wifi2 type __ap
+ip addr add 169.254.0.1/25 dev wifi2
+ifconfig wifi2 mtu 1600
+
+#5GHz Virtual Access Points for backhaul connection
+iw dev wlan1 interface add wifi3 type __ap
+ip addr add 169.254.1.1/25 dev wifi3
+ifconfig wifi3 mtu 1600
+
+#Creating virtual interfaces wifi4 and wifi5 for Guest APs
+iw dev wlan0 interface add wifi4 type __ap
+iw dev wlan1 interface add wifi5 type __ap
+
+#2.4GHz Virtual Access Points for Secure Onboard connection
+iw dev wlan0 interface add wifi6 type __ap
+ip addr add 169.254.0.129/25 dev wifi6
+ifconfig wifi6 mtu 1600
+
+#5GHz Virtual Access Points for onboard connection
+iw dev wlan1 interface add wifi7 type __ap
+ip addr add 169.254.1.129/25 dev wifi7
+ifconfig wifi7 mtu 1600
+
+#Creating virtual interfaces wifi8 and wifi9 for Service APs
+iw dev wlan0 interface add wifi8 type __ap
+iw dev wlan1 interface add wifi9 type __ap
+
+#Create empty acl list for hostapd
+touch /tmp/hostapd-acl0
+touch /tmp/hostapd-acl1
+touch /tmp/hostapd-acl2
+touch /tmp/hostapd-acl3
+touch /tmp/hostapd-acl4
+touch /tmp/hostapd-acl5
+touch /tmp/hostapd-acl6
+touch /tmp/hostapd-acl7
+touch /tmp/hostapd-acl8
+touch /tmp/hostapd-acl9
+
+#create empty psk files
+touch /tmp/hostapd0.psk
+touch /tmp/hostapd1.psk
+touch /tmp/hostapd2.psk
+touch /tmp/hostapd3.psk
+touch /tmp/hostapd6.psk
+touch /tmp/hostapd7.psk
+touch /tmp/hostapd8.psk
+touch /tmp/hostapd9.psk
+
+#Create wps pin request log file
+touch /var/run/hostapd_wps_pin_requests.log
+
+#Setting brlan0 bridge
+if [ ! -f /sys/class/net/brlan0 ]
+then
+ brctl addbr brlan0
+ ip link set brlan0 address `cat /sys/class/net/eth1/address`
+ ifconfig brlan0 10.0.0.1 netmask 255.255.255.0 up
+fi
+
+#Work around for Ethernet connected clients
+brctl addif brlan0 lan0
+brctl addif brlan0 lan1
+brctl addif brlan0 lan2
+brctl addif brlan0 lan3
+brctl addif brlan0 lan4
+
+ifconfig eth1 up
+ifconfig lan0 up
+ifconfig lan1 up
+ifconfig lan2 up
+ifconfig lan3 up
+ifconfig lan4 up
+
+#workaround: creating /opt/secure folder for ssh service
+mkdir /opt/secure
+
+exit 0
+
diff --git a/recipes-connectivity/hostapd/files/hostapd.service b/recipes-connectivity/hostapd/files/hostapd.service
new file mode 100644
index 0000000..7df478f
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Hostapd IEEE 802.11n AP, IEEE 802.1X/WPA/WPA2/EAP/RADIUS Authenticator
+After=CcspPandMSsp.service
+StartLimitIntervalSec=120
+
+[Service]
+Type=forking
+ExecStartPre=/bin/sh -c '(/lib/rdk/hostapd-init.sh)'
+PIDFile=/var/run/hostapd-global.pid
+ExecStart=/usr/sbin/hostapd -g /var/run/hostapd/global -B -P /var/run/hostapd-global.pid
+ExecStartPost=hostapd_cli -i global raw ADD bss_config=phy0:/nvram/hostapd0.conf
+ExecStartPost=hostapd_cli -i global raw ADD bss_config=phy1:/nvram/hostapd1.conf
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/recipes-connectivity/hostapd/files/hostapd_turris.patch b/recipes-connectivity/hostapd/files/hostapd_turris.patch
new file mode 100644
index 0000000..20b0885
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/hostapd_turris.patch
@@ -0,0 +1,12 @@
+--- hostapd-2.5/src/crypto/crypto_openssl.c 2015-09-27 19:02:05.000000000 +0000
++++ hostapd-2.5_mod/src/crypto/crypto_openssl.c 2019-03-12 12:38:40.032066497 +0000
+@@ -96,7 +96,8 @@
+ #ifndef CONFIG_FIPS
+ int md4_vector(size_t num_elem, const u8 *addr[], const size_t *len, u8 *mac)
+ {
+- return openssl_digest_vector(EVP_md4(), num_elem, addr, len, mac);
++ //return openssl_digest_vector(EVP_md4(), num_elem, addr, len, mac);
++ fprintf(stderr,"##################### We have commented the md4_vector implementation #################\n");
+ }
+ #endif /* CONFIG_FIPS */
+
diff --git a/recipes-connectivity/hostapd/files/nl80211-relax-bridge-setup.patch b/recipes-connectivity/hostapd/files/nl80211-relax-bridge-setup.patch
new file mode 100644
index 0000000..ff63ccd
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/nl80211-relax-bridge-setup.patch
@@ -0,0 +1,17 @@
+diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c
+index 96fd0aadd..77dbf94b5 100644
+--- a/src/drivers/driver_nl80211.c
++++ b/src/drivers/driver_nl80211.c
+@@ -6923,10 +6923,10 @@ static int i802_check_bridge(struct wpa_driver_nl80211_data *drv,
+ wpa_printf(MSG_DEBUG, "nl80211: Adding interface %s into bridge %s",
+ ifname, brname);
+ if (linux_br_add_if(drv->global->ioctl_sock, brname, ifname) < 0) {
+- wpa_printf(MSG_ERROR, "nl80211: Failed to add interface %s "
++ wpa_printf(MSG_WARNING, "nl80211: Failed to add interface %s "
+ "into bridge %s: %s",
+ ifname, brname, strerror(errno));
+- return -1;
++ return 0;
+ }
+ bss->added_if_into_bridge = 1;
+
diff --git a/recipes-connectivity/hostapd/files/ut.py b/recipes-connectivity/hostapd/files/ut.py
new file mode 100644
index 0000000..e183c90
--- /dev/null
+++ b/recipes-connectivity/hostapd/files/ut.py
@@ -0,0 +1,426 @@
+
+# This Program
+import os
+import unittest
+import time
+from ctypes import *
+
+so_file = "/usr/lib/libhal_wifi.so.0.0.0"
+lib = CDLL(so_file)
+print ("Load Library is : " + str(lib))
+
+class HalTestCases(unittest.TestCase):
+ def test_wifi_getHalVersion(self):
+ ver = c_char_p("")
+ lib.wifi_getHalVersion(ver)
+ self.assertEqual(ver.value, "3.0.0",
+ 'incorrect HAL version')
+ self.assertEqual(ver.value,
+ "3.0.0",
+ 'incorrect HAL version')
+
+
+class wifiBasicConfigTests(unittest.TestCase):
+ # Set up envirnment var by $ export AP_IDX=0 before running this script
+ def setUp(self):
+ self.ap_index = 0
+ self.ap_index = int(os.environ["AP_IDX"])
+ """
+ def test_wifi_getCountryCode(self):
+ code = c_char_p("")
+ lib.wifi_getRadioCountryCode(self.ap_index, code)
+ self.assertEqual(code.value.rstrip(), "US",
+ 'incorrect Country Code %s' %code.value)
+
+ def test_wifi_setAndgetCountryCode(self):
+ tw_code = c_char_p("TW")
+ lib.wifi_setRadioCountryCode(self.ap_index, tw_code)
+ time.sleep(1)
+
+ code = c_char_p("")
+ lib.wifi_getRadioCountryCode(self.ap_index, code)
+ self.assertEqual(code.value.rstrip(), "TW",
+ 'incorrect Country Code %s' %code.value)
+
+ tw_code = c_char_p("US")
+ lib.wifi_setRadioCountryCode(self.ap_index, tw_code)
+ time.sleep(1)
+
+ code = c_char_p("")
+ lib.wifi_getRadioCountryCode(self.ap_index, code)
+ self.assertEqual(code.value.rstrip(), "US",
+ 'incorrect Country Code %s' %code.value)
+
+ def test_wifi_getRadioChannel(self):
+ radio_channel_p = (c_ulong*2)()
+ lib.wifi_getRadioChannel(self.ap_index, radio_channel_p)
+ channel_str = str(radio_channel_p[0])
+ channel_int = int(channel_str)
+
+ # set radio channel as 1
+ lib.wifi_setRadioChannel(self.ap_index, 1)
+ lib.wifi_reset()
+
+ radio_channel_p = (c_ulong*2)()
+ lib.wifi_getRadioChannel(self.ap_index, radio_channel_p)
+ _radio_channel_str = str(radio_channel_p[0])
+
+ self.assertEqual(_radio_channel_str, "1",
+ 'Radio channel has to be 1 for wlan%s. Current channel is %s'
+ %(self.ap_index, _radio_channel_str))
+
+ lib.wifi_setRadioChannel(self.ap_index, channel_str)
+ time.sleep(1)
+ lib.wifi_reset()
+ time.sleep(1)
+
+ radio_channel_p = (c_ulong*2)()
+ lib.wifi_getRadioChannel(self.ap_index, radio_channel_p)
+ _radio_channel_str = str(radio_channel_p[0])
+
+ self.assertEqual(_radio_channel_str, channel_str,
+ 'Radio channel has to be %s for wlan%s. Current channel is %s'
+ %(channel_str, self.ap_index, _radio_channel_str))
+ """
+ def test_wifi_ApEnable(self):
+ lib.wifi_setApEnable(self.ap_index, 0)
+ ap_en = (c_ubyte*4)()
+ lib.wifi_getApEnable(self.ap_index, ap_en)
+ _ap_en_str = str(ap_en[0])
+
+ self.assertEqual(_ap_en_str, "0",
+ 'AP Enable has to be False. Current is %s.' %(_ap_en_str))
+
+ _ap_en_p = create_string_buffer(32)
+ lib.wifi_getApStatus(self.ap_index, _ap_en_p)
+ self.assertEqual(_ap_en_p.value, "Disabled")
+
+
+ lib.wifi_setApEnable(self.ap_index, 1)
+ ap_en[0] = 0
+ lib.wifi_getApEnable(self.ap_index, ap_en)
+ _ap_en_str = str(ap_en[0])
+
+ self.assertEqual(_ap_en_str, "1",
+ 'AP Enable has to be True. Current is %s.' %(_ap_en_str))
+
+ _ap_en_p = create_string_buffer(32)
+ lib.wifi_getApStatus(self.ap_index, _ap_en_p)
+ self.assertEqual(_ap_en_p.value, "Enabled")
+ """
+ def test_wifi_SecurityMFPConfig(self):
+ config = c_char_p("")
+ lib.wifi_getApSecurityMFPConfig(self.ap_index, config)
+ self.assertEqual(config.value.rstrip(), "Disabled",
+ 'MFP Config(ieee80211w) has to be Disabled, but current value is %s' %config.value)
+
+ lib.wifi_setApSecurityMFPConfig(self.ap_index, "Required")
+
+ config = c_char_p("")
+ lib.wifi_getApSecurityMFPConfig(self.ap_index, config)
+ self.assertEqual(config.value.rstrip(), "Required",
+ 'MFP Config(ieee80211w) has to be Required, but current value is %s' %config.value)
+
+ lib.wifi_setApSecurityMFPConfig(self.ap_index, "Disabled")
+ config = c_char_p("")
+ lib.wifi_getApSecurityMFPConfig(self.ap_index, config)
+ self.assertEqual(config.value.rstrip(), "Disabled",
+ 'MFP Config(ieee80211w) has to be Disabled, but current value is %s' %config.value)
+
+ def test_wifi_ApMaxAssociatedDevicesAndWatermark(self):
+ lib.wifi_setApMaxAssociatedDevices(self.ap_index, 45)
+ time.sleep(1)
+
+ device_num = (c_uint*2)()
+ lib.wifi_getApMaxAssociatedDevices(self.ap_index, device_num)
+ device_num_str = str(device_num[0])
+ self.assertEqual(device_num_str, "45",
+ 'max_num_sta has to be 45, but current value is %s'
+ %device_num_str)
+
+ lib.wifi_setApMaxAssociatedDevices(self.ap_index, 0)
+ time.sleep(1)
+
+ device_num = (c_uint*2)()
+ lib.wifi_getApMaxAssociatedDevices(self.ap_index, device_num)
+ device_num_str = str(device_num[0])
+ self.assertEqual(device_num_str, "0",
+ 'max_num_sta has to be 0, but current value is %s'
+ %device_num_str)
+
+ device_watermark = (c_uint*2)()
+ lib.wifi_getApAssociatedDevicesHighWatermarkThreshold(self.ap_index,
+ device_watermark)
+ device_watermark_str = str(device_watermark[0])
+ self.assertEqual(device_watermark_str, "50",
+ 'ApAssociatedDevicesHighWatermarkThreshold has to be 50, but'\
+ 'current value is %s' %(device_watermark_str))
+
+ def test_wifi_WmmEnabled(self):
+
+ init_wmm_enabled = (c_ubyte*2)()
+ lib.wifi_getApWmmEnable(self.ap_index, init_wmm_enabled)
+ init_wmm_enabled_str = str(init_wmm_enabled[0])
+
+ lib.wifi_setApWmmEnable(self.ap_index, 1)
+ wmm_enabled = (c_ubyte*2)()
+ lib.wifi_getApWmmEnable(self.ap_index, wmm_enabled)
+ wmm_enabled_str = str(wmm_enabled[0])
+
+ self.assertEqual(wmm_enabled_str, "1",
+ 'wmm_enabled has to be True. Current is %s.' %(wmm_enabled_str))
+
+ lib.wifi_setApWmmEnable(self.ap_index, int(init_wmm_enabled_str))
+
+
+ def test_wifi_UapsdAdvertisementEnabled(self):
+
+ init_uapsd_enabled = (c_ubyte*2)()
+ lib.wifi_getApWmmUapsdEnable(self.ap_index, init_uapsd_enabled)
+ init_uapsd_enabled_str = str(init_uapsd_enabled[0])
+
+ lib.wifi_setApWmmUapsdEnable(self.ap_index, 1)
+ uapsd_enabled = (c_ubyte*2)()
+ lib.wifi_getApWmmUapsdEnable(self.ap_index, uapsd_enabled)
+ uapsd_enabled_str = str(uapsd_enabled[0])
+
+ self.assertEqual(uapsd_enabled_str, "1",
+ 'uapsd_enabled has to be True. Current is %s.' %(uapsd_enabled_str))
+
+ lib.wifi_setApWmmUapsdEnable(self.ap_index, int(init_uapsd_enabled_str))
+ """
+ def test_wifi_getApRadiIndex(self):
+ index = (c_int*2)()
+ lib.wifi_getApRadioIndex(3, index)
+ self.assertEqual(index[0], 1)
+
+ index = (c_int*2)()
+ lib.wifi_getApRadioIndex(4, index)
+ self.assertEqual(index[0], 0)
+
+ def test_wifi_ApIsolation(self):
+ ap_isolation_enabled = (c_ubyte*2)()
+ lib.wifi_getApIsolationEnable(self.ap_index, ap_isolation_enabled)
+ ori_ap_isolation_str = str(ap_isolation_enabled[0])
+
+ lib.wifi_setApIsolationEnable(self.ap_index, 0)
+ lib.wifi_reset()
+ time.sleep(1)
+ ap_isolation_enabled = (c_ubyte*2)()
+ lib.wifi_getApIsolationEnable(self.ap_index, ap_isolation_enabled)
+ ap_isolation_str = str(ap_isolation_enabled[0])
+ self.assertEqual(ap_isolation_str, "0",
+ 'ap_isolate shall be false, but current is %s.'
+ %(ap_isolation_enabled))
+
+
+ lib.wifi_setApIsolationEnable(self.ap_index, 1)
+ lib.wifi_reset()
+ time.sleep(1)
+ ap_isolation_enabled = (c_ubyte*2)()
+ lib.wifi_getApIsolationEnable(self.ap_index, ap_isolation_enabled)
+ ap_isolation_str = str(ap_isolation_enabled[0])
+ self.assertEqual(ap_isolation_str, "1",
+ 'ap_isolate shall be true, but current is %s.'
+ %(ap_isolation_enabled))
+
+ lib.wifi_setApIsolationEnable(self.ap_index, ori_ap_isolation_str)
+ lib.wifi_reset()
+ time.sleep(1)
+
+ def test_wifi_ApMacAddressControlMode(self):
+ ori_mode = (c_ubyte*2)()
+ lib.wifi_getApMacAddressControlMode(self.ap_index, ori_mode)
+ ori_mode_str = str(ori_mode[0])
+
+ lib.wifi_setApMacAddressControlMode(self.ap_index, 2)
+ mac_address_mode = (c_ubyte*2)()
+ lib.wifi_getApMacAddressControlMode(self.ap_index, mac_address_mode)
+ mac_address_mode_str = str(mac_address_mode[0])
+ self.assertEqual(mac_address_mode_str, "2",
+ 'MacAddressControlMode shall be 2, but current is %s'
+ %(mac_address_mode_str))
+
+
+ lib.wifi_setApMacAddressControlMode(self.ap_index, 0)
+ mac_address_mode = (c_ubyte*2)()
+ lib.wifi_getApMacAddressControlMode(self.ap_index, mac_address_mode)
+ mac_address_mode_str = str(mac_address_mode[0])
+ self.assertEqual(mac_address_mode_str, "0",
+ 'MacAddressControlMode shall be 0, but current is %s'
+ %(mac_address_mode_str))
+
+ lib.wifi_setApMacAddressControlMode(self.ap_index, ori_mode_str)
+
+ def test_wifi_getApName(self):
+ name = c_char_p("")
+ lib.wifi_getApName(0, name)
+ self.assertEqual(name.value.rstrip(), "wifi0",
+ 'AP Name shall be wifi0, but current is %s' %name.value.rstrip())
+
+ name = c_char_p("")
+ lib.wifi_getApName(10, name)
+ self.assertEqual(name.value.rstrip(), "wifi10",
+ 'AP Name shall be wifi10, but current is %s' %name.value.rstrip())
+
+
+ def test_wifi_ApSsidAdvertisementEnable(self):
+
+ init_ssidAdvertisement_enabled = (c_ubyte*2)()
+ lib.wifi_getApSsidAdvertisementEnable(self.ap_index, init_ssidAdvertisement_enabled)
+
+ lib.wifi_setApSsidAdvertisementEnable(self.ap_index, 1)
+ ssid_enabled = (c_ubyte*2)()
+ lib.wifi_getApSsidAdvertisementEnable(self.ap_index, ssid_enabled)
+ ssid_enabled_str = str(ssid_enabled[0])
+
+ self.assertEqual(ssid_enabled_str, "1",
+ 'ssid_enabled has to be True. Current is %s.' %(ssid_enabled_str))
+
+ lib.wifi_setApSsidAdvertisementEnable(self.ap_index, init_ssidAdvertisement_enabled[0])
+
+class wifiWPSTests(unittest.TestCase):
+ def setUp(self):
+ self.ap_index = 0
+ self.ap_index = int(os.environ["AP_IDX"])
+ """
+ def test_wifi_getApWpsEnable(self):
+ # at least 2 bytes
+ wps_en = (c_ubyte*2)()
+ lib.wifi_getApWpsEnable(self.ap_index, wps_en)
+ wps_en_str = str(wps_en[0])
+
+ self.assertEqual(wps_en_str, "0",
+ 'WPS state has to be unconfigured. Current state is %s.' %(wps_en_str))
+
+ def test_wifi_setAndGetApWpsEnable(self):
+ lib.wifi_setApWpsEnable(self.ap_index, 1)
+
+ wps_en = (c_ubyte*2)()
+ lib.wifi_getApWpsEnable(self.ap_index, wps_en)
+ wps_en_str = str(wps_en[0])
+
+ self.assertEqual(wps_en_str, "1",
+ 'WPS state has to be configured. Current state is %s.' %(wps_en_str))
+ """
+ def test_wifi_getApWpsConfigurationState(self):
+ lib.wifi_setApWpsEnable(self.ap_index, 1)
+
+ wps_state = create_string_buffer(32)
+ lib.wifi_getApWpsConfigurationState(self.ap_index, wps_state)
+ self.assertEqual(wps_state.value, "Configured",
+ 'WPS state has to be Configured. Current state is %s'
+ %wps_state.value)
+
+ def test_wifi_ApWpsButtonPush(self):
+ lib.wifi_setApWpsEnable(self.ap_index, 1)
+
+ lib.wifi_setApWpsButtonPush(self.ap_index)
+ cmd= "hostapd_cli -i wifi%s wps_get_status | grep 'PBC Status' | cut -d ' ' -f3" %(str(self.ap_index))
+
+ pbc_status = os.popen(cmd).read()
+ self.assertEqual(pbc_status.rstrip(), "Active", 'wps status shall be Active, but'\
+ 'current is %s' %(pbc_status.rstrip()))
+
+ lib.wifi_cancelApWPS(self.ap_index)
+
+ pbc_status = os.popen(cmd).read()
+ self.assertEqual(pbc_status.rstrip(), "Timed-out", 'wps status shall be Timed-out, but'\
+ ' current is %s' %(pbc_status.rstrip()))
+
+
+
+ def tearDown(self):
+ lib.wifi_setApWpsEnable(self.ap_index, 0)
+
+class wifiClientMgmt(unittest.TestCase):
+ def setUp(self):
+ self.ap_index = 0
+ self.ap_index = int(os.environ["AP_IDX"])
+
+ def test_wifi_BSSTransitionActivation(self):
+ init_bss_transition = (c_ubyte*2)()
+ lib.wifi_getBSSTransitionActivation(self.ap_index, init_bss_transition)
+
+ lib.wifi_setBSSTransitionActivation(self.ap_index, 1)
+ bss_transition = (c_ubyte*2)()
+ lib.wifi_getBSSTransitionActivation(self.ap_index, bss_transition)
+ bss_transition_str = str(bss_transition[0])
+ self.assertEqual(bss_transition_str, "1",
+ 'bss_transition shall be True, but current is %s'
+ %(bss_transition_str))
+
+ lib.wifi_setBSSTransitionActivation(self.ap_index, init_bss_transition[0])
+
+ def test_wifi_NeighborReportActivation(self):
+ init_rrm = (c_ubyte*2)()
+ lib.wifi_getNeighborReportActivation(self.ap_index, init_rrm)
+
+ lib.wifi_setNeighborReportActivation(self.ap_index, 1)
+ rrm = (c_ubyte*2)()
+ lib.wifi_getNeighborReportActivation(self.ap_index, rrm)
+ rrm_str = str(rrm[0])
+ self.assertEqual(rrm_str, "1",
+ 'rrm_neighbor_report shall be true, but current is %s'
+ %(rrm_str))
+
+ lib.wifi_setNeighborReportActivation(self.ap_index, init_rrm[0])
+
+class wifiExtender(unittest.TestCase):
+ def setUp(self):
+ self.ap_index = 0
+ self.ap_index = int(os.environ["AP_IDX"])
+
+ def test_wifi_getSSIDRadioIndex(self):
+ index = (c_int*2)()
+ lib.wifi_getSSIDRadioIndex(3, index)
+ self.assertEqual(index[0], 1)
+
+ index = (c_int*2)()
+ lib.wifi_getSSIDRadioIndex(6, index)
+ self.assertEqual(index[0], 0)
+
+class wifiRadio(unittest.TestCase):
+ def setUp(self):
+ self.ap_index = 0
+ self.ap_index = int(os.environ["AP_IDX"])
+
+ def test_wifi_getRadioIfName(self):
+ radio_name = create_string_buffer(64)
+ lib.wifi_getRadioIfName(1, radio_name)
+ self.assertEqual(radio_name.value, "wlan1",
+ 'Radio name shall be wifi1, but current is %s' %(radio_name.value))
+
+ rtn_val = lib.wifi_getRadioIfName(4, radio_name)
+ self.assertEqual(rtn_val, -1, 'The return value of wifi_getRadioIfName() shall'\
+ 'be -1, but current is %d.' %(rtn_val))
+
+ def test_wifi_RadioEnable(self):
+ init_radio = (c_ubyte*2)()
+ lib.wifi_getRadioEnable(self.ap_index, init_radio)
+
+ lib.wifi_setRadioEnable(self.ap_index, 0)
+ time.sleep(2)
+
+ radio_enable = (c_ubyte*2)()
+ lib.wifi_getRadioEnable(self.ap_index, radio_enable)
+ self.assertEqual(str(radio_enable[0]), "0", 'Radio%d shall be disabled, but'\
+ 'current is %s' %(self.ap_index,str(radio_enable[0])))
+
+
+ lib.wifi_setRadioEnable(self.ap_index, 1)
+ time.sleep(2)
+
+ radio_enable = (c_ubyte*2)()
+ lib.wifi_getRadioEnable(self.ap_index, radio_enable)
+ self.assertEqual(str(radio_enable[0]), "1", 'Radio%d shall be enabled, but'\
+ ' current is %s' %(self.ap_index,str(radio_enable[0])))
+
+
+ lib.wifi_setRadioEnable(self.ap_index, init_radio[0])
+ time.sleep(2)
+
+if __name__ == '__main__':
+
+ unittest.main(verbosity=2)
+
diff --git a/recipes-connectivity/hostapd/hostapd_2.9.bb b/recipes-connectivity/hostapd/hostapd_2.9.bb
new file mode 100644
index 0000000..81130b5
--- /dev/null
+++ b/recipes-connectivity/hostapd/hostapd_2.9.bb
@@ -0,0 +1,85 @@
+SUMMARY = "User space daemon for extended IEEE 802.11 management"
+HOMEPAGE = "http://w1.fi/hostapd/"
+SECTION = "kernel/userland"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://hostapd/README;md5=1ec986bec88070e2a59c68c95d763f89"
+
+DEPENDS = "libnl openssl"
+DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'telemetry2_0', 'telemetry', '', d)}"
+LDFLAGS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'telemetry2_0', ' -ltelemetry_msgsender ', '', d)}"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI = " \
+ http://w1.fi/releases/hostapd-${PV}.tar.gz \
+ file://hostapd-enable-80211ac.patch;patchdir=${WORKDIR}/ \
+ file://hostapd_turris.patch \
+ file://defconfig \
+ file://hostapd-2G.conf \
+ file://hostapd-5G.conf \
+ file://hostapd-bhaul2G.conf \
+ file://hostapd-bhaul5G.conf \
+ file://hostapd.service \
+ file://hostapd-init.sh \
+ file://ut.py \
+"
+
+SRC_URI += "file://nl80211-relax-bridge-setup.patch"
+
+SRC_URI[md5sum] = "f188fc53a495fe7af3b6d77d3c31dee8"
+SRC_URI[sha256sum] = "881d7d6a90b2428479288d64233151448f8990ab4958e0ecaca7eeb3c9db2bd7"
+
+S = "${WORKDIR}/hostapd-${PV}"
+B = "${WORKDIR}/hostapd-${PV}/hostapd"
+
+inherit update-rc.d systemd
+INITSCRIPT_NAME = "hostapd"
+
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+SYSTEMD_SERVICE_${PN} = "hostapd.service"
+
+do_configure_append() {
+ install -m 0644 ${WORKDIR}/defconfig ${B}/.config
+}
+
+do_compile() {
+ export CFLAGS="-MMD -O2 -Wall -g -I${STAGING_INCDIR}/libnl3"
+ export EXTRA_CFLAGS="${CFLAGS}"
+ make V=1
+}
+
+do_install() {
+ install -d ${D}${sbindir} ${D}${sysconfdir} ${D}${systemd_unitdir}/system/ ${D}${base_libdir}/rdk
+ install -m 0755 ${B}/hostapd ${D}${sbindir}
+ install -m 0755 ${B}/hostapd_cli ${D}${sbindir}
+ install -m 0644 ${WORKDIR}/hostapd-2G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd-5G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd-bhaul2G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd-bhaul5G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system
+ install -m 0755 ${WORKDIR}/hostapd-init.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/ut.py ${D}${sysconfdir}
+}
+
+do_install_turris-extender() {
+ install -d ${D}${sbindir} ${D}${sysconfdir} ${D}${systemd_unitdir}/system/ ${D}${base_libdir}/rdk
+ install -m 0755 ${B}/hostapd ${D}${sbindir}
+ install -m 0755 ${B}/hostapd_cli ${D}${sbindir}
+ sed -i '/^After=CcspPandMSsp.service/d' ${WORKDIR}/hostapd.service
+ sed -i '/^ExecStart=/c\ExecStart=/usr/sbin/hostapd -g /var/run/hostapd/global -B -P /var/run/hostapd-global.pid' ${WORKDIR}/hostapd.service
+ install -m 0644 ${WORKDIR}/hostapd-2G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd-5G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd-bhaul2G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd-bhaul5G.conf ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system
+ install -m 0755 ${WORKDIR}/hostapd-init.sh ${D}${base_libdir}/rdk
+}
+
+FILES_${PN} += " \
+ ${systemd_unitdir}/system/hostapd.service \
+ ${sysconfdir}/hostapd-2G.conf \
+ ${sysconfdir}/hostapd-5G.conf \
+ ${sysconfdir}/hostapd-bhaul2G.conf \
+ ${sysconfdir}/hostapd-bhaul5G.conf \
+ ${base_libdir}/rdk/hostapd-init.sh \
+ ${sysconfdir}/ut.py \
+"
diff --git a/recipes-connectivity/multiap-agent/multiap-agent_git.bb b/recipes-connectivity/multiap-agent/multiap-agent_git.bb
new file mode 100644
index 0000000..c137bb7
--- /dev/null
+++ b/recipes-connectivity/multiap-agent/multiap-agent_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "OpenSource MultiAP Agent implementation"
+LICENSE = "BSD-2-Clause-Patent"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e1988ff7324cb957bcbf231f1bc6486c"
+
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/TechnicolorEDGM/multiap_agent.git;protocol=https"
+
+SRCREV = "${AUTOREV}"
+
+S = "${WORKDIR}/git"
+
+#CFLAGS_append = " "
+
+#LDFLAGS_append = " "
+
+do_install () {
+ install -d ${D}/usr/bin
+}
diff --git a/recipes-connectivity/multiap-controller/multiap-controller_git.bb b/recipes-connectivity/multiap-controller/multiap-controller_git.bb
new file mode 100644
index 0000000..04a676e
--- /dev/null
+++ b/recipes-connectivity/multiap-controller/multiap-controller_git.bb
@@ -0,0 +1,27 @@
+SUMMARY = "OpenSource Multiapcontroller implementation"
+LICENSE = "BSD-2-Clause-Patent"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d5d0e19d5fa4af3f7d9817fb77a9bfb1"
+
+DEPENDS = "openssl libpcap"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/TechnicolorEDGM/multiap_controller.git;protocol=https"
+
+SRCREV = "${AUTOREV}"
+
+S = "${WORKDIR}/git"
+
+CFLAGS_append = " \
+ "
+
+LDFLAGS_append = " \
+ -lpthread \
+ -lpcap \
+ -lcrypto \
+ -lrt \
+ "
+
+do_install () {
+ # Config files and scripts
+ install -d ${D}/usr/bin
+}
diff --git a/recipes-connectivity/multiap-platform/files/0001-Makefile-changes.patch b/recipes-connectivity/multiap-platform/files/0001-Makefile-changes.patch
new file mode 100644
index 0000000..dc418e8
--- /dev/null
+++ b/recipes-connectivity/multiap-platform/files/0001-Makefile-changes.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile b/Makefile
+index bd88d31..5ddf08f 100755
+--- a/Makefile
++++ b/Makefile
+@@ -29,7 +29,7 @@ endif
+
+ LIBINCLUDE_FLAGS=$(foreach includedir, $(LIBINCLUDE_DIRS), -I$(includedir))
+
+-LIBOBJFILES = $(LIBSRC:.c=.o)
++LIBOBJFILES = $(patsubst %c,%o,$(wildcard src/*.c))
+ UBUS_LIBOBJFILES = $(UBUSLIBSRC:.c=.o)
+
+ LIBCFLAGS+=$(EXTRA_FLAGS)
diff --git a/recipes-connectivity/multiap-platform/multiap-platform_git.bb b/recipes-connectivity/multiap-platform/multiap-platform_git.bb
new file mode 100644
index 0000000..cb63a2d
--- /dev/null
+++ b/recipes-connectivity/multiap-platform/multiap-platform_git.bb
@@ -0,0 +1,23 @@
+SUMMARY = "OpenSource MultiAP Agent implementation"
+LICENSE = "BSD-2-Clause-Patent"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e1988ff7324cb957bcbf231f1bc6486c"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI = "git://github.com/TechnicolorEDGM/libmultiap_platform.git;protocol=https \
+ file://0001-Makefile-changes.patch \
+ "
+
+SRCREV = "${AUTOREV}"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "libuv"
+
+CFLAGS_append = " -I./include"
+
+LDFLAGS_append = " "
+
+do_install () {
+ # installing headers and libraries
+ install -d ${D}/usr/lib
+}
diff --git a/recipes-connectivity/nfs-utils/nfs-utils_%.bbappend b/recipes-connectivity/nfs-utils/nfs-utils_%.bbappend
new file mode 100644
index 0000000..8366ca6
--- /dev/null
+++ b/recipes-connectivity/nfs-utils/nfs-utils_%.bbappend
@@ -0,0 +1,5 @@
+DEPENDS_append = " libevent"
+
+CFLAGS_append = " \
+ -I${STAGING_INCDIR}/libevent \
+"
diff --git a/recipes-connectivity/openssl/openssl_%.bbappend b/recipes-connectivity/openssl/openssl_%.bbappend
new file mode 100644
index 0000000..154c70c
--- /dev/null
+++ b/recipes-connectivity/openssl/openssl_%.bbappend
@@ -0,0 +1,7 @@
+DEPENDS_remove = "cryptodev-linux"
+DEPENDS_remove = "cryptodev-linux-native"
+DEPENDS_append = " ocf-linux ocf-linux-native"
+
+CFLAG_remove = "-DUSE_CRYPTODEV_DIGESTS"
+CFLAG_append = " -fPIC"
+CFLAGS_class-native += " -fPIC -I${STAGING_DIR_NATIVE}/usr/include"
diff --git a/recipes-connectivity/openssl/openssl_1.0.2%.bbappend b/recipes-connectivity/openssl/openssl_1.0.2%.bbappend
new file mode 100644
index 0000000..9551d16
--- /dev/null
+++ b/recipes-connectivity/openssl/openssl_1.0.2%.bbappend
@@ -0,0 +1,14 @@
+# Note that RDK-B builds typically require hostapd and wpa-supplicant, which
+# both contain hardcoded dependencies on MD4 support being enabled in openssl.
+# RDK-B specific OEM layers may therefore require an additional .bbappend for
+# openssl which sets:
+
+#EXTRA_OECONF_remove_class-target = "no-md4"
+
+# Keep the complete over-ride for native builds. Temp solution, to be removed
+# once meta-rdk-ext .bbappend for openssl is updated to append RDK specific
+# config options to the target build only.
+# Fix for building python-m2crypto-native.
+
+#Commenting following line because of openssl-native build (linking) issue
+#EXTRA_OECONF_class-native = "-no-ssl3"
diff --git a/recipes-connectivity/opensync/files/0001-add-mesh-header-file.patch b/recipes-connectivity/opensync/files/0001-add-mesh-header-file.patch
new file mode 100644
index 0000000..6b6cdef
--- /dev/null
+++ b/recipes-connectivity/opensync/files/0001-add-mesh-header-file.patch
@@ -0,0 +1,322 @@
+diff --git a/src/lib/target/inc/mesh/meshsync_msgs.h b/src/lib/target/inc/mesh/meshsync_msgs.h
+new file mode 100644
+index 0000000..03d5c6a
+--- /dev/null
++++ b/src/lib/target/inc/mesh/meshsync_msgs.h
+@@ -0,0 +1,316 @@
++/*
++ * If not stated otherwise in this file or this component's Licenses.txt file the
++ * following copyright and licenses apply:
++ *
++ * Copyright 2018 RDK Management
++ *
++ * Licensed under the Apache License, Version 2.0 (the "License");
++ * you may not use this file except in compliance with the License.
++ * You may obtain a copy of the License at
++ *
++ * http://www.apache.org/licenses/LICENSE-2.0
++ *
++ * Unless required by applicable law or agreed to in writing, software
++ * distributed under the License is distributed on an "AS IS" BASIS,
++ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
++ * See the License for the specific language governing permissions and
++ * limitations under the License.
++*/
++
++/*
++ * meshcfg.h
++ *
++ */
++
++#ifndef MESHCFG_H_
++#define MESHCFG_H_
++
++#include <sys/types.h>
++#include <inttypes.h>
++
++#define MAX_SSID_LEN 65
++#define MAX_PASS_LEN 65
++#define MAX_MODE_LEN 25
++#define MAX_SUBNET_LEN 25
++#define MAX_IP_LEN 64
++#define MAX_URL_LEN 256
++#define MAX_TXRATE_LEN 256
++#define MAX_CHANNEL_MODE_LEN 32
++#define MAX_MAC_ADDR_LEN 18
++#define MAX_HOSTNAME_LEN 256
++
++#if defined(ENABLE_MESH_SOCKETS)
++/**************************************************************************/
++/* Unix Domain Socket Name */
++/**************************************************************************/
++#define MESH_SOCKET_PATH_NAME "\0/tmp/mesh-socket-queue" // MeshAgent Server message socket
++#else
++/**************************************************************************/
++/* Posix Message Queue Names */
++/**************************************************************************/
++#define MESH_SERVER_QUEUE_NAME "/mqueue-mesh-server" // Message traffic from Mesh Application Layer to RDKB
++#define MESH_CLIENT_QUEUE_NAME "/mqueue-mesh-client" // Message traffic from RDKB to Mesh Application Layer
++#endif
++
++#define MAX_FINGERPRINT_LEN 512
++/**************************************************************************/
++/* Mesh sync message types */
++/**************************************************************************/
++typedef enum {
++ MESH_WIFI_RESET,
++ MESH_WIFI_RADIO_CHANNEL,
++ MESH_WIFI_RADIO_CHANNEL_MODE,
++ MESH_WIFI_SSID_NAME,
++ MESH_WIFI_SSID_ADVERTISE,
++ MESH_WIFI_AP_SECURITY,
++ MESH_WIFI_AP_KICK_ASSOC_DEVICE,
++ MESH_WIFI_AP_KICK_ALL_ASSOC_DEVICES,
++ MESH_WIFI_AP_ADD_ACL_DEVICE,
++ MESH_WIFI_AP_DEL_ACL_DEVICE,
++ MESH_WIFI_MAC_ADDR_CONTROL_MODE,
++ MESH_SUBNET_CHANGE,
++ MESH_URL_CHANGE,
++ MESH_WIFI_STATUS,
++ MESH_WIFI_ENABLE,
++ MESH_STATE_CHANGE,
++ MESH_WIFI_TXRATE,
++ MESH_CLIENT_CONNECT,
++ MESH_DHCP_RESYNC_LEASES,
++ MESH_DHCP_ADD_LEASE,
++ MESH_DHCP_REMOVE_LEASE,
++ MESH_DHCP_UPDATE_LEASE,
++ MESH_WIFI_RADIO_CHANNEL_BW,
++ MESH_SYNC_MSG_TOTAL
++} eMeshSyncType;
++
++/**
++ * Mesh States
++ */
++typedef enum {
++ MESH_STATE_FULL = 0,
++ MESH_STATE_MONITOR,
++ MESH_STATE_WIFI_RESET,
++ MESH_STATE_TOTAL
++} eMeshStateType;
++
++/**
++ * Mesh Status states
++ */
++typedef enum {
++ MESH_WIFI_STATUS_OFF = 0,
++ MESH_WIFI_STATUS_INIT,
++ MESH_WIFI_STATUS_MONITOR,
++ MESH_WIFI_STATUS_FULL,
++ MESH_WIFI_STATUS_TOTAL
++} eMeshWifiStatusType;
++
++/**
++ * Mesh Connected Client Interfaces
++ */
++typedef enum {
++ MESH_IFACE_NONE = 0,
++ MESH_IFACE_ETHERNET,
++ MESH_IFACE_MOCA,
++ MESH_IFACE_WIFI,
++ MESH_IFACE_OTHER,
++ MESH_IFACE_TOTAL
++} eMeshIfaceType;
++
++/**
++ * Mesh Sync Wifi Reset/Init message
++ */
++typedef struct _MeshWifiReset {
++ uint8_t reset; // boolean dummy value for structure set to true.
++} MeshWifiReset;
++
++/**
++ * Mesh Sync Wifi SSID name change message
++ */
++typedef struct _MeshWifiSSIDName {
++ uint32_t index; // index [0-15]
++ char ssid[MAX_SSID_LEN]; // SSID
++} MeshWifiSSIDName;
++
++/**
++ * Mesh Sync Wifi SSID Advertise change message
++ */
++typedef struct _MeshWifiSSIDAdvertise {
++ uint32_t index; // index [0-15]
++ uint8_t enable; // boolean enable
++} MeshWifiSSIDAdvertise;
++
++/**
++ * Mesh Sync Wifi Radio channel change
++ */
++typedef struct _MeshWifiRadioChannel {
++ uint32_t index; // Radio index
++ uint32_t channel; // Channel
++} MeshWifiRadioChannel;
++
++/**
++ * Mesh Sync Wifi Radio channel mode change
++ */
++typedef struct _MeshWifiRadioChannelMode {
++ uint32_t index; // Radio index
++ char channelMode[MAX_CHANNEL_MODE_LEN]; // ChannelMode
++ uint8_t gOnlyFlag; // Is this g only?
++ uint8_t nOnlyFlag; // Is this n only?
++ uint8_t acOnlyFlag; // Is this ac only?
++} MeshWifiRadioChannelMode;
++
++
++/**
++ * Mesh Sync Wifi configuration change message
++ */
++typedef struct _MeshWifiAPSecurity {
++ uint32_t index; // AP index [0-15]
++ char passphrase[MAX_PASS_LEN]; // AP Passphrase
++ char secMode[MAX_MODE_LEN]; // Security mode
++ char encryptMode[MAX_MODE_LEN]; // Encryption mode
++} MeshWifiAPSecurity;
++
++
++/**
++ * Mesh Sync Wifi Kick AP Associated Device based on device mac
++ */
++typedef struct _MeshWifiAPKickAssocDevice {
++ uint32_t index; // AP index [0-15]
++ char mac[MAX_MAC_ADDR_LEN]; // Mac Address
++} MeshWifiAPKickAssocDevice;
++
++/**
++ * Mesh Sync Wifi Kick All AP Associated Devices
++ */
++typedef struct _MeshWifiAPKickAllAssocDevices {
++ uint32_t index; // AP index [0-15]
++} MeshWifiAPKickAllAssocDevices;
++
++
++/**
++ * Mesh Sync Wifi AP Add Acl Device
++ */
++typedef struct _MeshWifiAPAddAclDevice {
++ uint32_t index; // AP index [0-15]
++ char mac[MAX_MAC_ADDR_LEN]; // Mac Address
++} MeshWifiAPAddAclDevice;
++
++
++/**
++ * Mesh Sync Wifi AP Delete Acl Device
++ */
++typedef struct _MeshWifiAPDelAclDevice {
++ uint32_t index; // AP index [0-15]
++ char mac[MAX_MAC_ADDR_LEN]; // Mac Address
++} MeshWifiAPDelAclDevice;
++
++/**
++ * Mesh Sync Wifi Mac Address Control Mode
++ */
++typedef struct _MeshWifiMacAddrControlMode {
++ uint32_t index; // AP index [0-15]
++ uint8_t isEnabled; // Filter Enabled bool
++ uint8_t isBlacklist; // blacklist=1; whitelist=0
++} MeshWifiMacAddrControlMode;
++
++
++/**
++ * Mesh Sync Subnet configuration change message
++ */
++typedef struct _MeshSubnetChange {
++ char gwIP[MAX_IP_LEN]; // GW IP value
++ char netmask[MAX_SUBNET_LEN]; // Subnet value
++} MeshSubnetChange;
++
++/**
++ * Mesh Sync URL configuration change message
++ */
++typedef struct _MeshUrlChange {
++ char url[MAX_URL_LEN]; // url
++} MeshUrlChange;
++
++/**
++ * Mesh Network Status message
++ */
++typedef struct _MeshWifiStatus {
++ eMeshWifiStatusType status; // Status of mesh network
++} MeshWifiStatus;
++
++/**
++ * Mesh State message
++ */
++typedef struct _MeshStateChange {
++ eMeshStateType state; // State of mesh network
++} MeshStateChange;
++
++/**
++ * Mesh WiFi TxRate
++ */
++typedef struct _MeshWifiTxRate {
++ uint32_t index; // AP index [0-15]
++ char basicRates[MAX_TXRATE_LEN]; // Basic Rates
++ char opRates [MAX_TXRATE_LEN]; // Operational Rates
++} MeshWifiTxRate;
++
++/**
++ * Mesh Client Connect
++ */
++typedef struct _MeshClientConnect {
++ eMeshIfaceType iface; // Interface
++ char mac[MAX_MAC_ADDR_LEN]; // MAC address
++ char host[MAX_HOSTNAME_LEN]; // Hostname
++ uint8_t isConnected; // true=connected; false=offline/disconnected
++} MeshClientConnect;
++
++/**
++ * DHCP lease notification
++ */
++typedef struct _MeshWifiDhcpLease {
++ char mac[MAX_MAC_ADDR_LEN];
++ char ipaddr[MAX_IP_LEN];
++ char hostname[MAX_HOSTNAME_LEN];
++ char fingerprint[MAX_FINGERPRINT_LEN];
++} MeshWifiDhcpLease;
++
++/**
++ * Channel Bandwidth change notification
++ */
++typedef struct _MeshWifiRadioChannelBw {
++ int index;
++ int bw;
++} MeshWifiRadioChannelBw;
++
++/**
++ * Mesh Sync message
++ */
++typedef struct _MeshSync {
++ eMeshSyncType msgType;
++
++ union {
++ MeshWifiReset wifiReset;
++ MeshWifiRadioChannel wifiRadioChannel;
++ MeshWifiRadioChannelMode wifiRadioChannelMode;
++ MeshWifiSSIDName wifiSSIDName;
++ MeshWifiSSIDAdvertise wifiSSIDAdvertise;
++ MeshWifiAPSecurity wifiAPSecurity;
++ MeshWifiAPKickAssocDevice wifiAPKickAssocDevice;
++ MeshWifiAPKickAllAssocDevices wifiAPKickAllAssocDevices;
++ MeshWifiAPAddAclDevice wifiAPAddAclDevice;
++ MeshWifiAPDelAclDevice wifiAPDelAclDevice;
++ MeshWifiMacAddrControlMode wifiMacAddrControlMode;
++ MeshSubnetChange subnet;
++ MeshUrlChange url;
++ MeshWifiStatus wifiStatus;
++ MeshStateChange meshState;
++ MeshWifiTxRate wifiTxRate;
++ MeshClientConnect meshConnect;
++ MeshWifiDhcpLease meshLease;
++ MeshWifiRadioChannelBw wifiRadioChannelBw;
++ } data;
++} MeshSync;
++
++typedef struct _LeaseNotify {
++ MeshWifiDhcpLease lease;
++ eMeshSyncType msgType;
++} LeaseNotify;
++
++#endif /* MESHCFG_H_ */
diff --git a/recipes-connectivity/opensync/files/MeshAgentSync.patch b/recipes-connectivity/opensync/files/MeshAgentSync.patch
new file mode 100644
index 0000000..a704bb7
--- /dev/null
+++ b/recipes-connectivity/opensync/files/MeshAgentSync.patch
@@ -0,0 +1,62 @@
+diff --git a/src/lib/target/inc/target_internal.h b/src/lib/target/inc/target_internal.h
+index 1608b03..c520ad2 100644
+--- a/src/lib/target/inc/target_internal.h
++++ b/src/lib/target/inc/target_internal.h
+@@ -171,6 +171,9 @@ bool maclearn_update(maclearn_type_t type,
+ bool radio_cloud_mode_set(radio_cloud_mode_t mode);
+ radio_cloud_mode_t radio_cloud_mode_get(void);
+ bool radio_rops_vstate(struct schema_Wifi_VIF_State *vstate);
++#if defined(_PLATFORM_TURRIS_)
++bool radio_rops_vconfig(struct schema_Wifi_VIF_Config *vconfig,const char *ifname);
++#endif
+ void radio_trigger_resync(void);
+
+ void clients_connection(INT apIndex,
+diff --git a/src/lib/target/src/radio.c b/src/lib/target/src/radio.c
+index 9bedd00..b0cbe33 100644
+--- a/src/lib/target/src/radio.c
++++ b/src/lib/target/src/radio.c
+@@ -786,6 +786,20 @@ void radio_trigger_resync()
+ }
+ }
+
++#if defined(_PLATFORM_TURRIS_)
++bool radio_rops_vconfig(struct schema_Wifi_VIF_Config *vconfig , const char *ifname)
++{
++ if (!g_rops.op_vconf)
++ {
++ LOGE("%s: op_vconfig not set", __func__);
++ return false;
++ }
++
++ g_rops.op_vconf(vconfig, ifname);
++ return true;
++}
++#endif
++
+ bool radio_rops_vstate(struct schema_Wifi_VIF_State *vstate)
+ {
+ if (!g_rops.op_vstate)
+diff --git a/src/lib/target/src/vif.c b/src/lib/target/src/vif.c
+index aaecbf9..4e6b4ed 100644
+--- a/src/lib/target/src/vif.c
++++ b/src/lib/target/src/vif.c
+@@ -1071,7 +1071,17 @@ bool vif_state_update(INT ssidIndex)
+ LOGE("%s: cannot update VIF state for SSID index %d", __func__, ssidIndex);
+ return false;
+ }
++#if defined(_PLATFORM_TURRIS_)
++ /* After setting Wifi_VIF_State, updating Wifi_VIF_Config table also in order to avoid overwritting content from Wifi_VIF_Config */
+
++ struct schema_Wifi_VIF_Config vconfig;
++
++ if (vif_copy_to_config(ssidIndex, &vstate, &vconfig))
++ {
++ LOGE("%s: copying VIF state to config for SSID index %d", __func__, ssidIndex);
++ radio_rops_vconfig(&vconfig, vconfig.if_name);
++ }
++#endif
+ LOGN("Updating VIF state for SSID index %d", ssidIndex);
+ return radio_rops_vstate(&vstate);
+ }
+
diff --git a/recipes-connectivity/opensync/files/absolute-value-glibc-dunfell-fix.patch b/recipes-connectivity/opensync/files/absolute-value-glibc-dunfell-fix.patch
new file mode 100644
index 0000000..0348ebb
--- /dev/null
+++ b/recipes-connectivity/opensync/files/absolute-value-glibc-dunfell-fix.patch
@@ -0,0 +1,30 @@
+diff --git a/src/bm/src/bm_events.c b/src/bm/src/bm_events.c
+index 19bcd47..dfdf33c 100644
+--- a/src/bm/src/bm_events.c
++++ b/src/bm/src/bm_events.c
+@@ -315,14 +315,14 @@ bm_events_handle_event(bsal_event_t *event)
+ }
+
+ /* This one managed by cloud */
+- if (abs(stats->probe.last_snr - event->data.probe_req.rssi) < client->preq_snr_thr) {
++ if (abs((int32_t)(stats->probe.last_snr - event->data.probe_req.rssi)) < client->preq_snr_thr) {
+ LOGD("[%s] %s: %s skip preq report (%d %d)", bandstr, ifname, client->mac_addr,
+ stats->probe.last_snr, event->data.probe_req.rssi);
+ break;
+ }
+
+ /* This is short time probe report filtering/limitation */
+- if (abs(stats->probe.last_snr - event->data.probe_req.rssi) <= BM_CLIENT_PREQ_SNR_TH &&
++ if (abs((int32_t)(stats->probe.last_snr - event->data.probe_req.rssi)) <= BM_CLIENT_PREQ_SNR_TH &&
+ (now - last_probe) < BM_CLIENT_PREQ_TIME_TH) {
+ LOGD("[%s] %s: %s skip preq report (%d %d) short time", bandstr, ifname, client->mac_addr,
+ stats->probe.last_snr, event->data.probe_req.rssi);
+@@ -790,7 +790,7 @@ bm_events_handle_rssi_xing(bm_client_t *client, bsal_event_t *event)
+ {
+ if (event->data.rssi_change.low_xing == client->xing_low &&
+ event->data.rssi_change.high_xing == client->xing_high &&
+- (abs(event->data.rssi_change.rssi - client->xing_snr) <= BM_CLIENT_SNR_XING_DIFF)) {
++ (abs((int32_t)(event->data.rssi_change.rssi - client->xing_snr)) <= BM_CLIENT_SNR_XING_DIFF)) {
+ LOGT("%s same xing skip (%d, %d) snr %d old %d", client->mac_addr, client->xing_low, client->xing_high,
+ event->data.rssi_change.rssi, client->xing_snr);
+ return;
diff --git a/recipes-connectivity/opensync/files/disable-dry-run.patch b/recipes-connectivity/opensync/files/disable-dry-run.patch
new file mode 100644
index 0000000..a493102
--- /dev/null
+++ b/recipes-connectivity/opensync/files/disable-dry-run.patch
@@ -0,0 +1,19 @@
+commit 61e04f8186c734312e0641a198f96a59f049f666
+Author: Mateusz Bajorski <mbajorski@plume.com>
+Date: Thu Jan 30 16:46:33 2020 +0000
+
+ disable dry run
+
+diff --git a/src/cm2/unit.mk b/src/cm2/unit.mk
+index 8abe642..922e1fd 100644
+--- a/src/cm2/unit.mk
++++ b/src/cm2/unit.mk
+@@ -52,6 +52,8 @@ UNIT_LDFLAGS += -ldl
+ UNIT_LDFLAGS += -lev
+ UNIT_LDFLAGS += -lrt
+
++UNIT_CFLAGS += -DCONFIG_PLUME_CM2_DISABLE_DRYRUN_ON_GRE
++
+ ifneq ($(CONFIG_USE_KCONFIG),y)
+ # Disable dryrun on GRE by default for all platforms without KConfig
+ UNIT_CFLAGS += -DCONFIG_PLUME_CM2_DISABLE_DRYRUN_ON_GRE
diff --git a/recipes-connectivity/opensync/files/dunfell-nm-crash-fix.patch b/recipes-connectivity/opensync/files/dunfell-nm-crash-fix.patch
new file mode 100644
index 0000000..78a53b6
--- /dev/null
+++ b/recipes-connectivity/opensync/files/dunfell-nm-crash-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/lib/inet/src/inet_base.c b/src/lib/inet/src/inet_base.c
+index a93cefc..db66cf2 100644
+--- a/src/lib/inet/src/inet_base.c
++++ b/src/lib/inet/src/inet_base.c
+@@ -1080,7 +1080,7 @@ bool inet_base_dhcpc_option_set(inet_t *super, enum osn_dhcp_option opt, const c
+ {
+ inet_base_t *self = (void *)super;
+ bool _req;
+- const char *_value;
++ const char *_value=NULL;
+
+ if (!osn_dhcp_client_opt_get(self->in_dhcpc, opt, &_req, &_value))
+ {
diff --git a/recipes-connectivity/opensync/files/get-used-link-type.patch b/recipes-connectivity/opensync/files/get-used-link-type.patch
new file mode 100644
index 0000000..20eebf6
--- /dev/null
+++ b/recipes-connectivity/opensync/files/get-used-link-type.patch
@@ -0,0 +1,13 @@
+Index: core/src/cm2/src/cm2_ovsdb.c
+===================================================================
+--- core.orig/src/cm2/src/cm2_ovsdb.c 2020-01-27 15:10:38.435076332 +0000
++++ core/src/cm2/src/cm2_ovsdb.c 2020-01-27 15:11:01.481520930 +0000
+@@ -861,7 +861,7 @@
+ }
+
+ bool cm2_connection_get_used_link(struct schema_Connection_Manager_Uplink *uplink) {
+- return ovsdb_table_select_one(&table_Connection_Manager_Uplink, SCHEMA_COLUMN(Connection_Manager_Uplink, is_used), "true", uplink);
++ return ovsdb_table_select_one_where(&table_Connection_Manager_Uplink, ovsdb_where_simple_typed(SCHEMA_COLUMN(Connection_Manager_Uplink, is_used), "true",OCLM_BOOL), uplink);
+ }
+
+ static void cm2_connection_clear_used(void)
diff --git a/recipes-connectivity/opensync/files/opensync.service b/recipes-connectivity/opensync/files/opensync.service
new file mode 100644
index 0000000..f58393e
--- /dev/null
+++ b/recipes-connectivity/opensync/files/opensync.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=OpenSync service
+After=hostapd.service
+
+[Service]
+Type=forking
+ExecStart=/usr/opensync/scripts/managers.init start
+Restart=always
+StartLimitIntervalSec=120
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/recipes-connectivity/opensync/files/rdk-ext-support.patch b/recipes-connectivity/opensync/files/rdk-ext-support.patch
new file mode 100644
index 0000000..fc6ddf9
--- /dev/null
+++ b/recipes-connectivity/opensync/files/rdk-ext-support.patch
@@ -0,0 +1,86 @@
+diff --git a/ovsdb/inet.json b/ovsdb/inet.json
+index af2994e..4adb651 100644
+--- a/ovsdb/inet.json
++++ b/ovsdb/inet.json
+@@ -19,6 +19,32 @@
+ "if_type": "bridge",
+ "enabled": true
+ }
++ },
++ {
++ "op":"insert",
++ "table":"Wifi_Inet_Config",
++ "row": {
++ "if_name": "bhaul-sta-24",
++ "ip_assign_scheme": "dhcp",
++ "mtu": 1600,
++ "if_type": "vif",
++ "enabled" : true,
++ "network" : true,
++ "NAT": false
++ }
++ },
++ {
++ "op":"insert",
++ "table":"Wifi_Inet_Config",
++ "row": {
++ "if_name": "bhaul-sta-50",
++ "ip_assign_scheme": "dhcp",
++ "mtu": 1600,
++ "if_type": "vif",
++ "enabled" : true,
++ "network" : true,
++ "NAT": false
++ }
+ }
+ ]
+
+diff --git a/src/lib/target/src/map.c b/src/lib/target/src/map.c
+index 55af881..fa535f9 100644
+--- a/src/lib/target/src/map.c
++++ b/src/lib/target/src/map.c
+@@ -20,10 +20,12 @@ typedef struct
+
+ static ifmap_t ifmap[] = {
+ // idx cloud-ifname dev-ifname bridge gre-br vlan description
+- { 1, "wifi2", "wifi2", "brlan0", "wifi2", 0 }, // 2G Backhaul
+- { 1, "wifi3", "wifi3", "brlan0", "wifi3", 0 }, // 5G Backhaul
+- { 2, "wifi0", "wifi0", "brlan0", NULL, 0 }, // 2G User SSID
+- { 2, "wifi1", "wifi1", "brlan0", NULL, 0 }, // 5G User SSID
++ { 0, "bhaul-sta-24", "bhaul-sta-24", "br-wan", "bhaul-sta-24", 0 }, // 2G Backhaul
++ { 0, "bhaul-sta-50", "bhaul-sta-50", "br-wan", "bhaul-sta-50", 0 }, // 2G Backhaul
++ { 1, "wifi2", "wifi2", "br-home", "wifi2", 0 }, // 2G Backhaul
++ { 1, "wifi3", "wifi3", "br-home", "wifi3", 0 }, // 5G Backhaul
++ { 2, "wifi0", "wifi0", "br-home", NULL, 0 }, // 2G User SSID
++ { 2, "wifi1", "wifi1", "br-home", NULL, 0 }, // 5G User SSID
+ { 0, NULL, NULL, NULL, NULL, 0 }
+ };
+
+diff --git a/src/lib/target/src/target.c b/src/lib/target/src/target.c
+index de884b5..59c1b59 100644
+--- a/src/lib/target/src/target.c
++++ b/src/lib/target/src/target.c
+@@ -5,3 +5,23 @@ const char* target_tls_privkey_filename(void)
+ {
+ return "/usr/plume/etc/certs/client_dec.key";
+ }
++
++bool target_device_connectivity_check(const char *ifname,
++ target_connectivity_check_t *cstate,
++ target_connectivity_check_option_t opts)
++{
++ cstate->ntp_state = true;
++ cstate->link_state = true;
++ cstate->router_state = true;
++ cstate->internet_state = true;
++ return true;
++}
++
++int target_device_capabilities_get()
++{
++#if defined(CONFIG_RDK_EXTENDER)
++ return TARGET_EXTENDER_TYPE;
++#else
++ return 0;
++#endif
++}
diff --git a/recipes-connectivity/opensync/files/rdk-extender.patch b/recipes-connectivity/opensync/files/rdk-extender.patch
new file mode 100644
index 0000000..56c99ad
--- /dev/null
+++ b/recipes-connectivity/opensync/files/rdk-extender.patch
@@ -0,0 +1,563 @@
+diff --git a/kconfig/Kconfig.platform b/kconfig/Kconfig.platform
+new file mode 100644
+index 0000000..4a045b2
+--- /dev/null
++++ b/kconfig/Kconfig.platform
+@@ -0,0 +1,15 @@
++menuconfig PLATFORM_IS_RDK
++ bool "RDK"
++ help
++ Support for RDK-based platforms
++
++
++if PLATFORM_IS_RDK
++
++config RDK_EXTENDER
++ bool "RDK Extender device (EXPERIMENTAL)"
++ default n
++
++
++endif
++
+diff --git a/src/lib/osn/override.mk b/src/lib/osn/override.mk
+index bf128b7..ff210ed 100644
+--- a/src/lib/osn/override.mk
++++ b/src/lib/osn/override.mk
+@@ -33,11 +33,22 @@ UNIT_EXPORT_CFLAGS := -I$(UNIT_PATH)/inc
+ UNIT_SRC := src/osn_inet.c
+ UNIT_SRC += src/osn_types.c
+
++#if extender
++ifeq ($(CONFIG_RDK_EXTENDER),y)
++UNIT_SRC += src/osn_dnsmasq.c
++UNIT_SRC += src/osn_udhcpc.c
++UNIT_SRC += src/osn_route.c
++endif
++
+ UNIT_SRC_DIR := $(OVERRIDE_DIR)/src
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/osn_upnpd.c
++
++ifneq ($(CONFIG_RDK_EXTENDER),y)
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/osn_dhcpc.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/osn_route.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/osn_dhcps.c
++endif
++
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/osn_dhcps6.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/osn_odhcp6c.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/osn_inet6.c
+diff --git a/src/lib/osn/src/osn_dhcps.c b/src/lib/osn/src/osn_dhcps.c
+index d183172..f2885fd 100644
+--- a/src/lib/osn/src/osn_dhcps.c
++++ b/src/lib/osn/src/osn_dhcps.c
+@@ -284,11 +284,13 @@ static bool dhcp_server_init(osn_dhcp_server_t *self, const char *ifname)
+ return false;
+ }
+
++#ifndef CONFIG_RDK_EXTENDER
+ if (!sync_init(SYNC_MGR_NM))
+ {
+ LOGE("Cannot init sync manager for NM");
+ return false;
+ }
++#endif
+
+ /* Initialize this instance */
+ memset(self, 0 ,sizeof(*self));
+diff --git a/src/lib/osync_hal/src/inet.c b/src/lib/osync_hal/src/inet.c
+index b221667..580ff83 100644
+--- a/src/lib/osync_hal/src/inet.c
++++ b/src/lib/osync_hal/src/inet.c
+@@ -304,7 +304,11 @@ osync_hal_return_t osync_hal_inet_add_to_bridge(
+
+ memset(cmd, 0, sizeof(cmd));
+
++#ifdef CONFIG_RDK_EXTENDER
++ snprintf(cmd, sizeof(cmd), "ovs-vsctl add-port %s %s", br_name, if_name);
++#else
+ snprintf(cmd, sizeof(cmd), "brctl addif %s %s", br_name, if_name);
++#endif
+ LOGD("%s: Adding to bridge with \"%s\"", if_name, cmd);
+ rc = system(cmd);
+ if (!WIFEXITED(rc) || WEXITSTATUS(rc) != 0)
+diff --git a/src/lib/target/inc/target_internal.h b/src/lib/target/inc/target_internal.h
+index 1608b03..61f0f06 100644
+--- a/src/lib/target/inc/target_internal.h
++++ b/src/lib/target/inc/target_internal.h
+@@ -35,7 +35,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include "osync_hal.h"
+ #include "osn_dhcp.h"
+
++#if !defined(CONFIG_RDK_EXTENDER)
+ #include <mesh/meshsync_msgs.h> // needed only by sync_send_security_change()
++#endif
+
+ #ifndef __WIFI_HAL_H__
+ #include "ccsp/wifi_hal.h"
+@@ -182,12 +184,15 @@ bool sync_init(sync_mgr_t mgr);
+ bool sync_cleanup(void);
+ bool sync_send_ssid_change(INT ssid_index, const char *ssid_ifname,
+ const char *new_ssid);
++#if !defined(CONFIG_RDK_EXTENDER)
+ bool sync_send_security_change(INT ssid_index, const char *ssid_ifname,
+ MeshWifiAPSecurity *sec);
++#endif
+ bool sync_send_status(radio_cloud_mode_t mode);
+
+ bool vif_state_update(INT ssidIndex);
+ bool vif_state_get(INT ssidIndex, struct schema_Wifi_VIF_State *vstate);
++bool vif_state_sta_get(INT ssidIndex, struct schema_Wifi_VIF_State *vstate);
+ bool vif_copy_to_config(INT ssidIndex, struct schema_Wifi_VIF_State *vstate,
+ struct schema_Wifi_VIF_Config *vconf);
+ struct target_radio_ops;
+diff --git a/src/lib/target/override.mk b/src/lib/target/override.mk
+index 8c37835..369d2a5 100644
+--- a/src/lib/target/override.mk
++++ b/src/lib/target/override.mk
+@@ -44,7 +44,11 @@ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/radio.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/vif.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/stats.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/log.c
++
++ifneq ($(CONFIG_RDK_EXTENDER),y)
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/sync.c
++endif
++
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/maclearn.c
+ UNIT_SRC_TOP += $(UNIT_SRC_DIR)/bsal.c
+
+@@ -53,6 +57,8 @@ UNIT_CFLAGS += -DENABLE_MESH_SOCKETS
+
+ UNIT_DEPS := $(PLATFORM_DIR)/src/lib/devinfo
+ UNIT_DEPS += $(PLATFORM_DIR)/src/lib/osync_hal
++
++#UNIT_DEPS += src/lib/kconfig
+ UNIT_DEPS += src/lib/evsched
+ UNIT_DEPS += src/lib/schema
+ UNIT_DEPS += src/lib/const
+@@ -66,6 +72,7 @@ endif
+
+ UNIT_LDFLAGS := $(SDK_LIB_DIR) -lhal_wifi -lrt
+ UNIT_CFLAGS += -DCONTROLLER_ADDR="\"$(shell echo -n $(CONTROLLER_ADDR))\""
++UNIT_CFLAGS += -include "$(KCONFIG_WORK).h"
+
+ UNIT_EXPORT_CFLAGS := $(UNIT_CFLAGS)
+ UNIT_EXPORT_LDFLAGS := $(UNIT_LDFLAGS)
+diff --git a/src/lib/target/src/radio.c b/src/lib/target/src/radio.c
+index 9bedd00..33a2032 100644
+--- a/src/lib/target/src/radio.c
++++ b/src/lib/target/src/radio.c
+@@ -72,6 +72,7 @@ static c_item_t map_country_str[] =
+ {
+ C_ITEM_STR_STR("826", "UK"), // ISO 3166-1
+ C_ITEM_STR_STR("840", "US"),
++ C_ITEM_STR_STR("705", "SI"), // (non-standard)
+ C_ITEM_STR_STR("841", "US"), // (non-standard)
+ };
+
+@@ -620,6 +621,62 @@ bool target_radio_config_init2()
+ g_rops.op_vconf(&vconfig, rconfig.if_name);
+ g_rops.op_vstate(&vstate);
+ }
++#ifdef CONFIG_RDK_EXTENDER
++ /* CLIENT-API */
++ ret = wifi_getSTANumberOfEntries(&snum);
++ if (ret != RETURN_OK)
++ {
++ LOGE("%s: failed to get SSID count", __func__);
++ return false;
++ }
++
++ for (s = 0; s < snum; s++)
++ {
++ memset(ssid_ifname, 0, sizeof(ssid_ifname));
++ ret = wifi_getSTAName(s, ssid_ifname);
++ if (ret != RETURN_OK)
++ {
++ LOGW("%s: failed to get STA name for index %lu. Skipping.\n", __func__, s);
++ continue;
++ }
++ // Filter SSID's that we don't have mappings for
++ if (!target_unmap_ifname_exists(ssid_ifname))
++ {
++ LOGW("%s: STA %s not in map. Skipping.\n", __func__, ssid_ifname);
++ continue;
++ }
++
++ ret = wifi_getSTARadioIndex(s, &ssid_radio_idx);
++ if (ret != RETURN_OK)
++ {
++ LOGW("Cannot get radio index for SSID %lu", s);
++ continue;
++ }
++
++ if ((ULONG)ssid_radio_idx != r)
++ {
++ continue;
++ }
++
++ LOGI("Found STA index %lu: %s", s, ssid_ifname);
++ if (!vif_state_sta_get(s, &vstate))
++ {
++ LOGE("%s: cannot get vif state for STA index %lu", __func__, s);
++ continue;
++ }
++ if (!vif_copy_to_config(s, &vstate, &vconfig))
++ {
++ LOGE("%s: cannot copy VIF state to config for STA index %lu", __func__, s);
++ continue;
++ }
++ g_rops.op_vconf(&vconfig, rconfig.if_name);
++ g_rops.op_vstate(&vstate);
++
++
++ }
++
++ /* END CLIENT-API */
++#endif
+
+ }
+
+@@ -807,6 +864,9 @@ bool
+ radio_cloud_mode_set(radio_cloud_mode_t mode)
+ {
+ radio_cloud_mode = mode;
+-
++#ifdef CONFIG_RDK_EXTENDER
++ return true;
++#else
+ return sync_send_status(radio_cloud_mode);
++#endif
+ }
+diff --git a/src/lib/target/src/sync.c b/src/lib/target/src/sync.c
+index 5b4337d..b8dfc17 100644
+--- a/src/lib/target/src/sync.c
++++ b/src/lib/target/src/sync.c
+@@ -43,7 +43,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
++#ifndef CONFIG_RDK_EXTENDER
+ #include <mesh/meshsync_msgs.h> // this file is included by vendor
++#endif
+
+ #include "os.h"
+ #include "log.h"
+@@ -146,6 +148,7 @@ static char* sync_iface_name(int iface_type)
+ return tmp;
+ }
+
++#ifndef CONFIG_RDK_EXTENDER
+ static int wiifhal_sync_iface_mltype(int iface_type)
+ {
+ c_item_t *citem;
+@@ -157,7 +160,7 @@ static int wiifhal_sync_iface_mltype(int iface_type)
+
+ return -1;
+ }
+-
++#endif
+ static void sync_process_msg(MeshSync *mp)
+ {
+ radio_cloud_mode_t cloud_mode;
+diff --git a/src/lib/target/src/target.c b/src/lib/target/src/target.c
+index ffaaf6a..ef20eda 100644
+--- a/src/lib/target/src/target.c
++++ b/src/lib/target/src/target.c
+@@ -281,12 +281,13 @@ bool target_init(target_init_opt_t opt, struct ev_loop *loop)
+ "(Failed to initialize EVSCHED)");
+ return -1;
+ }
+-
++ #ifndef CONFIG_RDK_EXTENDER
+ if (!sync_init(SYNC_MGR_WM))
+ {
+ // It reports the error
+ return false;
+ }
++ #endif
+ if (!set_deauth_and_scan_filter_flags())
+ {
+ LOGE("Failed to set csa_deauth and scan filter flags");
+@@ -296,11 +297,13 @@ bool target_init(target_init_opt_t opt, struct ev_loop *loop)
+ break;
+
+ case TARGET_INIT_MGR_CM:
++ #ifndef CONFIG_RDK_EXTENDER
+ if (!sync_init(SYNC_MGR_CM))
+ {
+ // It reports the error
+ return false;
+ }
++ #endif
+ break;
+
+ case TARGET_INIT_MGR_BM:
+@@ -323,7 +326,9 @@ bool target_close(target_init_opt_t opt, struct ev_loop *loop)
+ switch (opt)
+ {
+ case TARGET_INIT_MGR_WM:
++ #ifndef CONFIG_RDK_EXTENDER
+ sync_cleanup();
++ #endif
+ /* fall through */
+
+ case TARGET_INIT_MGR_SM:
+diff --git a/src/lib/target/src/vif.c b/src/lib/target/src/vif.c
+index aaecbf9..a987aa3 100644
+--- a/src/lib/target/src/vif.c
++++ b/src/lib/target/src/vif.c
+@@ -262,7 +262,8 @@ static bool acl_apply(
+
+ return true;
+ }
+-
++//FIXME: is this needed only for mesh something?
++#if !defined(CONFIG_RDK_EXTENDER)
+ static const char* security_conf_find_by_key(
+ const struct schema_Wifi_VIF_Config *vconf,
+ char *key)
+@@ -279,6 +280,7 @@ static const char* security_conf_find_by_key(
+
+ return NULL;
+ }
++#endif
+
+ static bool security_to_state(
+ INT ssid_index,
+@@ -449,7 +451,7 @@ static bool security_to_state(
+ vstate->security_len = n;
+ return true;
+ }
+-
++#if !defined(CONFIG_RDK_EXTENDER)
+ static bool security_to_syncmsg(
+ const struct schema_Wifi_VIF_Config *vconf,
+ MeshWifiAPSecurity *dest)
+@@ -527,7 +529,7 @@ static bool security_to_syncmsg(
+
+ return true;
+ }
+-
++#endif
+ static bool vif_is_enabled(INT ssid_index)
+ {
+ BOOL enabled = false;
+@@ -602,10 +604,177 @@ bool vif_copy_to_config(
+ STRSCPY(vconf->mac_list[i], vstate->mac_list[i]);
+ }
+ vconf->mac_list_len = vstate->mac_list_len;
++ /* CLIENT-API */
++ SCHEMA_SET_STR(vconf->parent, vstate->parent);
++ LOGT("vconf->parent = %s", vconf->parent);
++ SCHEMA_SET_INT(vconf->uapsd_enable, vstate->uapsd_enable);
++ LOGT("vconf->uapsd_enable = %d", vconf->uapsd_enable);
++
+
+ return true;
+ }
+
++#if defined(CONFIG_RDK_EXTENDER)
++/* CLIENT-API */
++
++bool vif_state_sta_get(INT ssidIndex, struct schema_Wifi_VIF_State *vstate)
++{
++ CHAR buf[WIFIHAL_MAX_BUFFER];
++ INT ret;
++ char ssid_ifname[128];
++ hw_mode_t min_hw_mode;
++ INT radio_idx;
++ char band[128];
++ BOOL gOnly, nOnly, acOnly;
++ char *str;
++ ULONG lval;
++ int n = 0;
++
++ memset(vstate, 0, sizeof(*vstate));
++ schema_Wifi_VIF_State_mark_all_present(vstate);
++ vstate->_partial_update = true;
++ vstate->associated_clients_present = false;
++ vstate->vif_config_present = false;
++ memset(ssid_ifname, 0, sizeof(ssid_ifname));
++
++ ret = wifi_getSTAName(ssidIndex, ssid_ifname);
++ if (ret != RETURN_OK)
++ {
++ LOGE("%s: cannot get sta name for index %d", __func__, ssidIndex);
++ return false;
++ }
++
++ SCHEMA_SET_STR(vstate->if_name, target_unmap_ifname(ssid_ifname));
++
++ SCHEMA_SET_STR(vstate->mode, "sta");
++ SCHEMA_SET_INT(vstate->enabled, true);
++ SCHEMA_SET_INT(vstate->uapsd_enable, false);
++ SCHEMA_SET_INT(vstate->vif_radio_idx, target_map_ifname_to_vif_radio_idx(vstate->if_name));
++
++ // mac (w/ exists)
++ memset(buf, 0, sizeof(buf));
++ ret = wifi_getSTAMAC(ssidIndex, buf);
++ if (ret != RETURN_OK)
++ {
++ LOGW("%s: Failed to get STA (mac)", ssid_ifname);
++ }
++ else
++ {
++ SCHEMA_SET_STR(vstate->mac, buf);
++ }
++
++ // mac (w/ exists)
++ memset(buf, 0, sizeof(buf));
++ ret = wifi_getSTABSSID(ssidIndex, buf);
++ if (ret != RETURN_OK)
++ {
++ LOGW("%s: Failed to get STA (parent)", ssid_ifname);
++ }
++ else
++ {
++ SCHEMA_SET_STR(vstate->parent, buf);
++ }
++
++
++ ret = wifi_getSSIDRadioIndex(ssidIndex, &radio_idx);
++ if (ret != RETURN_OK)
++ {
++ LOGE("%s: cannot get radio idx for SSID %s\n", __func__, ssid_ifname);
++ return false;
++ }
++
++
++ memset(band, 0, sizeof(band));
++ ret = wifi_getRadioOperatingFrequencyBand(radio_idx, band);
++ if (ret != RETURN_OK)
++ {
++ LOGE("%s: cannot get radio band for idx %d", __func__, radio_idx);
++ return false;
++ }
++
++
++ // min_hw_mode (w/ exists)
++ if (band[0] == '5')
++ {
++ min_hw_mode = HW_MODE_11A;
++ } else
++ {
++ min_hw_mode = HW_MODE_11B;
++ }
++ ret = wifi_getRadioStandard(radio_idx, buf, &gOnly, &nOnly, &acOnly);
++ if (ret != RETURN_OK)
++ {
++ LOGW("%s: Failed to get min_hw_mode from %d", ssid_ifname, radio_idx);
++ }
++ else
++ {
++ if (gOnly)
++ {
++ min_hw_mode = HW_MODE_11G;
++ }
++ else if (nOnly)
++ {
++ min_hw_mode = HW_MODE_11N;
++ }
++ else if (acOnly)
++ {
++ min_hw_mode = HW_MODE_11AC;
++ }
++ }
++
++ str = c_get_str_by_key(map_hw_mode, min_hw_mode);
++ if (strlen(str) == 0)
++ {
++ LOGW("%s: failed to encode min_hw_mode (%d)",
++ ssid_ifname, min_hw_mode);
++ }
++ else
++ {
++ SCHEMA_SET_STR(vstate->min_hw_mode, str);
++ }
++ // channel (w/ exists)
++ ret = wifi_getRadioChannel(radio_idx, &lval);
++ if (ret != RETURN_OK)
++ {
++ LOGW("%s: Failed to get channel from radio idx %d", ssid_ifname, radio_idx);
++ }
++ else
++ {
++ SCHEMA_SET_INT(vstate->channel, lval);
++ }
++
++
++ SCHEMA_SET_STR(vstate->ssid_broadcast, "disabled");
++ SCHEMA_SET_STR(vstate->mac_list_type, "none");
++ SCHEMA_SET_INT(vstate->btm, 0);
++ SCHEMA_SET_INT(vstate->rrm, 0);
++ SCHEMA_SET_INT(vstate->wds, 0);
++ SCHEMA_SET_INT(vstate->ap_bridge, false);
++ //Wifi credentials
++ SCHEMA_SET_STR(vstate->ssid, "opensync.onboard");
++
++ strncpy(vstate->security_keys[n],
++ OVSDB_SECURITY_ENCRYPTION,
++ sizeof(vstate->security_keys[n]) - 1);
++
++ strncpy(vstate->security[n],
++ OVSDB_SECURITY_ENCRYPTION_WPA_PSK,
++ sizeof(vstate->security[n]) - 1);
++ n++;
++ strncpy(vstate->security_keys[n],
++ OVSDB_SECURITY_KEY,
++ sizeof(vstate->security_keys[n]) - 1);
++ strncpy(vstate->security[n],
++ "7eCyoqETHiJzKBBALPFP9X8mVy4dwCga",
++ sizeof(vstate->security[n]) - 1);
++
++ n++;
++ vstate->security_len = n;
++ return true;
++
++}
++#endif
++
+ bool vif_state_get(INT ssidIndex, struct schema_Wifi_VIF_State *vstate)
+ {
+ ULONG lval;
+@@ -888,7 +1055,9 @@ bool target_vif_config_set2(
+ INT ret;
+ c_item_t *citem;
+ char tmp[256];
++#if !defined(CONFIG_RDK_EXTENDER)
+ MeshWifiAPSecurity sec;
++#endif
+ const char *ssid_ifname = target_map_ifname((char *)vconf->if_name);
+
+ if (!vif_ifname_to_idx(ssid_ifname, &ssid_index))
+@@ -966,10 +1135,12 @@ bool target_vif_config_set2(
+ else
+ {
+ LOGI("%s: SSID updated to '%s'", ssid_ifname, tmp);
++ #if !defined(CONFIG_RDK_EXTENDER)
+ if (!sync_send_ssid_change(ssid_index, ssid_ifname, vconf->ssid))
+ {
+ LOGE("%s: Failed to sync SSID change to '%s'", ssid_ifname, vconf->ssid);
+ }
++ #endif
+ }
+ }
+ }
+@@ -977,6 +1148,8 @@ bool target_vif_config_set2(
+
+ if (changed->security && vconf->security_len)
+ {
++ //TODO: add proper WA
++ #if !defined(CONFIG_RDK_EXTENDER)
+ memset(&sec, 0, sizeof(sec));
+ if (!security_to_syncmsg(vconf, &sec))
+ {
+@@ -1018,6 +1191,7 @@ bool target_vif_config_set2(
+ }
+ }
+ }
++ #endif
+ }
+
+
diff --git a/recipes-connectivity/opensync/files/remove-log-dup.patch b/recipes-connectivity/opensync/files/remove-log-dup.patch
new file mode 100644
index 0000000..8890e94
--- /dev/null
+++ b/recipes-connectivity/opensync/files/remove-log-dup.patch
@@ -0,0 +1,20 @@
+Index: rdk/rootfs/common/usr/plume/scripts/managers.init
+===================================================================
+--- rdk.orig/rootfs/common/usr/plume/scripts/managers.init 2020-01-27 15:26:13.921034680 +0000
++++ rdk/rootfs/common/usr/plume/scripts/managers.init 2020-01-27 15:27:04.707089802 +0000
+@@ -133,15 +133,6 @@
+
+ echo "Starting OpenSync managers"
+ start-stop-daemon -c ${RUN_USER} -S -b -x ${PLUME_BIN_DIR}/dm
+- sleep 10
+- managers="DM WM SM CM LM BM QM OM FSM"
+- ${PLUME_OVSH} d AW_Debug
+- for m in $managers
+- do
+- ${PLUME_OVSH} i AW_Debug name:=$m log_severity:=CRIT
+- done
+- sleep 3
+- ${PLUME_OVSH} i AW_Debug name:=NM log_severity:=CRIT
+ }
+
+ plume_stop() {
diff --git a/recipes-connectivity/opensync/files/service.patch b/recipes-connectivity/opensync/files/service.patch
new file mode 100644
index 0000000..582703a
--- /dev/null
+++ b/recipes-connectivity/opensync/files/service.patch
@@ -0,0 +1,10 @@
+diff --git a/service-provider/academy/build/provider.mk b/service-provider/academy/build/provider.mk
+new file mode 100644
+index 0000000..c81cafd
+--- /dev/null
++++ b/service-provider/academy/build/provider.mk
+@@ -0,0 +1,4 @@
++VALID_IMAGE_DEPLOYMENT_PROFILES += dev-academy prod-academy
++
++CONTROLLER_ADDR="ssl:wildfire.plume.tech:443"
++PROVIDER_BACKHAUL_CREDS = bhaul-ssid:bhaul-password
diff --git a/recipes-connectivity/opensync/files/update-format-specifier-for-time_t.patch b/recipes-connectivity/opensync/files/update-format-specifier-for-time_t.patch
new file mode 100644
index 0000000..9c4bedf
--- /dev/null
+++ b/recipes-connectivity/opensync/files/update-format-specifier-for-time_t.patch
@@ -0,0 +1,22 @@
+diff --git a/src/sm/src/sm_survey_report.c b/src/sm/src/sm_survey_report.c
+index 3e464e8..c94008c 100644
+--- a/src/sm/src/sm_survey_report.c
++++ b/src/sm/src/sm_survey_report.c
+@@ -967,7 +967,7 @@ bool sm_survey_threshold_util_cb (
+ survey_ctx->threshold_record = *survey_entry;
+
+ int threshold_util = result_entry.chan_tx + result_entry.chan_self;
+- LOGD("Checking %s %s survey threshold util: %d/%d delay: %ld/%d count: %d/%d",
++ LOGD("Checking %s %s survey threshold util: %d/%d delay: %lld/%d count: %d/%d",
+ radio_get_name_from_cfg(radio_cfg_ctx),
+ radio_get_scan_name_from_type(scan_type),
+ threshold_util, request_ctx->threshold_util,
+@@ -1099,7 +1099,7 @@ bool sm_survey_stats_update (
+ scan_interval = SURVEY_MIN_SCAN_INTERVAL;
+
+ // always scan if max_delay exceeded
+- LOGI("Force processing %s %s survey delay: %ld/%d count: %d/%d",
++ LOGI("Force processing %s %s survey delay: %lld/%d count: %d/%d",
+ radio_get_name_from_cfg(radio_cfg_ctx),
+ radio_get_scan_name_from_type(scan_type),
+ survey_ctx->threshold_time_delta, request_ctx->threshold_max_delay,
diff --git a/recipes-connectivity/opensync/opensync_2.0.5.bbappend b/recipes-connectivity/opensync/opensync_2.0.5.bbappend
new file mode 100644
index 0000000..596c6ae
--- /dev/null
+++ b/recipes-connectivity/opensync/opensync_2.0.5.bbappend
@@ -0,0 +1,15 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+CORE_URI_remove = "${@bb.utils.contains('DISTRO_FEATURES', 'extender', 'file://0002-Use-osync_hal-in-inet_gretap.patch', '', d)}"
+
+CORE_URI_append_dunfell = " file://absolute-value-glibc-dunfell-fix.patch"
+CORE_URI_append_dunfell = " file://dunfell-nm-crash-fix.patch"
+CORE_URI_append_dunfell = " ${@bb.utils.contains('DISTRO_FEATURES', 'extender', 'file://update-format-specifier-for-time_t.patch', '', d)}"
+
+VENDOR_URI = "git://git@github.com/rdkcentral/opensync-vendor-rdk-turris.git;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GITHUB_MASTER_BRANCH};name=vendor;destsuffix=git/vendor/turris"
+VENDOR_URI += "file://service.patch;patchdir=${WORKDIR}/git/"
+VENDOR_URI += "file://opensync.service"
+
+DEPENDS_append = " rdk-logger hal-wifi-cfg80211"
+
+RDK_CFLAGS += " -D_PLATFORM_TURRIS_"
diff --git a/recipes-connectivity/ppp/ppp_2.4.8.bbappend b/recipes-connectivity/ppp/ppp_2.4.8.bbappend
new file mode 100644
index 0000000..a128b7d
--- /dev/null
+++ b/recipes-connectivity/ppp/ppp_2.4.8.bbappend
@@ -0,0 +1,8 @@
+DEPENDS_remove = "virtual/crypt"
+DEPENDS_append = " nanomsg"
+DEPENDS_append_broadband_dunfell = " libxcrypt"
+
+SRC_URI_remove_extender = "file://ipc-event.patch"
+SRC_URI_remove_extender = "file://ppp-remote-local-samelinklocaladdresses-fix.patch"
+SRC_URI_remove_extender = "file://ppp-auth-retry_and_error-code.patch"
+SRC_URI_remove_extender = "file://ppp-sessionBW-authProtocol-ACName-LastConnErr-DM-Impl.patch"
diff --git a/recipes-connectivity/wpa-supplicant/files/wpa_supplicant-global.service b/recipes-connectivity/wpa-supplicant/files/wpa_supplicant-global.service
new file mode 100644
index 0000000..bb54128
--- /dev/null
+++ b/recipes-connectivity/wpa-supplicant/files/wpa_supplicant-global.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=WPA supplicant daemon
+After=CcspPandMSsp.service
+StartLimitIntervalSec=120
+
+[Service]
+Type=simple
+PIDFile=/var/run/wpa_supplicant-global.pid
+ExecStart=/usr/sbin/wpa_supplicant -g/var/run/wpa_supplicant-global -P /var/run/wpa_supplicant-global.pid
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/recipes-connectivity/wpa-supplicant/wpa-supplicant_%.bbappend b/recipes-connectivity/wpa-supplicant/wpa-supplicant_%.bbappend
new file mode 100644
index 0000000..178e4be
--- /dev/null
+++ b/recipes-connectivity/wpa-supplicant/wpa-supplicant_%.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI += "file://wpa_supplicant-global.service"
+
+SYSTEMD_SERVICE_${PN} = "wpa_supplicant-global.service"
+SYSTEMD_AUTO_ENABLE_${PN} = "enable"
+
+do_install_append () {
+ install -m 0644 ${WORKDIR}/wpa_supplicant-global.service ${D}${systemd_unitdir}/system/
+}
+
diff --git a/recipes-core/base-files/base-files_%.bbappend b/recipes-core/base-files/base-files_%.bbappend
new file mode 100644
index 0000000..ba97544
--- /dev/null
+++ b/recipes-core/base-files/base-files_%.bbappend
@@ -0,0 +1,7 @@
+do_install_append_broadband () {
+ # deal with hostname
+ if [ "${hostname}" ]; then
+ echo "TurrisOmnia-GW" > ${D}${sysconfdir}/hostname
+ echo "127.0.1.1 TurrisOmnia-GW" >> ${D}${sysconfdir}/hosts
+ fi
+}
diff --git a/recipes-core/busybox/busybox/rdkb.cfg b/recipes-core/busybox/busybox/rdkb.cfg
new file mode 100644
index 0000000..90a1211
--- /dev/null
+++ b/recipes-core/busybox/busybox/rdkb.cfg
@@ -0,0 +1,8 @@
+CONFIG_NTPD=y
+CONFIG_FEATURE_NTPD_SERVER=y
+CONFIG_EJECT=y
+CONFIG_CHRT=y
+CONFIG_UMOUNT=n
+CONFIG_MOUNT=n
+CONFIG_FSCK=n
+CONFIG_REV=y
diff --git a/recipes-core/busybox/busybox/timeout.cfg b/recipes-core/busybox/busybox/timeout.cfg
new file mode 100644
index 0000000..9c7d020
--- /dev/null
+++ b/recipes-core/busybox/busybox/timeout.cfg
@@ -0,0 +1,2 @@
+# Fri Jul 10 12:47:58 2020
+CONFIG_TIMEOUT=y
diff --git a/recipes-core/busybox/busybox_%.bbappend b/recipes-core/busybox/busybox_%.bbappend
new file mode 100644
index 0000000..2498e52
--- /dev/null
+++ b/recipes-core/busybox/busybox_%.bbappend
@@ -0,0 +1,13 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}:"
+
+SRC_URI += " \
+ file://timeout.cfg \
+ file://rdkb.cfg \
+ "
+
+do_install_append_dunfell() {
+ rm ${D}${sysconfdir}/syslog.conf
+}
+
+FILES_${PN}-syslog_remove_dunfell = "${sysconfdir}/syslog.conf"
+
diff --git a/recipes-core/dropbear/dropbear_%.bbappend b/recipes-core/dropbear/dropbear_%.bbappend
new file mode 100644
index 0000000..743d263
--- /dev/null
+++ b/recipes-core/dropbear/dropbear_%.bbappend
@@ -0,0 +1,20 @@
+SRC_URI_remove = "file://verbose.patch"
+SRC_URI_remove = "file://revsshipv6.patch"
+SYSTEMD_SERVICE_${PN}_remove_broadband = "dropbear.socket"
+
+do_configure_prepend_hybrid () {
+ export LIBS="${LIBS} -ltelemetry_msgsender"
+}
+
+do_configure_prepend_client () {
+ export LIBS="${LIBS} -ltelemetry_msgsender"
+}
+
+do_configure_prepend_broadband () {
+ export LIBS="${LIBS} -ltelemetry_msgsender"
+}
+
+do_install_append_broadband() {
+ rm -rf ${D}${systemd_unitdir}
+ rm -rf ${D}/lib
+}
diff --git a/recipes-core/glibc/glibc_2.31.bbappend b/recipes-core/glibc/glibc_2.31.bbappend
new file mode 100644
index 0000000..242f47a
--- /dev/null
+++ b/recipes-core/glibc/glibc_2.31.bbappend
@@ -0,0 +1,11 @@
+EXTRA_OECONF += " --enable-obsolete-rpc"
+
+#avoiding the conflicts with libnsl2
+do_install_append_dunfell() {
+rm -rf ${D}/usr/include/rpcsvc
+}
+
+# provided by libnsl2
+do_install_append_class-nativesdk() {
+ rm -f ${D}${includedir}/rpcsvc/yppasswd.*
+}
diff --git a/recipes-core/images/core-image-minimal.bbappend b/recipes-core/images/core-image-minimal.bbappend
new file mode 100644
index 0000000..d8af638
--- /dev/null
+++ b/recipes-core/images/core-image-minimal.bbappend
@@ -0,0 +1,20 @@
+SUMMARY = "Marvell RFS"
+
+inherit rdk-image
+
+MACHINE_IMAGE_NAME = "core-image-minimal"
+
+IMAGE_FEATURES_remove = "read-only-rootfs"
+
+IMAGE_INSTALL_append = " \
+ packagegroup-turris-core \
+ "
+ROOTFS_PKGMANAGE_BOOTSTRAP = "run-postinsts"
+
+IMAGE_INSTALL += " ${ROOTFS_PKGMANAGE_BOOTSTRAP} \
+ ${CORE_IMAGE_EXTRA_INSTALL} \
+ "
+
+BB_HASH_IGNORE_MISMATCH = "1"
+
+IMAGE_NAME[vardepsexclude] = "DATETIME"
diff --git a/recipes-core/images/image-exclude-files.inc b/recipes-core/images/image-exclude-files.inc
new file mode 100644
index 0000000..645715a
--- /dev/null
+++ b/recipes-core/images/image-exclude-files.inc
@@ -0,0 +1,17 @@
+REMOVED_FILE_LIST = "\
+usr/bin/CcspMtaAgentSsp \
+usr/lib/libmta_tr181.so* \
+usr/ccsp/mta \
+usr/bin/CcspEPONAgentSsp \
+usr/lib/libepon_tr181.so* \
+usr/ccsp/epon \
+usr/lib/python* \
+usr/bin/GponManager \
+usr/rdk/gponmanager \
+usr/bin/xdslmanager \
+usr/rdk/xdslmanager \
+etc/rdk/conf/xdsl_manager_conf.json \
+etc/rdk/conf/gpon_manager_conf.json \
+etc/rdk/schemas/xdsl_hal_schema.json \
+etc/rdk/schemas/gpon_hal_schema.json \
+"
diff --git a/recipes-core/images/rdk-generic-broadband-5.10-kernel-image.bb b/recipes-core/images/rdk-generic-broadband-5.10-kernel-image.bb
new file mode 100644
index 0000000..065d62d
--- /dev/null
+++ b/recipes-core/images/rdk-generic-broadband-5.10-kernel-image.bb
@@ -0,0 +1,38 @@
+inherit rdk-image
+
+IMAGE_FEATURES_remove = "read-only-rootfs"
+
+SYSTEMD_TOOLS = "systemd-analyze systemd-bootchart"
+# systemd-bootchart doesn't currently build with musl libc
+SYSTEMD_TOOLS_remove_libc-musl = "systemd-bootchart"
+
+IMAGE_INSTALL += " packagegroup-turris-core \
+ ${SYSTEMD_TOOLS} \
+ linux-firmware-ath10k \
+ network-hotplug \
+ libmcrypt \
+ bzip2 \
+ nmap \
+ libpcap \
+ tcpdump \
+ ebtables \
+ iw \
+ ethtool \
+ bc \
+ mesh-agent \
+ opensync \
+ openvswitch \
+ "
+
+BB_HASH_IGNORE_MISMATCH = "1"
+IMAGE_NAME[vardepsexclude] = "DATETIME"
+
+require image-exclude-files.inc
+
+remove_unused_file() {
+ for i in ${REMOVED_FILE_LIST} ; do rm -rf ${IMAGE_ROOTFS}/$i ; done
+}
+
+ROOTFS_POSTPROCESS_COMMAND_append = "remove_unused_file; "
+
+MACHINE_IMAGE_NAME = "rdk-generic-broadband-5.10-kernel-image"
diff --git a/recipes-core/images/rdk-generic-broadband-image.bbappend b/recipes-core/images/rdk-generic-broadband-image.bbappend
new file mode 100644
index 0000000..7b98407
--- /dev/null
+++ b/recipes-core/images/rdk-generic-broadband-image.bbappend
@@ -0,0 +1,60 @@
+inherit rdk-image
+
+IMAGE_FEATURES_remove = "read-only-rootfs"
+
+SYSTEMD_TOOLS = "systemd-analyze systemd-bootchart"
+# systemd-bootchart doesn't currently build with musl libc
+SYSTEMD_TOOLS_remove_libc-musl = "systemd-bootchart"
+
+IMAGE_INSTALL += " packagegroup-turris-core \
+ ${SYSTEMD_TOOLS} \
+ linux-mac80211 \
+ kernel-module-compat \
+ kernel-module-cfg80211 \
+ kernel-module-mac80211 \
+ linux-mt76 \
+ kernel-module-mt76 \
+ kernel-module-mt7915e \
+ linux-firmware-mt76 \
+ network-hotplug \
+ libmcrypt \
+ bzip2 \
+ libpcap \
+ tcpdump \
+ ebtables \
+ iw \
+ ethtool \
+ bc \
+ mesh-agent \
+ openvswitch \
+ opensync \
+ "
+
+BB_HASH_IGNORE_MISMATCH = "1"
+IMAGE_NAME[vardepsexclude] = "DATETIME"
+
+#ESDK-CHANGES
+do_populate_sdk_ext_prepend() {
+ builddir = d.getVar('TOPDIR')
+ if os.path.exists(builddir + '/conf/templateconf.cfg'):
+ with open(builddir + '/conf/templateconf.cfg', 'w') as f:
+ f.write('meta/conf\n')
+}
+
+sdk_ext_postinst_append() {
+ echo "ln -s $target_sdk_dir/layers/openembedded-core/meta-rdk $target_sdk_dir/layers/openembedded-core/../meta-rdk \n" >> $env_setup_script
+}
+
+PRSERV_HOST = "localhost:0"
+INHERIT += "buildhistory"
+BUILDHISTORY_COMMIT = "1"
+
+
+
+require image-exclude-files.inc
+
+remove_unused_file() {
+ for i in ${REMOVED_FILE_LIST} ; do rm -rf ${IMAGE_ROOTFS}/$i ; done
+}
+
+ROOTFS_POSTPROCESS_COMMAND_append = "remove_unused_file; "
diff --git a/recipes-core/images/rdk-generic-broadband-tdk-image.bbappend b/recipes-core/images/rdk-generic-broadband-tdk-image.bbappend
new file mode 100644
index 0000000..0c9a515
--- /dev/null
+++ b/recipes-core/images/rdk-generic-broadband-tdk-image.bbappend
@@ -0,0 +1,60 @@
+inherit rdk-image
+
+IMAGE_FEATURES_remove = "read-only-rootfs"
+
+SYSTEMD_TOOLS = "systemd-analyze systemd-bootchart"
+# systemd-bootchart doesn't currently build with musl libc
+SYSTEMD_TOOLS_remove_libc-musl = "systemd-bootchart"
+
+IMAGE_INSTALL += " packagegroup-turris-core \
+ ${SYSTEMD_TOOLS} \
+ linux-mac80211 \
+ kernel-module-compat \
+ kernel-module-cfg80211 \
+ kernel-module-mac80211 \
+ linux-mt76 \
+ kernel-module-mt76 \
+ kernel-module-mt7915e \
+ linux-firmware-mt76 \
+ linux-firmware-ath10k \
+ network-hotplug \
+ libmcrypt \
+ bzip2 \
+ nmap \
+ libpcap \
+ tcpdump \
+ ebtables \
+ iw \
+ ethtool \
+ bc \
+ mesh-agent \
+ opensync \
+ openvswitch \
+ "
+
+BB_HASH_IGNORE_MISMATCH = "1"
+IMAGE_NAME[vardepsexclude] = "DATETIME"
+
+#ESDK-CHANGES
+do_populate_sdk_ext_prepend() {
+ builddir = d.getVar('TOPDIR')
+ if os.path.exists(builddir + '/conf/templateconf.cfg'):
+ with open(builddir + '/conf/templateconf.cfg', 'w') as f:
+ f.write('meta/conf\n')
+}
+
+sdk_ext_postinst_append() {
+ echo "ln -s $target_sdk_dir/layers/openembedded-core/meta-rdk $target_sdk_dir/layers/openembedded-core/../meta-rdk \n" >> $env_setup_script
+}
+
+PRSERV_HOST = "localhost:0"
+INHERIT += "buildhistory"
+BUILDHISTORY_COMMIT = "1"
+
+require image-exclude-files.inc
+
+remove_unused_file() {
+ for i in ${REMOVED_FILE_LIST} ; do rm -rf ${IMAGE_ROOTFS}/$i ; done
+}
+
+ROOTFS_POSTPROCESS_COMMAND_append = "remove_unused_file; "
diff --git a/recipes-core/images/rdk-generic-extender-image.bb b/recipes-core/images/rdk-generic-extender-image.bb
new file mode 100644
index 0000000..32e9b09
--- /dev/null
+++ b/recipes-core/images/rdk-generic-extender-image.bb
@@ -0,0 +1,39 @@
+SUMMARY = "A image for the RDK extender yocto build"
+
+inherit rdk-image
+
+IMAGE_FEATURES_remove = "read-only-rootfs"
+
+IMAGE_ROOTFS_SIZE = "8192"
+
+IMAGE_INSTALL += " packagegroup-turris-core \
+ rdk-logger \
+ ${SYSTEMD_TOOLS} \
+ linux-firmware-ath10k \
+ libmcrypt \
+ bzip2 \
+ libpcap \
+ tcpdump \
+ ebtables \
+ dropbear \
+ iw \
+ opensync \
+ openvswitch \
+ libcap \
+ bridge-utils \
+ strace \
+ wpa-supplicant \
+ "
+IMAGE_INSTALL_append_dunfell += " network-hotplug"
+
+SYSTEMD_TOOLS = "systemd-analyze systemd-bootchart"
+# systemd-bootchart doesn't currently build with musl libc
+SYSTEMD_TOOLS_remove_libc-musl = "systemd-bootchart"
+
+do_rootfs[nostamp] = "1"
+
+remove_unused_file() {
+ rm -rf ${IMAGE_ROOTFS}/usr/lib/python* ;
+}
+
+ROOTFS_POSTPROCESS_COMMAND_append = "remove_unused_file; "
diff --git a/recipes-core/packagegroups/packagegroup-rdk-ccsp-broadband.bbappend b/recipes-core/packagegroups/packagegroup-rdk-ccsp-broadband.bbappend
new file mode 100644
index 0000000..92af54b
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-rdk-ccsp-broadband.bbappend
@@ -0,0 +1,34 @@
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "ccsp-moca"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "ccsp-moca-ccsp"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "sys-resource"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "ccsp-cm-agent-ccsp"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "ccsp-cm-agent"
+
+#removing memstress for now following a build issue
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "memstress"
+
+#removing mesh-agent for now. will be brought back along with opensync
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "mesh-agent"
+
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "xupnp"
+
+#removing wanmanager components for now following runtime issues
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "rdktelcovoicemanager"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "rdk-vlanmanager"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "rdk-ppp-manager"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "rdk-fwupgrade-manager"
+
+RDEPENDS_packagegroup-rdk-ccsp-broadband_append = "\
+ rdk-logger \
+ libseshat \
+ start-parodus \
+"
+RDEPENDS_packagegroup-rdk-ccsp-broadband_remove_dunfell = "start-parodus"
+
+#TODO: need to revisit if it breaks functionality. removing since it depends on ucresolv
+#RDEPENDS_packagegroup-rdk-ccsp-broadband_remove = "parodus"
+
+RDEPENDS_packagegroup-rdk-ccsp-broadband_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'rdkb_wan_manager', ' rdk-wanmanager ', '', d)} "
+
+GWPROVAPP = ""
+
diff --git a/recipes-core/packagegroups/packagegroup-rdk-oss-broadband.bbappend b/recipes-core/packagegroups/packagegroup-rdk-oss-broadband.bbappend
new file mode 100644
index 0000000..3a3baaf
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-rdk-oss-broadband.bbappend
@@ -0,0 +1,2 @@
+RDEPENDS_packagegroup-rdk-oss-broadband_remove = "alljoyn"
+RDEPENDS_packagegroup-rdk-oss-broadband_append_dunfell = " zilker-sdk"
diff --git a/recipes-core/packagegroups/packagegroup-turris-core.bb b/recipes-core/packagegroups/packagegroup-turris-core.bb
new file mode 100644
index 0000000..87a44fe
--- /dev/null
+++ b/recipes-core/packagegroups/packagegroup-turris-core.bb
@@ -0,0 +1,57 @@
+SUMMARY = "Custom core image package group for marvell boards"
+
+LICENSE = "MIT"
+
+inherit packagegroup
+
+DEPENDS = "libnl"
+
+PACKAGES = " \
+ packagegroup-turris-core \
+ "
+
+RDEPENDS_packagegroup-turris-core = " \
+ packagegroup-core-boot \
+ devmem2 \
+ lttng-tools \
+ pptp-linux \
+ rp-pppoe \
+ iputils \
+ btrfs-tools \
+ util-linux-readprofile \
+ wireless-tools \
+ trace-cmd \
+ cryptsetup \
+ coreutils \
+ dosfstools \
+ e2fsprogs \
+ fftw \
+ hostapd \
+ wpa-supplicant \
+ iproute2 \
+ libpcap \
+ nfs-utils \
+ openssh \
+ openssl \
+ rpcbind \
+ python-core \
+ sg3-utils \
+ squashfs-tools \
+ valgrind \
+ testfloat \
+ iperf \
+ dhcp-server \
+ iptables \
+ dnsmasq \
+ dt \
+ wireless-regdb-static \
+ "
+RDEPENDS_packagegroup-turris-core_remove = "\
+dt \
+"
+
+#turris omnia uses dropbear, so removing openssh
+RDEPENDS_packagegroup-turris-core_remove = "openssh"
+
+#for yocto 3.1 migration, the following components are removed
+RDEPENDS_packagegroup-turris-core_remove_dunfell = " iperf trace-cmd"
diff --git a/recipes-core/safec/safec_3.5.bbappend b/recipes-core/safec/safec_3.5.bbappend
new file mode 100644
index 0000000..20ede5a
--- /dev/null
+++ b/recipes-core/safec/safec_3.5.bbappend
@@ -0,0 +1,3 @@
+SRC_URI_remove = "file://0001-memrchr-Use-_ISOC11_SOURCE-only-with-glibc.patch"
+
+CPPFLAGS_remove = "-D_GNU_SOURCE"
diff --git a/recipes-core/systemd/files/systemd-set-wdt.patch b/recipes-core/systemd/files/systemd-set-wdt.patch
new file mode 100644
index 0000000..a0a7b81
--- /dev/null
+++ b/recipes-core/systemd/files/systemd-set-wdt.patch
@@ -0,0 +1,15 @@
+diff --git a/src/core/system.conf b/src/core/system.conf
+index db8b7acd78..7d1ea864e0 100644
+--- a/src/core/system.conf
++++ b/src/core/system.conf
+@@ -23,8 +23,8 @@
+ #CrashReboot=no
+ #CPUAffinity=1 2
+ #JoinControllers=cpu,cpuacct net_cls,net_prio
+-#RuntimeWatchdogSec=0
+-#ShutdownWatchdogSec=10min
++RuntimeWatchdogSec=120
++ShutdownWatchdogSec=10min
+ #CapabilityBoundingSet=
+ #SystemCallArchitectures=
+ #TimerSlackNSec=
diff --git a/recipes-core/systemd/files/systemd-strerror_r-handling.patch b/recipes-core/systemd/files/systemd-strerror_r-handling.patch
new file mode 100644
index 0000000..7f9e246
--- /dev/null
+++ b/recipes-core/systemd/files/systemd-strerror_r-handling.patch
@@ -0,0 +1,28 @@
+diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
+index 5e8a3e3200..f017a301ee 100644
+--- a/src/journal/journal-send.c
++++ b/src/journal/journal-send.c
+@@ -358,8 +359,8 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
+ if (errno == 0) {
+ char error[sizeof("ERRNO=")-1 + DECIMAL_STR_MAX(int) + 1];
+
+- if (j != buffer + 8 + k)
+- memmove(buffer + 8 + k, j, strlen(j)+1);
++ //if (j != buffer + 8 + k)
++ // memmove(buffer + 8 + k, j, strlen(j)+1);
+
+ memcpy(buffer, "MESSAGE=", 8);
+
+diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
+index 26219bdeed..3c895c061e 100644
+--- a/src/libsystemd/sd-bus/bus-error.c
++++ b/src/libsystemd/sd-bus/bus-error.c
+@@ -378,7 +378,7 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
+
+ errno = 0;
+ x = strerror_r(error, m, k);
+- if (errno == ERANGE || strlen(x) >= k - 1) {
++ if (errno == ERANGE || strlen(m) >= k - 1) {
+ free(m);
+ k *= 2;
+ continue;
diff --git a/recipes-core/systemd/files/systemd-turris.patch b/recipes-core/systemd/files/systemd-turris.patch
new file mode 100644
index 0000000..988d9a0
--- /dev/null
+++ b/recipes-core/systemd/files/systemd-turris.patch
@@ -0,0 +1,29 @@
+--- git/configure.ac 2019-03-12 13:11:06.811881687 +0000
++++ git1/configure.ac 2019-03-12 13:13:25.315022850 +0000
+@@ -316,7 +316,6 @@
+
+ AC_CHECK_FUNCS([__secure_getenv secure_getenv])
+ AC_CHECK_DECLS([
+- memfd_create,
+ gettid,
+ pivot_root,
+ canonicalize_file_name,
+--- git/src/basic/missing_syscall.h 2019-03-12 13:11:06.167885674 +0000
++++ git1/src/basic/missing_syscall.h 2019-03-12 13:14:14.146719924 +0000
+@@ -77,7 +77,7 @@
+ # warning "__NR_memfd_create unknown for your architecture"
+ # endif
+ # endif
+-
++/*
+ static inline int memfd_create(const char *name, unsigned int flags) {
+ # ifdef __NR_memfd_create
+ return syscall(__NR_memfd_create, name, flags);
+@@ -86,6 +86,7 @@
+ return -1;
+ # endif
+ }
++*/
+ #endif
+
+ /* ======================================================================= */
diff --git a/recipes-core/systemd/systemd_230.bbappend b/recipes-core/systemd/systemd_230.bbappend
new file mode 100644
index 0000000..c51cd47
--- /dev/null
+++ b/recipes-core/systemd/systemd_230.bbappend
@@ -0,0 +1,8 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI_append_extender = " \
+ file://systemd-turris.patch \
+"
+SRC_URI_append = " \
+ file://systemd-set-wdt.patch \
+ file://systemd-strerror_r-handling.patch \
+ "
diff --git a/recipes-core/systemd/systemd_244.%.bbappend b/recipes-core/systemd/systemd_244.%.bbappend
new file mode 100644
index 0000000..04f64b4
--- /dev/null
+++ b/recipes-core/systemd/systemd_244.%.bbappend
@@ -0,0 +1,5 @@
+#set the watch dog timer
+do_install_append_dunfell () {
+sed -i "/RuntimeWatchdogSec/c\RuntimeWatchdogSec=120" ${D}/${sysconfdir}/systemd/system.conf
+sed -i "/ShutdownWatchdogSec/c\ShutdownWatchdogSec=10min" ${D}/${sysconfdir}/systemd/system.conf
+}
diff --git a/recipes-core/util-linux/util-linux_%.bbappend b/recipes-core/util-linux/util-linux_%.bbappend
new file mode 100644
index 0000000..3d93363
--- /dev/null
+++ b/recipes-core/util-linux/util-linux_%.bbappend
@@ -0,0 +1,19 @@
+do_install_append_broadband() {
+ rm -rf ${D}${base_sbindir}/hwcloc
+ rm -rf ${D}${base_bindir}/more
+ rm -rf ${D}${base_bindir}/kill
+ rm -rf ${D}${base_bindir}/dmesg
+ rm -rf ${D}${bindir}/chrt
+ rm -rf ${D}${bindir}/eject
+ rm -rf ${D}${bindir}/flock
+ rm -rf ${D}${bindir}/hexdump
+ rm -rf ${D}${bindir}/logger
+ rm -rf ${D}${bindir}/mesg
+ rm -rf ${D}${bindir}/renice
+ rm -rf ${D}${bindir}/setsid
+}
+do_install_append_dunfell_broadband() {
+ rm -rf ${D}${base_sbindir}/swapon
+ rm -rf ${D}${base_sbindir}/swapoff
+ rm -rf ${D}${base_sbindir}/losetup
+}
diff --git a/recipes-devtools/dt/dt_18.32.bbappend b/recipes-devtools/dt/dt_18.32.bbappend
new file mode 100644
index 0000000..1ce5a77
--- /dev/null
+++ b/recipes-devtools/dt/dt_18.32.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI_append = "file://dt-turris.patch \
+ "
diff --git a/recipes-devtools/dt/files/dt-turris.patch b/recipes-devtools/dt/files/dt-turris.patch
new file mode 100644
index 0000000..44884f3
--- /dev/null
+++ b/recipes-devtools/dt/files/dt-turris.patch
@@ -0,0 +1,51 @@
+--- dt.v18.32/common.h 2019-03-11 14:38:35.873070718 +0000
++++ dt.v18.32_orig/common.h 2019-03-11 14:48:52.257169390 +0000
+@@ -169,6 +169,18 @@
+ #define LXF "0x%I64x"
+ #define FUF LUF
+ #define FXF LXF
++#elif defined(__GNUC__)
++
++#define QuadIsLongLong
++typedef unsigned long long int large_t;
++typedef signed long long int slarge_t;
++typedef volatile large_t v_large;
++typedef volatile slarge_t v_slarge;
++# define LUF "%llu"
++# define LDF "%lld"
++# define LXF "%#llx"
++# define FUF LUF
++# define FXF LXF
+
+ #else /* !defined(MACHINE_64BITS) && !defined(__GNUC__) */
+
+@@ -283,6 +295,8 @@
+ #endif /* defined(sun) */
+ #endif /* 0 */
+
++typedef unsigned long daddr_t;
++
+ #define ulong64 large_t
+ #define long64 slarge_t
+
+--- dt.v18.32/dtunix.c 2013-04-04 13:29:02.000000000 +0000
++++ dt.v18.32_orig/dtunix.c 2019-03-11 14:52:39.579755590 +0000
+@@ -30,6 +30,7 @@
+ * This module contains *unix OS specific functions.
+ */
+ #include "dt.h"
++#include "paths.h"
+
+ /*
+ * SHIT! Another area of incompatability between *nix OS's! :-(
+--- dt.v18.32/dtutil.c 2019-03-11 14:51:24.176217843 +0000
++++ dt.v18.32_orig/dtutil.c 2019-03-11 14:54:29.631084150 +0000
+@@ -53,7 +53,7 @@
+ #if defined(sun)
+ # define strtoul strtol
+ #endif /* defined(sun) */
+-
++# define strtouq strtoull
+ /*
+ * Modification History:
+ *
diff --git a/recipes-devtools/php/php_%.bbappend b/recipes-devtools/php/php_%.bbappend
new file mode 100644
index 0000000..36a9ec1
--- /dev/null
+++ b/recipes-devtools/php/php_%.bbappend
@@ -0,0 +1,4 @@
+EXTRA_OECONF_append = " --enable-cgi "
+
+CFLAGS_append = " -DHAVE_LIBDL "
+LDFLAGS_append = " -ldl "
diff --git a/recipes-devtools/php/php_7.%.bbappend b/recipes-devtools/php/php_7.%.bbappend
new file mode 100644
index 0000000..4e2d1d3
--- /dev/null
+++ b/recipes-devtools/php/php_7.%.bbappend
@@ -0,0 +1,11 @@
+EXTRA_OECONF += " \
+ --without-pear \
+ "
+do_install_prepend_pn-php () {
+ install -d ${D}${sysconfdir}
+ touch ${D}${sysconfdir}/pear.conf
+}
+
+do_install_append_pn-php () {
+ rm ${D}${sysconfdir}/pear.conf
+}
diff --git a/recipes-devtools/python/python3-pycparser_2.20.bbappend b/recipes-devtools/python/python3-pycparser_2.20.bbappend
new file mode 100644
index 0000000..33f2d93
--- /dev/null
+++ b/recipes-devtools/python/python3-pycparser_2.20.bbappend
@@ -0,0 +1 @@
+RDEPENDS_${PN}_class-target_remove_dunfell = " cpp cpp-symlinks"
diff --git a/recipes-devtools/valgrind/valgrind_3.15.0.bbbappend b/recipes-devtools/valgrind/valgrind_3.15.0.bbbappend
new file mode 100644
index 0000000..ac1b17f
--- /dev/null
+++ b/recipes-devtools/valgrind/valgrind_3.15.0.bbbappend
@@ -0,0 +1 @@
+CFLAGS += "-fno-stack-protector"
diff --git a/recipes-extended/lighttpd/files/lighttpd_jst.conf.broadband b/recipes-extended/lighttpd/files/lighttpd_jst.conf.broadband
new file mode 100644
index 0000000..96e9d11
--- /dev/null
+++ b/recipes-extended/lighttpd/files/lighttpd_jst.conf.broadband
@@ -0,0 +1,338 @@
+# lighttpd configuration file
+#
+# use it as a base for lighttpd 1.0.0 and above
+#
+# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $
+
+############ Options you really have to take care of ####################
+
+## modules to load
+# at least mod_access and mod_accesslog should be loaded
+# all other module should only be loaded if really neccesary
+# - saves some time
+# - saves memory
+server.modules = (
+ "mod_accesslog",
+ "mod_cgi",
+ "mod_fastcgi",
+ "mod_setenv",
+ "mod_rewrite",
+ "mod_redirect",
+# "mod_proxy_core",
+# "mod_proxy_backend_fastcgi",
+# "mod_proxy_backend_http",
+ "mod_access" )
+
+## a static document-root, for virtual-hosting take look at the
+## server.virtual-* options
+server.document-root = "/usr/www2/"
+
+## where to send error-messages to
+server.errorlog = "/var/log/lighttpd.error.log"
+
+#disable the following of symbolic links
+server.follow-symlink = "disable"
+
+# files to check for if .../ is requested
+index-file.names = ( "index.jst", "index.html",
+ "index.htm", "default.htm", "ti-web-page.html" )
+
+## set the event-handler (read the performance section in the manual)
+# server.event-handler = "freebsd-kqueue" # needed on OS X
+
+# mimetype mapping
+mimetype.assign = (
+ ".pdf" => "application/pdf",
+ ".sig" => "application/pgp-signature",
+ ".spl" => "application/futuresplash",
+ ".class" => "application/octet-stream",
+ ".ps" => "application/postscript",
+ ".torrent" => "application/x-bittorrent",
+ ".dvi" => "application/x-dvi",
+ ".gz" => "application/x-gzip",
+ ".pac" => "application/x-ns-proxy-autoconfig",
+ ".swf" => "application/x-shockwave-flash",
+ ".tar.gz" => "application/x-tgz",
+ ".tgz" => "application/x-tgz",
+ ".tar" => "application/x-tar",
+ ".zip" => "application/zip",
+ ".mp3" => "audio/mpeg",
+ ".m3u" => "audio/x-mpegurl",
+ ".wma" => "audio/x-ms-wma",
+ ".wax" => "audio/x-ms-wax",
+ ".ogg" => "application/ogg",
+ ".wav" => "audio/x-wav",
+ ".gif" => "image/gif",
+ ".jpg" => "image/jpeg",
+ ".jpeg" => "image/jpeg",
+ ".png" => "image/png",
+ ".xbm" => "image/x-xbitmap",
+ ".xpm" => "image/x-xpixmap",
+ ".xwd" => "image/x-xwindowdump",
+ ".css" => "text/css",
+ ".html" => "text/html",
+ ".htm" => "text/html",
+ ".js" => "text/javascript",
+ ".asc" => "text/plain",
+ ".c" => "text/plain",
+ ".cpp" => "text/plain",
+ ".log" => "text/plain",
+ ".conf" => "text/plain",
+ ".text" => "text/plain",
+ ".txt" => "text/plain",
+ ".dtd" => "text/xml",
+ ".xml" => "text/xml",
+ ".mpeg" => "video/mpeg",
+ ".mpg" => "video/mpeg",
+ ".mov" => "video/quicktime",
+ ".qt" => "video/quicktime",
+ ".avi" => "video/x-msvideo",
+ ".asf" => "video/x-ms-asf",
+ ".asx" => "video/x-ms-asf",
+ ".wmv" => "video/x-ms-wmv",
+ ".bz2" => "application/x-bzip",
+ ".tbz" => "application/x-bzip-compressed-tar",
+ ".tar.bz2" => "application/x-bzip-compressed-tar"
+ )
+
+# Use the "Content-Type" extended attribute to obtain mime type if possible
+#mimetype.use-xattr = "enable"
+
+
+## send a different Server: header
+## be nice and keep it at lighttpd
+server.tag = "RDKM BroadBand Router Server"
+
+#### accesslog module
+accesslog.filename = "/var/log/lighttpd.access.log"
+debug.log-request-handling = "enable"
+
+url.access-deny = ( "~", ".inc", ".html" )
+#Redirect requests if the file is not found - HTTP 404
+url.rewrite-if-not-file = (
+ "^/(.*)$" => "/index.jst?fwd=$1"
+)
+
+
+
+## deny access the file-extensions
+#
+# ~ is for backupfiles from vi, emacs, joe, ...
+# .inc is often used for code includes which should in general not be part
+# of the document-root
+#url.access-deny = ( "~", ".inc" )
+
+#$HTTP["url"] =~ "\.pdf$" {
+# server.range-requests = "disable"
+#}
+
+#$HTTP["url"] =~ "\.php$" {
+# proxy-core.balancer = "round-robin"
+# proxy-core.allow-x-sendfile = "enable"
+# proxy-core.protocol = "fastcgi"
+# proxy-core.backends = ( "unix:/tmp/php-fastcgi.sock" )
+# proxy-core.max-pool-size = 16
+#}
+
+##
+# which extensions should not be handle via static-file transfer
+#
+# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
+static-file.exclude-extensions = ( ".jst", ".pl", ".fcgi", ".sh" )
+
+######### Options that are good to be but not neccesary to be changed #######
+server.use-ipv6 = "enable"
+
+## bind to port (default: 80)
+#server.port = 50050
+
+## bind to localhost (default: all interfaces)
+#server.bind = "127.0.0.1"
+
+## error-handler for status 404
+#server.error-handler-404 = "/error-handler.html"
+#server.error-handler-404 = "/error-handler.php"
+
+## to help the rc.scripts
+server.pid-file = "/var/run/lighttpd.pid"
+
+
+###### virtual hosts
+##
+## If you want name-based virtual hosting add the next three settings and load
+## mod_simple_vhost
+##
+## document-root =
+## virtual-server-root + virtual-server-default-host + virtual-server-docroot
+## or
+## virtual-server-root + http-host + virtual-server-docroot
+##
+#simple-vhost.server-root = "/home/weigon/wwwroot/servers/"
+#simple-vhost.default-host = "grisu.home.kneschke.de"
+#simple-vhost.document-root = "/pages/"
+
+
+##
+## Format: <errorfile-prefix><status-code>.html
+## -> ..../status-404.html for 'File not found'
+#server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-"
+
+## virtual directory listings
+#dir-listing.activate = "enable"
+
+## enable debugging
+#debug.log-request-header = "enable"
+#debug.log-response-header = "enable"
+#debug.log-request-handling = "enable"
+#debug.log-file-not-found = "enable"
+
+### only root can use these options
+#
+# chroot() to directory (default: no chroot() )
+#server.chroot = "/"
+
+## change uid to <uid> (default: don't care)
+#server.username = "wwwrun"
+
+## change uid to <uid> (default: don't care)
+#server.groupname = "wwwrun"
+
+#### compress module
+#compress.cache-dir = "/tmp/lighttpd/cache/compress/"
+#compress.filetype = ("text/plain", "text/html")
+
+#### proxy module
+## read proxy.txt for more info
+#proxy.server = ( ".php" =>
+# ( "localhost" =>
+# (
+# "host" => "192.168.0.101",
+# "port" => 80
+# )
+# )
+# )
+
+#### fastcgi module
+## read fastcgi.txt for more info
+## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
+#fastcgi.server = ( ".php" =>
+# ( "localhost" =>
+# (
+# "socket" => "/tmp/php-fastcgi.socket",
+# "bin-path" => "/usr/bin/php-cgi -c /etc/php.ini"
+# )
+# )
+# )
+#
+cgi.assign = (
+ ".jst" => "/usr/sbin/jst",
+ ".pl" => "/usr/bin/perl",
+ ".cgi" => "/usr/bin/perl",
+ ".sh" => "/bin/sh" )
+#### CGI module
+#cgi.assign = ( ".pl" => "/usr/bin/perl",
+# ".cgi" => "/usr/bin/perl" )
+#
+
+#### SSL engine
+#ssl.engine = "enable"
+#ssl.pemfile = "server.pem"
+
+#### status module
+#status.status-url = "/server-status"
+#status.config-url = "/server-config"
+
+#### auth module
+## read authentication.txt for more info
+#auth.backend = "plain"
+#auth.backend.plain.userfile = "lighttpd.user"
+#auth.backend.plain.groupfile = "lighttpd.group"
+
+#auth.backend.ldap.hostname = "localhost"
+#auth.backend.ldap.base-dn = "dc=my-domain,dc=com"
+#auth.backend.ldap.filter = "(uid=$)"
+
+#auth.require = ( "/server-status" =>
+# (
+# "method" => "digest",
+# "realm" => "download archiv",
+# "require" => "user=jan"
+# ),
+# "/server-config" =>
+# (
+# "method" => "digest",
+# "realm" => "download archiv",
+# "require" => "valid-user"
+# )
+# )
+
+#### url handling modules (rewrite, redirect, access)
+#url.rewrite = ( "^/$" => "/server-status" )
+#url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
+
+#### both rewrite/redirect support back reference to regex conditional using %n
+#$HTTP["host"] =~ "^www\.(.*)" {
+# url.redirect = ( "^/(.*)" => "http://%1/$1" )
+#}
+
+#
+# define a pattern for the host url finding
+# %% => % sign
+# %0 => domain name + tld
+# %1 => tld
+# %2 => domain name without tld
+# %3 => subdomain 1 name
+# %4 => subdomain 2 name
+#
+#evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/"
+
+#### expire module
+#expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
+
+#### ssi
+#ssi.extension = ( ".shtml" )
+
+#### rrdtool
+#rrdtool.binary = "/usr/bin/rrdtool"
+#rrdtool.db-name = "/var/www/lighttpd.rrd"
+
+#### setenv
+#setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" )
+#setenv.add-response-header = ( "X-Secret-Message" => "42" )
+
+## for mod_trigger_b4_dl
+# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
+# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
+# trigger-before-download.trigger-url = "^/trigger/"
+# trigger-before-download.download-url = "^/download/"
+# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
+# trigger-before-download.trigger-timeout = 10
+
+## for mod_cml
+## don't forget to add index.cml to server.indexfiles
+# cml.extension = ".cml"
+# cml.memcache-hosts = ( "127.0.0.1:11211" )
+
+#### variable usage:
+## variable name without "." is auto prefixed by "var." and becomes "var.bar"
+#bar = 1
+#var.mystring = "foo"
+
+## integer add
+#bar += 1
+## string concat, with integer cast as string, result: "www.foo1.com"
+#server.name = "www." + mystring + var.bar + ".com"
+## array merge
+#index-file.names = (foo + ".php") + index-file.names
+#index-file.names += (foo + ".php")
+
+#### include
+#include /etc/lighttpd/lighttpd-inc.conf
+## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
+#include "lighttpd-inc.conf"
+
+#### include_shell
+#include_shell "echo var.a=1"
+## the above is same as:
+#var.a=1
+server.http-parseopts = ( "url-path-2f-decode" => "disable" )
diff --git a/recipes-extended/lighttpd/files/lighttpd_php.conf.broadband b/recipes-extended/lighttpd/files/lighttpd_php.conf.broadband
new file mode 100644
index 0000000..71e87e1
--- /dev/null
+++ b/recipes-extended/lighttpd/files/lighttpd_php.conf.broadband
@@ -0,0 +1,320 @@
+# lighttpd configuration file
+#
+# use it as a base for lighttpd 1.0.0 and above
+#
+# $Id: lighttpd.conf,v 1.7 2004/11/03 22:26:05 weigon Exp $
+
+############ Options you really have to take care of ####################
+
+## modules to load
+# at least mod_access and mod_accesslog should be loaded
+# all other module should only be loaded if really neccesary
+# - saves some time
+# - saves memory
+server.modules = (
+ "mod_accesslog",
+ "mod_cgi",
+ "mod_fastcgi",
+# "mod_proxy_core",
+# "mod_proxy_backend_fastcgi",
+# "mod_proxy_backend_http",
+ "mod_access" )
+
+## a static document-root, for virtual-hosting take look at the
+## server.virtual-* options
+server.document-root = "/usr/www/"
+
+## where to send error-messages to
+server.errorlog = "/var/log/lighttpd.error.log"
+
+# files to check for if .../ is requested
+index-file.names = ( "index.php", "index.html",
+ "index.htm", "default.htm" )
+
+## set the event-handler (read the performance section in the manual)
+# server.event-handler = "freebsd-kqueue" # needed on OS X
+
+# mimetype mapping
+mimetype.assign = (
+ ".pdf" => "application/pdf",
+ ".sig" => "application/pgp-signature",
+ ".spl" => "application/futuresplash",
+ ".class" => "application/octet-stream",
+ ".ps" => "application/postscript",
+ ".torrent" => "application/x-bittorrent",
+ ".dvi" => "application/x-dvi",
+ ".gz" => "application/x-gzip",
+ ".pac" => "application/x-ns-proxy-autoconfig",
+ ".swf" => "application/x-shockwave-flash",
+ ".tar.gz" => "application/x-tgz",
+ ".tgz" => "application/x-tgz",
+ ".tar" => "application/x-tar",
+ ".zip" => "application/zip",
+ ".mp3" => "audio/mpeg",
+ ".m3u" => "audio/x-mpegurl",
+ ".wma" => "audio/x-ms-wma",
+ ".wax" => "audio/x-ms-wax",
+ ".ogg" => "application/ogg",
+ ".wav" => "audio/x-wav",
+ ".gif" => "image/gif",
+ ".jpg" => "image/jpeg",
+ ".jpeg" => "image/jpeg",
+ ".png" => "image/png",
+ ".xbm" => "image/x-xbitmap",
+ ".xpm" => "image/x-xpixmap",
+ ".xwd" => "image/x-xwindowdump",
+ ".css" => "text/css",
+ ".html" => "text/html",
+ ".htm" => "text/html",
+ ".js" => "text/javascript",
+ ".asc" => "text/plain",
+ ".c" => "text/plain",
+ ".cpp" => "text/plain",
+ ".log" => "text/plain",
+ ".conf" => "text/plain",
+ ".text" => "text/plain",
+ ".txt" => "text/plain",
+ ".dtd" => "text/xml",
+ ".xml" => "text/xml",
+ ".mpeg" => "video/mpeg",
+ ".mpg" => "video/mpeg",
+ ".mov" => "video/quicktime",
+ ".qt" => "video/quicktime",
+ ".avi" => "video/x-msvideo",
+ ".asf" => "video/x-ms-asf",
+ ".asx" => "video/x-ms-asf",
+ ".wmv" => "video/x-ms-wmv",
+ ".bz2" => "application/x-bzip",
+ ".tbz" => "application/x-bzip-compressed-tar",
+ ".tar.bz2" => "application/x-bzip-compressed-tar"
+ )
+
+# Use the "Content-Type" extended attribute to obtain mime type if possible
+#mimetype.use-xattr = "enable"
+
+
+## send a different Server: header
+## be nice and keep it at lighttpd
+server.tag = "lighttpd"
+
+#### accesslog module
+accesslog.filename = "/var/log/lighttpd.access.log"
+debug.log-request-handling = "enable"
+
+
+
+
+## deny access the file-extensions
+#
+# ~ is for backupfiles from vi, emacs, joe, ...
+# .inc is often used for code includes which should in general not be part
+# of the document-root
+#url.access-deny = ( "~", ".inc" )
+
+$HTTP["url"] =~ "\.pdf$" {
+ server.range-requests = "disable"
+}
+
+$HTTP["url"] =~ "\.php$" {
+ proxy-core.balancer = "round-robin"
+ proxy-core.allow-x-sendfile = "enable"
+ proxy-core.protocol = "fastcgi"
+ proxy-core.backends = ( "unix:/tmp/php-fastcgi.sock" )
+ proxy-core.max-pool-size = 16
+}
+
+##
+# which extensions should not be handle via static-file transfer
+#
+# .php, .pl, .fcgi are most often handled by mod_fastcgi or mod_cgi
+static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
+
+######### Options that are good to be but not neccesary to be changed #######
+
+## bind to port (default: 80)
+#server.port = 50050
+
+## bind to localhost (default: all interfaces)
+#server.bind = "127.0.0.1"
+
+## error-handler for status 404
+#server.error-handler-404 = "/error-handler.html"
+#server.error-handler-404 = "/error-handler.php"
+
+## to help the rc.scripts
+#server.pid-file = "/var/run/lighttpd.pid"
+
+
+###### virtual hosts
+##
+## If you want name-based virtual hosting add the next three settings and load
+## mod_simple_vhost
+##
+## document-root =
+## virtual-server-root + virtual-server-default-host + virtual-server-docroot
+## or
+## virtual-server-root + http-host + virtual-server-docroot
+##
+#simple-vhost.server-root = "/home/weigon/wwwroot/servers/"
+#simple-vhost.default-host = "grisu.home.kneschke.de"
+#simple-vhost.document-root = "/pages/"
+
+
+##
+## Format: <errorfile-prefix><status-code>.html
+## -> ..../status-404.html for 'File not found'
+#server.errorfile-prefix = "/home/weigon/projects/lighttpd/doc/status-"
+
+## virtual directory listings
+#dir-listing.activate = "enable"
+
+## enable debugging
+#debug.log-request-header = "enable"
+#debug.log-response-header = "enable"
+#debug.log-request-handling = "enable"
+#debug.log-file-not-found = "enable"
+
+### only root can use these options
+#
+# chroot() to directory (default: no chroot() )
+#server.chroot = "/"
+
+## change uid to <uid> (default: don't care)
+#server.username = "wwwrun"
+
+## change uid to <uid> (default: don't care)
+#server.groupname = "wwwrun"
+
+#### compress module
+#compress.cache-dir = "/tmp/lighttpd/cache/compress/"
+#compress.filetype = ("text/plain", "text/html")
+
+#### proxy module
+## read proxy.txt for more info
+#proxy.server = ( ".php" =>
+# ( "localhost" =>
+# (
+# "host" => "192.168.0.101",
+# "port" => 80
+# )
+# )
+# )
+
+#### fastcgi module
+## read fastcgi.txt for more info
+## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
+fastcgi.server = ( ".php" =>
+ ( "localhost" =>
+ (
+ "socket" => "/tmp/php-fastcgi.socket",
+ "bin-path" => "/usr/bin/php-cgi -c /etc/php.ini"
+ )
+ )
+ )
+
+#### CGI module
+#cgi.assign = ( ".pl" => "/usr/bin/perl",
+# ".cgi" => "/usr/bin/perl" )
+#
+
+#### SSL engine
+#ssl.engine = "enable"
+#ssl.pemfile = "server.pem"
+
+#### status module
+#status.status-url = "/server-status"
+#status.config-url = "/server-config"
+
+#### auth module
+## read authentication.txt for more info
+#auth.backend = "plain"
+#auth.backend.plain.userfile = "lighttpd.user"
+#auth.backend.plain.groupfile = "lighttpd.group"
+
+#auth.backend.ldap.hostname = "localhost"
+#auth.backend.ldap.base-dn = "dc=my-domain,dc=com"
+#auth.backend.ldap.filter = "(uid=$)"
+
+#auth.require = ( "/server-status" =>
+# (
+# "method" => "digest",
+# "realm" => "download archiv",
+# "require" => "user=jan"
+# ),
+# "/server-config" =>
+# (
+# "method" => "digest",
+# "realm" => "download archiv",
+# "require" => "valid-user"
+# )
+# )
+
+#### url handling modules (rewrite, redirect, access)
+#url.rewrite = ( "^/$" => "/server-status" )
+#url.redirect = ( "^/wishlist/(.+)" => "http://www.123.org/$1" )
+
+#### both rewrite/redirect support back reference to regex conditional using %n
+#$HTTP["host"] =~ "^www\.(.*)" {
+# url.redirect = ( "^/(.*)" => "http://%1/$1" )
+#}
+
+#
+# define a pattern for the host url finding
+# %% => % sign
+# %0 => domain name + tld
+# %1 => tld
+# %2 => domain name without tld
+# %3 => subdomain 1 name
+# %4 => subdomain 2 name
+#
+#evhost.path-pattern = "/home/storage/dev/www/%3/htdocs/"
+
+#### expire module
+#expire.url = ( "/buggy/" => "access 2 hours", "/asdhas/" => "access plus 1 seconds 2 minutes")
+
+#### ssi
+#ssi.extension = ( ".shtml" )
+
+#### rrdtool
+#rrdtool.binary = "/usr/bin/rrdtool"
+#rrdtool.db-name = "/var/www/lighttpd.rrd"
+
+#### setenv
+#setenv.add-request-header = ( "TRAV_ENV" => "mysql://user@host/db" )
+#setenv.add-response-header = ( "X-Secret-Message" => "42" )
+
+## for mod_trigger_b4_dl
+# trigger-before-download.gdbm-filename = "/home/weigon/testbase/trigger.db"
+# trigger-before-download.memcache-hosts = ( "127.0.0.1:11211" )
+# trigger-before-download.trigger-url = "^/trigger/"
+# trigger-before-download.download-url = "^/download/"
+# trigger-before-download.deny-url = "http://127.0.0.1/index.html"
+# trigger-before-download.trigger-timeout = 10
+
+## for mod_cml
+## don't forget to add index.cml to server.indexfiles
+# cml.extension = ".cml"
+# cml.memcache-hosts = ( "127.0.0.1:11211" )
+
+#### variable usage:
+## variable name without "." is auto prefixed by "var." and becomes "var.bar"
+#bar = 1
+#var.mystring = "foo"
+
+## integer add
+#bar += 1
+## string concat, with integer cast as string, result: "www.foo1.com"
+#server.name = "www." + mystring + var.bar + ".com"
+## array merge
+#index-file.names = (foo + ".php") + index-file.names
+#index-file.names += (foo + ".php")
+
+#### include
+#include /etc/lighttpd/lighttpd-inc.conf
+## same as above if you run: "lighttpd -f /etc/lighttpd/lighttpd.conf"
+#include "lighttpd-inc.conf"
+
+#### include_shell
+#include_shell "echo var.a=1"
+## the above is same as:
+#var.a=1
diff --git a/recipes-extended/lighttpd/lighttpd_%.bbappend b/recipes-extended/lighttpd/lighttpd_%.bbappend
new file mode 100644
index 0000000..c450aa1
--- /dev/null
+++ b/recipes-extended/lighttpd/lighttpd_%.bbappend
@@ -0,0 +1,24 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += " \
+ file://lighttpd_php.conf.broadband \
+ file://lighttpd_jst.conf.broadband \
+"
+
+SYSTEMD_SERVICE_${PN} += "lighttpd.service"
+
+do_install_append() {
+ install -d ${D}${sysconfdir}
+ if [ "${@bb.utils.contains("DISTRO_FEATURES", "webui_jst", "yes", "no", d)}" = "yes" ]; then
+ install -m 0644 ${WORKDIR}/lighttpd_jst.conf.broadband ${D}${sysconfdir}/lighttpd.conf
+ else
+ install -m 0644 ${WORKDIR}/lighttpd_php.conf.broadband ${D}${sysconfdir}/lighttpd.conf
+ fi
+}
+
+FILES_${PN}_append_morty = " /usr/lib/mod_fastcgi.so"
+
+RDEPENDS_${PN}_append_dunfell = " \
+ lighttpd-module-fastcgi \
+ lighttpd-module-proxy \
+ "
diff --git a/recipes-extended/procps/procps_%.bbappend b/recipes-extended/procps/procps_%.bbappend
new file mode 100644
index 0000000..6f10e40
--- /dev/null
+++ b/recipes-extended/procps/procps_%.bbappend
@@ -0,0 +1,4 @@
+do_install_append () {
+sed -i "s/#net\/ipv4\/ip_forward=1/net\/ipv4\/ip_forward=1/g" ${D}/etc/sysctl.conf
+}
+
diff --git a/recipes-extended/tdkb/tdk-b.bbappend b/recipes-extended/tdkb/tdk-b.bbappend
new file mode 100644
index 0000000..074d3af
--- /dev/null
+++ b/recipes-extended/tdkb/tdk-b.bbappend
@@ -0,0 +1,19 @@
+EXTRA_OECONF_append = " --enable-ert --enable-platform"
+
+SRC_URI += "${CMF_GIT_ROOT}/rdkb/devices/turris/tdkb;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};destsuffix=git/platform/turris;name=tdkbturris"
+
+SRCREV_tdkturris = "${AUTOREV}"
+do_fetch[vardeps] += "SRCREV_tdkbturris"
+SRCREV_FORMAT = "tdk_tdkbturris"
+
+do_install_append () {
+ install -d ${D}${tdkdir}
+ install -d ${D}/etc
+ install -p -m 755 ${S}/platform/turris/agent/scripts/*.sh ${D}${tdkdir}
+ install -p -m 755 ${S}/platform/turris/agent/scripts/tdk_platform.properties ${D}/etc/
+}
+
+FILES_${PN} += "${prefix}/ccsp/"
+FILES_${PN} += "/etc/*"
+FILES_${PN} += "${tdkdir}/*"
+
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_eeprom.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_eeprom.bin
new file mode 100644
index 0000000..007df1b
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_eeprom.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_eeprom_dbdc.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_eeprom_dbdc.bin
new file mode 100644
index 0000000..6c0b64e
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_eeprom_dbdc.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_rom_patch.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_rom_patch.bin
new file mode 100644
index 0000000..1c69d39
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_rom_patch.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_wa.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_wa.bin
new file mode 100644
index 0000000..434e757
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_wa.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_wm.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_wm.bin
new file mode 100644
index 0000000..fef6005
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7915_wm.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_eeprom.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_eeprom.bin
new file mode 100644
index 0000000..35b287c
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_eeprom.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_rom_patch.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_rom_patch.bin
new file mode 100644
index 0000000..07fe11a
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_rom_patch.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_wa.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_wa.bin
new file mode 100644
index 0000000..27caa00
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_wa.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_wm.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_wm.bin
new file mode 100644
index 0000000..7df01ea
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7916_wm.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7975_dual.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7975_dual.bin
new file mode 100644
index 0000000..dfe5376
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7975_dual.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976.bin
new file mode 100644
index 0000000..c821f2d
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976_dbdc.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976_dbdc.bin
new file mode 100644
index 0000000..54858b0
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976_dbdc.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976_dual.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976_dual.bin
new file mode 100644
index 0000000..dc0d3e4
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_eeprom_mt7976_dual.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_rom_patch.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_rom_patch.bin
new file mode 100644
index 0000000..c0185c8
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_rom_patch.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_rom_patch_mt7975.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_rom_patch_mt7975.bin
new file mode 100644
index 0000000..936cfe8
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_rom_patch_mt7975.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wa.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wa.bin
new file mode 100644
index 0000000..f7914a9
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wa.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wm.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wm.bin
new file mode 100644
index 0000000..11f363f
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wm.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wm_mt7975.bin b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wm_mt7975.bin
new file mode 100644
index 0000000..972926c
--- /dev/null
+++ b/recipes-kernel/linux-firmware/files/mt76/firmware/mt7986_wm_mt7975.bin
Binary files differ
diff --git a/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
new file mode 100644
index 0000000..8d6a831
--- /dev/null
+++ b/recipes-kernel/linux-firmware/linux-firmware_%.bbappend
@@ -0,0 +1,45 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += " \
+ file://mt76 \
+ "
+
+do_install_append () {
+ install -d ${D}/${base_libdir}/firmware/mediatek/
+
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7915_rom_patch.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7915_wa.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7915_wm.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7915_eeprom.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7915_eeprom_dbdc.bin ${D}${base_libdir}/firmware/mediatek/
+
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_rom_patch.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_rom_patch_mt7975.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_wa.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_wm.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_wm_mt7975.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_eeprom_mt7975_dual.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_eeprom_mt7976_dbdc.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_eeprom_mt7976.bin ${D}${base_libdir}/firmware/mediatek/
+ install -m 644 ${WORKDIR}/mt76/firmware/mt7986_eeprom_mt7976_dual.bin ${D}${base_libdir}/firmware/mediatek/
+
+}
+
+PACKAGES =+ "${PN}-mt76"
+
+FILES_${PN}-mt76 += " \
+ ${base_libdir}/firmware/mediatek/mt7915_rom_patch.bin \
+ ${base_libdir}/firmware/mediatek/mt7915_wa.bin \
+ ${base_libdir}/firmware/mediatek/mt7915_wm.bin \
+ ${base_libdir}/firmware/mediatek/mt7915_eeprom.bin \
+ ${base_libdir}/firmware/mediatek/mt7915_eeprom_dbdc.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_rom_patch.bin\
+ ${base_libdir}/firmware/mediatek/mt7986_rom_patch_mt7975.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_wa.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_wm.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_wm_mt7975.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_eeprom_mt7975_dual.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_eeprom_mt7976_dbdc.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_eeprom_mt7976.bin \
+ ${base_libdir}/firmware/mediatek/mt7986_eeprom_mt7976_dual.bin \
+ "
diff --git a/recipes-kernel/linux/linux-mediatek_%.bbappend b/recipes-kernel/linux/linux-mediatek_%.bbappend
new file mode 100644
index 0000000..b2311a1
--- /dev/null
+++ b/recipes-kernel/linux/linux-mediatek_%.bbappend
@@ -0,0 +1,16 @@
+do_install_append() {
+ cp -Rfp ${B}/scripts/ ${STAGING_KERNEL_BUILDDIR}/
+ install -d ${D}${includedir}
+ install -m 0644 ${B}/include/generated/autoconf.h ${D}${includedir}/autoconf.h
+}
+
+sysroot_stage_all_append () {
+ install -d ${SYSROOT_DESTDIR}${includedir}
+ install -m 0644 ${D}${includedir}/autoconf.h ${SYSROOT_DESTDIR}${includedir}/autoconf.h
+}
+
+
+PACKAGES += "kernel-autoconf"
+PROVIDES += "kernel-autoconf"
+
+FILES_kernel-autoconf = "${includedir}/autoconf.h"
diff --git a/recipes-networking/openvswitch/openvswitch_git.bbappend b/recipes-networking/openvswitch/openvswitch_git.bbappend
new file mode 100644
index 0000000..ccc2920
--- /dev/null
+++ b/recipes-networking/openvswitch/openvswitch_git.bbappend
@@ -0,0 +1,14 @@
+DEPENDS_remove_dunfell = "virtual/kernel bridge-utils"
+DEPENDS_append_class-target_dunfell = " virtual/kernel kernel-devsrc"
+DEPENDS_append_class-target_dunfell = " bridge-utils"
+EXTRA_OECONF += "--enable-ssl"
+
+EXTRA_OECONF_class-target_dunfell += "--with-linux=${STAGING_KERNEL_BUILDDIR} --with-linux-source=${STAGING_KERNEL_DIR} KARCH=${UBOOT_ARCH} PYTHON=python3 PYTHON3=python3 PERL=${bindir}/perl "
+
+#disable openvswitch autostart
+SYSTEMD_SERVICE_${PN}-switch = ""
+do_compile_prepend() {
+ export CROSS_COMPILE=`echo '${TARGET_PREFIX}'`
+}
+
+PACKAGECONFIG[ssl] = " "
diff --git a/recipes-protocols/ieee1905/files/0001-Added-support-for-RDK-flavour-compilation.patch b/recipes-protocols/ieee1905/files/0001-Added-support-for-RDK-flavour-compilation.patch
new file mode 100644
index 0000000..6d4f038
--- /dev/null
+++ b/recipes-protocols/ieee1905/files/0001-Added-support-for-RDK-flavour-compilation.patch
@@ -0,0 +1,29 @@
+From 869cc8dec87571972c487aa3c948ed2ba6b94fb2 Mon Sep 17 00:00:00 2001
+From: GuruVinayak P <gp@synamedia.com>
+Date: Tue, 3 Nov 2020 19:07:28 +0530
+Subject: [PATCH 1/2] Added support for RDK flavour compilation
+
+---
+ Makefile | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/Makefile b/Makefile
+index 0f5c0f0..3750cf9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -86,6 +86,12 @@ ifeq ($(PLATFORM),linux)
+
+ AL_SUPPORTED := yes
+ HLE_SUPPORTED := yes
++ else ifeq ($(FLAVOUR), RDK)
++ # AR, CC, LDFLAGS and CFLAGS should come from the recipe
++ CCFLAGS := $(CFLAGS)
++
++ AL_SUPPORTED := yes
++ HLE_SUPPORTED := yes
+ else ifeq ($(FLAVOUR), arm_wrt1900acx)
+ CC := $(WRT1900_CROSS)gcc
+ AR := $(WRT1900_CROSS)ar
+--
+2.7.4
+
diff --git a/recipes-protocols/ieee1905/files/0002-Added-support-for-openssl-1.1.0-compilation.patch b/recipes-protocols/ieee1905/files/0002-Added-support-for-openssl-1.1.0-compilation.patch
new file mode 100644
index 0000000..6855241
--- /dev/null
+++ b/recipes-protocols/ieee1905/files/0002-Added-support-for-openssl-1.1.0-compilation.patch
@@ -0,0 +1,255 @@
+From 0063be96a810fad52ac5dff12a7117da6b58099e Mon Sep 17 00:00:00 2001
+From: GuruVinayak P <gp@synamedia.com>
+Date: Wed, 4 Nov 2020 11:41:24 +0530
+Subject: [PATCH] Added support for openssl 1.1.0 compilation
+
+---
+ src/al/src_linux/platform_crypto.c | 149 ++++++++++++++++++++++++++---
+ src/al/src_linux/platform_os.c | 1 +
+ 2 files changed, 138 insertions(+), 12 deletions(-)
+
+diff --git a/src/al/src_linux/platform_crypto.c b/src/al/src_linux/platform_crypto.c
+index 209febd..ae4eb5e 100644
+--- a/src/al/src_linux/platform_crypto.c
++++ b/src/al/src_linux/platform_crypto.c
+@@ -144,6 +144,53 @@ INT8U PLATFORM_GENERATE_DH_KEY_PAIR(INT8U **priv, INT16U *priv_len, INT8U **pub,
+ return 0;
+ }
+
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ BIGNUM *dhp_bn, *dhg_bn;
++ if (NULL == (dhp_bn = BN_bin2bn(dh1536_p,sizeof(dh1536_p),NULL)))
++ {
++ DH_free(dh);
++ return 0;
++ }
++ if (NULL == (dhg_bn = BN_bin2bn(dh1536_g,sizeof(dh1536_g),NULL)))
++ {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ return 0;
++ }
++ if (!DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return 0;
++ }
++
++ // Obtain key pair
++ //
++ if (0 == DH_generate_key(dh))
++ {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return 0;
++ }
++
++ const BIGNUM *priv_key, *pub_key;
++ DH_get0_key(dh, &priv_key, &pub_key);
++
++ *priv_len = BN_num_bytes(priv_key);
++ *priv = (INT8U *)malloc(*priv_len);
++ BN_bn2bin(priv_key, *priv);
++
++ *pub_len = BN_num_bytes(pub_key);
++ *pub = (INT8U *)malloc(*pub_len);
++ BN_bn2bin(pub_key, *pub);
++
++ DH_set0_key(dh, (BIGNUM *) priv_key, (BIGNUM *) pub_key);
++
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++#else
+ // Convert binary to BIGNUM format
+ //
+ if (NULL == (dh->p = BN_bin2bn(dh1536_p,sizeof(dh1536_p),NULL)))
+@@ -174,6 +221,7 @@ INT8U PLATFORM_GENERATE_DH_KEY_PAIR(INT8U **priv, INT16U *priv_len, INT8U **pub,
+ BN_bn2bin(dh->pub_key, *pub);
+
+ DH_free(dh);
++#endif
+ // NOTE: This internally frees "dh->p" and "dh->q", thus no need for us
+ // to do anything else.
+
+@@ -206,6 +254,41 @@ INT8U PLATFORM_COMPUTE_DH_SHARED_SECRET(INT8U **shared_secret, INT16U *shared_se
+
+ // Convert binary to BIGNUM format
+ //
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ BIGNUM *dhp_bn, *dhg_bn;
++ if (NULL == (dhp_bn = BN_bin2bn(dh1536_p,sizeof(dh1536_p),NULL)))
++ {
++ DH_free(dh);
++ return 0;
++ }
++ if (NULL == (dhg_bn = BN_bin2bn(dh1536_g,sizeof(dh1536_g),NULL)))
++ {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ return 0;
++ }
++ if (!DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
++ DH_free(dh);
++ BN_free(dhp_bn);
++ BN_free(dhg_bn);
++ return 0;
++ }
++ if (NULL == (pub_key = BN_bin2bn(remote_pub, remote_pub_len, NULL)))
++ {
++ DH_free(dh);
++ return 0;
++ }
++
++ BIGNUM *priv_key;
++
++ if (NULL == (priv_key = BN_bin2bn(local_priv, local_priv_len, NULL)))
++ {
++ BN_clear_free(pub_key);
++ DH_free(dh);
++ return 0;
++ }
++ DH_set0_key(dh, (BIGNUM *) priv_key, NULL);
++#else
+ if (NULL == (dh->p = BN_bin2bn(dh1536_p,sizeof(dh1536_p),NULL)))
+ {
+ DH_free(dh);
+@@ -227,6 +310,7 @@ INT8U PLATFORM_COMPUTE_DH_SHARED_SECRET(INT8U **shared_secret, INT16U *shared_se
+ DH_free(dh);
+ return 0;
+ }
++#endif
+
+ // Allocate output buffer
+ //
+@@ -354,60 +438,101 @@ INT8U PLATFORM_HMAC_SHA256(INT8U *key, INT32U keylen, INT8U num_elem, INT8U **ad
+
+ INT8U PLATFORM_AES_ENCRYPT(INT8U *key, INT8U *iv, INT8U *data, INT32U data_len)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX * pCtx = EVP_CIPHER_CTX_new();
++ if (!pCtx) {
++ return 0;
++ }
++#else
+ EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX * pCtx = &ctx;
++#endif
++
+
+ int clen, len;
+ INT8U buf[AES_BLOCK_SIZE];
+
+- EVP_CIPHER_CTX_init(&ctx);
+- if (EVP_EncryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv) != 1)
++ EVP_CIPHER_CTX_init(pCtx);
++ if (EVP_EncryptInit_ex(pCtx, EVP_aes_128_cbc(), NULL, key, iv) != 1)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+ return 0;
+ }
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
++ EVP_CIPHER_CTX_set_padding(pCtx, 0);
+
+ clen = data_len;
+- if (EVP_EncryptUpdate(&ctx, data, &clen, data, data_len) != 1 || clen != (int) data_len)
++ if (EVP_EncryptUpdate(pCtx, data, &clen, data, data_len) != 1 || clen != (int) data_len)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+ return 0;
+ }
+
+ len = sizeof(buf);
+- if (EVP_EncryptFinal_ex(&ctx, buf, &len) != 1 || len != 0)
++ if (EVP_EncryptFinal_ex(pCtx, buf, &len) != 1 || len != 0)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+ return 0;
+ }
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_cleanup(pCtx);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+
+ return 1;
+ }
+
+ INT8U PLATFORM_AES_DECRYPT(INT8U *key, INT8U *iv, INT8U *data, INT32U data_len)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX * pCtx = EVP_CIPHER_CTX_new();
++ if (!pCtx) {
++ return 0;
++ }
++#else
+ EVP_CIPHER_CTX ctx;
++ EVP_CIPHER_CTX * pCtx = &ctx;
++#endif
+
+ int plen, len;
+ INT8U buf[AES_BLOCK_SIZE];
+
+- EVP_CIPHER_CTX_init(&ctx);
+- if (EVP_DecryptInit_ex(&ctx, EVP_aes_128_cbc(), NULL, key, iv) != 1)
++ EVP_CIPHER_CTX_init(pCtx);
++ if (EVP_DecryptInit_ex(pCtx, EVP_aes_128_cbc(), NULL, key, iv) != 1)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+ return 0;
+ }
+- EVP_CIPHER_CTX_set_padding(&ctx, 0);
++ EVP_CIPHER_CTX_set_padding(pCtx, 0);
+
+ plen = data_len;
+- if (EVP_DecryptUpdate(&ctx, data, &plen, data, data_len) != 1 || plen != (int) data_len)
++ if (EVP_DecryptUpdate(pCtx, data, &plen, data, data_len) != 1 || plen != (int) data_len)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+ return 0;
+ }
+
+ len = sizeof(buf);
+- if (EVP_DecryptFinal_ex(&ctx, buf, &len) != 1 || len != 0)
++ if (EVP_DecryptFinal_ex(pCtx, buf, &len) != 1 || len != 0)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+ return 0;
+ }
+- EVP_CIPHER_CTX_cleanup(&ctx);
++ EVP_CIPHER_CTX_cleanup(pCtx);
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ EVP_CIPHER_CTX_free(pCtx);
++#endif
+
+ return 1;
+ }
+diff --git a/src/al/src_linux/platform_os.c b/src/al/src_linux/platform_os.c
+index 9a04988..1ef1687 100644
+--- a/src/al/src_linux/platform_os.c
++++ b/src/al/src_linux/platform_os.c
+@@ -61,6 +61,7 @@
+ #include "platform_alme_server_priv.h"
+ #include "1905_l2.h"
+
++#include <signal.h> // SEGEV_THREAD
+ #include <stdlib.h> // free(), malloc(), ...
+ #include <string.h> // memcpy(), memcmp(), ...
+ #include <pthread.h> // threads and mutex functions
+--
+2.24.3 (Apple Git-128)
+
diff --git a/recipes-protocols/ieee1905/ieee1905_git.bb b/recipes-protocols/ieee1905/ieee1905_git.bb
new file mode 100644
index 0000000..4815540
--- /dev/null
+++ b/recipes-protocols/ieee1905/ieee1905_git.bb
@@ -0,0 +1,48 @@
+SUMMARY = "OpenSource IEEE1905.1a implementation"
+LICENSE = "BSD-2-Clause-Patent"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9cbc6eb40e7e82d67fbbce1734e6622b"
+
+DEPENDS = "openssl libpcap multiap-platform"
+S = "${WORKDIR}/git"
+
+SRC_URI = "git://github.com/TechnicolorEDGM/ieee1905.git;protocol=https \
+ file://0001-Added-support-for-RDK-flavour-compilation.patch \
+ "
+#rdk-port: <TBD> need to apply following patch accordingly
+# file://0002-Added-support-for-openssl-1.1.0-compilation.patch
+
+SRC_URI[md5sum] = "d0ca2c6f7cdc80102f404b75f8563b0f"
+SRC_URI[sha256sum] = "f9c8b5c3eba68b6cd4c8a92b07061487680d7d2ca93f1dcfe0093aa968e80389"
+
+SRCREV = "${AUTOREV}"
+
+S = "${WORKDIR}/git"
+
+CFLAGS_append = " \
+ "
+
+LDFLAGS_append = " \
+ -lpthread \
+ -lpcap \
+ -lcrypto \
+ -lrt \
+ "
+
+do_compile () {
+ PLATFORM=linux FLAVOUR=RDK make
+}
+
+do_install () {
+ # Installing header files and binaries
+ install -d ${D}${includedir}
+ install -m 0644 ${B}/src/al/src_independent/extensions/map/1905_lib.h ${D}${includedir}/1905_lib.h
+ install -d ${D}${bindir}
+ install -m 555 ${S}/output/al_entity ${D}/${bindir}/al_entity
+ install -m 555 ${S}/output/hle_entity ${D}/${bindir}/hle_entity
+}
+
+#Not installing for now
+#IMAGE_INSTALL += " ieee1905"
+
+FILES_${PN} += "${bindir}/al_entity"
+FILES_${PN} += "${bindir}/hle_entity"
diff --git a/recipes-protocols/pptp-linux/files/pptp-linux-turris.patch b/recipes-protocols/pptp-linux/files/pptp-linux-turris.patch
new file mode 100644
index 0000000..374f32c
--- /dev/null
+++ b/recipes-protocols/pptp-linux/files/pptp-linux-turris.patch
@@ -0,0 +1,10 @@
+--- pptp-1.8.0/pqueue.h 2019-03-12 11:40:16.546009234 +0000
++++ pptp-1.8.0_mod/pqueue.h 2019-03-12 11:41:48.305430386 +0000
+@@ -3,6 +3,7 @@
+
+ #include <time.h>
+ #include <sys/time.h>
++#include <sys/types.h>
+
+ /* wait this many seconds for missing packets before forgetting about them */
+ #define DEFAULT_PACKET_TIMEOUT 0.3
diff --git a/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bbappend b/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bbappend
new file mode 100644
index 0000000..7c26656
--- /dev/null
+++ b/recipes-protocols/pptp-linux/pptp-linux_1.8.0.bbappend
@@ -0,0 +1,4 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI += "file://pptp-linux-turris.patch"
+
+
diff --git a/recipes-protocols/rp-pppoe/files/rp-turris.patch b/recipes-protocols/rp-pppoe/files/rp-turris.patch
new file mode 100644
index 0000000..2a4dad3
--- /dev/null
+++ b/recipes-protocols/rp-pppoe/files/rp-turris.patch
@@ -0,0 +1,11 @@
+--- rp-pppoe-3.12/src/configure.in 2019-03-12 07:09:15.726956927 +0000
++++ rp-pppoe-3.12_mod/src/configure.in 2019-03-12 07:10:35.198460935 +0000
+@@ -25,7 +25,7 @@
+ dnl Checks for header files.
+ AC_HEADER_STDC
+ AC_HEADER_SYS_WAIT
+-AC_CHECK_HEADERS(fcntl.h sys/dlpi.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h netinet/if_ether.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h net/ethernet.h asm/types.h linux/if_packet.h linux/if_ether.h sys/socket.h sys/cdefs.h net/if.h net/if_dl.h net/if_ether.h net/if_types.h netinet/if_ether.h net/if_types.h net/if_dl.h)
++AC_CHECK_HEADERS(fcntl.h sys/dlpi.h sys/ioctl.h sys/time.h syslog.h unistd.h net/if_arp.h netinet/if_ether.h getopt.h sys/uio.h sys/param.h fcntl.h net/bpf.h netpacket/packet.h net/ethernet.h asm/types.h linux/if_packet.h sys/socket.h sys/cdefs.h net/if.h net/if_dl.h net/if_ether.h net/if_types.h netinet/if_ether.h net/if_types.h net/if_dl.h)
+ AC_CHECK_HEADERS(linux/if.h, [], [], [#include<sys/socket.h>])
+ AC_CHECK_HEADERS(linux/if_pppox.h, [], [],
+ [
diff --git a/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bbappend b/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bbappend
new file mode 100644
index 0000000..93c14bb
--- /dev/null
+++ b/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+SRC_URI += "file://rp-turris.patch"
+
diff --git a/recipes-rdkb/sysint-broadband/files/DCMscript.sh b/recipes-rdkb/sysint-broadband/files/DCMscript.sh
new file mode 100755
index 0000000..6dfc564
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/DCMscript.sh
@@ -0,0 +1,577 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+#
+
+. /etc/include.properties
+. /etc/device.properties
+source /etc/log_timestamp.sh
+source /lib/rdk/getpartnerid.sh
+source /lib/rdk/getaccountid.sh
+# Enable override only for non prod builds
+if [ "$BUILD_TYPE" != "prod" ] && [ -f $PERSISTENT_PATH/dcm.properties ]; then
+ . $PERSISTENT_PATH/dcm.properties
+else
+ . /etc/dcm.properties
+fi
+
+if [ -f /lib/rdk/utils.sh ]; then
+ . /lib/rdk/utils.sh
+fi
+
+if [ -f /etc/mount-utils/getConfigFile.sh ];then
+ . /etc/mount-utils/getConfigFile.sh
+fi
+SIGN_FILE="/tmp/.signedRequest_$$_`date +'%s'`"
+DIRECT_BLOCK_TIME=86400
+DIRECT_BLOCK_FILENAME="/tmp/.lastdirectfail_dcm"
+TFTP_SERVER_IP=/tmp/tftpip.txt
+export PATH=$PATH:/usr/bin:/bin:/usr/local/bin:/sbin:/usr/local/lighttpd/sbin:/usr/local/sbin
+export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/lib
+
+if [ -z $LOG_PATH ]; then
+ LOG_PATH="/rdklogs/logs"
+fi
+
+if [ -z $PERSISTENT_PATH ]; then
+ PERSISTENT_PATH="/nvram"
+fi
+
+TELEMETRY_PATH="$PERSISTENT_PATH/.telemetry"
+DCMFLAG="/tmp/.DCMSettingsFlag"
+DCM_LOG_FILE="$LOG_PATH/dcmscript.log"
+TELEMETRY_INOTIFY_FOLDER="/rdklogs/logs/"
+TELEMETRY_INOTIFY_EVENT="$TELEMETRY_INOTIFY_FOLDER/eventType.cmd"
+DCMRESPONSE="$PERSISTENT_PATH/DCMresponse.txt"
+TELEMETRY_TEMP_RESEND_FILE="/rdklogs/logs/.temp_resend.txt"
+
+PEER_COMM_ID="/tmp/elxrretyt.swr"
+
+TELEMETRY_PREVIOUS_LOG_COMPLETE="/tmp/.telemetry_previous_log_done"
+TELEMETRY_PREVIOUS_LOG="/tmp/.telemetry_previous_log"
+MAX_PREV_LOG_COMPLETE_WAIT=12
+
+IDLE_TIMEOUT=30
+
+# http header
+HTTP_HEADERS='Content-Type: application/json'
+## RETRY DELAY in secs
+RETRY_DELAY=60
+## RETRY COUNT
+RETRY_COUNT=3
+
+echo_t "Starting execution of DCMscript.sh"
+
+if [ $# -ne 5 ]; then
+ echo_t "Argument does not match"
+ echo 0 > $DCMFLAG
+ exit 1
+fi
+
+. $RDK_PATH/utils.sh
+
+echo "`/bin/timestamp` Starting execution of DCMscript.sh" >> $LOG_PATH/dcmscript.log
+#---------------------------------
+# Initialize Variables
+#---------------------------------
+# URL
+URL=$2
+tftp_server=$3
+reboot_flag=$4
+checkon_reboot=$5
+touch $TFTP_SERVER_IP
+echo_t "URL: "$URL
+echo_t "DCM_TFTP_SERVER: "$tftp_server >> $TFTP_SERVER_IP
+echo_t "BOOT_FLAG: "$reboot_flag
+echo_t "CHECK_ON_REBOOT: "$checkon_reboot
+rm -f $TELEMETRY_TEMP_RESEND_FILE
+
+conn_str="Direct"
+first_conn=useDirectRequest
+sec_conn=useCodebigRequest
+CodebigAvailable=0
+
+
+if [ -f "/tmp/DCMSettings.conf" ]
+then
+ Check_URL=`grep 'urn:settings:ConfigurationServiceURL' /tmp/DCMSettings.conf | cut -d '=' -f2 | head -n 1`
+ if [ -n "$Check_URL" ]
+ then
+ URL=`grep 'urn:settings:ConfigurationServiceURL' /tmp/DCMSettings.conf | cut -d '=' -f2 | head -n 1`
+ #last_char=`echo $URL | sed -e 's/\(^.*\)\(.$\)/\2/'`
+ last_char=`echo $URL | awk '$0=$NF' FS=`
+ if [ "$last_char" != "?" ]
+ then
+ URL="$URL?"
+ fi
+ fi
+fi
+# File to save curl response
+#FILENAME="$PERSISTENT_PATH/DCMresponse.txt"
+TELE_HTTP_CODE="$PERSISTENT_PATH/telemetry_http_code"
+# File to save http code
+HTTP_CODE="$PERSISTENT_PATH/http_code"
+rm -rf $HTTP_CODE
+# Cron job file name
+current_cron_file="$PERSISTENT_PATH/cron_file.txt"
+# Tftpboot Server Ip
+echo TFTP_SERVER: $tftp_server >> $LOG_PATH/dcmscript.log
+# Timeout value
+timeout=30
+default_IP=$DEFAULT_IP
+upload_protocol='TFTP'
+upload_httplink=$HTTP_UPLOAD_LINK
+
+#---------------------------------
+# Function declarations
+#---------------------------------
+
+## FW version from version.txt
+getFWVersion()
+{
+ #cat /version.txt | grep ^imagename:PaceX1 | grep -v image
+ verStr=`cat /version.txt | grep ^imagename: | cut -d ":" -f 2`
+ echo $verStr
+}
+
+## Identifies whether it is a VBN or PROD build
+getBuildType()
+{
+ echo $BUILD_TYPE
+}
+
+## Get ECM mac address
+getECMMacAddress()
+{
+ address=`getECMMac`
+ mac=`echo $address | tr -d ' ' | tr -d '"'`
+ echo $mac
+}
+
+## Get Receiver Id
+getReceiverId()
+{
+ if [ -f "$PERSISTENT_PATH/www/whitebox/wbdevice.dat" ]
+ then
+ ReceiverId=`cat $PERSISTENT_PATH/www/whitebox/wbdevice.dat`
+ echo "$ReceiverId"
+ else
+ echo " "
+ fi
+}
+
+## Get Controller Id
+getControllerId()
+{
+ echo "2504"
+}
+
+## Get ChannelMap Id
+getChannelMapId()
+{
+ echo "2345"
+}
+
+## Get VOD Id
+getVODId()
+{
+ echo "15660"
+}
+
+IsDirectBlocked()
+{
+ ret=0
+ if [ -f $DIRECT_BLOCK_FILENAME ]; then
+ modtime=$(($(date +%s) - $(date +%s -r $DIRECT_BLOCK_FILENAME)))
+ if [ "$modtime" -le "$DIRECT_BLOCK_TIME" ]; then
+ echo "DCM: Last direct failed blocking is still valid, preventing direct" >> $DCM_LOG_FILE
+ ret=1
+ else
+ echo "DCM: Last direct failed blocking has expired, removing $DIRECT_BLOCK_FILENAME, allowing direct" >> $DCM_LOG_FILE
+ rm -f $DIRECT_BLOCK_FILENAME
+ ret=0
+ fi
+ fi
+ return $ret
+}
+
+# Get the configuration of codebig settings
+get_Codebigconfig()
+{
+ # If GetServiceUrl not available, then only direct connection available and no fallback mechanism
+ if [ -f /usr/bin/GetServiceUrl ]; then
+ CodebigAvailable=1
+ fi
+
+ if [ "$CodebigAvailable" -eq "1" ]; then
+ CodeBigEnable=`dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.CodeBigFirst.Enable | grep true 2>/dev/null`
+ fi
+ if [ "$CodebigAvailable" -eq "1" ] && [ "x$CodeBigEnable" != "x" ] ; then
+ conn_str="Codebig"
+ first_conn=useCodebigRequest
+ sec_conn=useDirectRequest
+ fi
+
+ if [ "$CodebigAvailable" -eq 1 ]; then
+ echo_t "Xconf dcm : Using $conn_str connection as the Primary" >> $DCM_LOG_FILE
+ else
+ echo_t "Xconf dcm : Only $conn_str connection is available" >> $DCM_LOG_FILE
+ fi
+}
+
+# Direct connection Download function
+useDirectRequest()
+{
+ # Direct connection will not be tried if .lastdirectfail exists
+ IsDirectBlocked
+ if [ "$?" -eq "1" ]; then
+ return 1
+ fi
+ count=0
+ while [ "$count" -lt "$RETRY_COUNT" ] ; do
+ echo_t " DCM connection type DIRECT"
+ CURL_CMD="curl -w '%{http_code}\n' --tlsv1.2 --interface $EROUTER_INTERFACE $addr_type --connect-timeout $timeout -m $timeout -o \"$FILENAME\" '$HTTPS_URL$JSONSTR'"
+ echo_t "CURL_CMD: $CURL_CMD" >> $DCM_LOG_FILE
+ HTTP_CODE=`result= eval $CURL_CMD`
+ ret=$?
+
+ sleep 2
+ http_code=$(echo "$HTTP_CODE" | awk -F\" '{print $1}' )
+ [ "x$http_code" != "x" ] || http_code=0
+ echo_t "ret = $ret http_code: $http_code" >> $DCM_LOG_FILE
+
+ # log security failure
+ case $ret in
+ 35|51|53|54|58|59|60|64|66|77|80|82|83|90|91)
+ echo_t "DCM Direct Connection Failure Attempt:$count - ret:$ret http_code:$http_code" >> $DCM_LOG_FILE
+ ;;
+ esac
+ if [ $http_code -eq 200 ]; then
+ echo_t "Direct connection success - ret:$ret http_code:$http_code" >> $DCM_LOG_FILE
+ return 0
+ elif [ $http_code -eq 404 ]; then
+ echo "`Timestamp` Direct connection Received HTTP $http_code Response from Xconf Server. Retry logic not needed" >> $DCM_LOG_FILE
+ bypass_conn=1
+ return 0 # Do not return 1, if retry for next conn type is not to be done
+ else
+ if [ "$ret" -eq 0 ]; then
+ echo_t "DCM Direct Connection Failure Attempt:$count - ret:$ret http_code:$http_code" >> $DCM_LOG_FILE
+ fi
+ rm -rf $DCMRESPONSE
+ fi
+ count=$((count + 1))
+ sleep $RETRY_DELAY
+ done
+ echo_t "DCM :Retries for Direct connection exceeded " >> $DCM_LOG_FILE
+ [ "$CodebigAvailable" -ne "1" ] || [ -f $DIRECT_BLOCK_FILENAME ] || touch $DIRECT_BLOCK_FILENAME
+ return 1
+}
+
+# Codebig connection Download function
+useCodebigRequest()
+{
+ # Do not try Codebig if CodebigAvailable != 1 (GetServiceUrl not there)
+ if [ "$CodebigAvailable" -eq "0" ] ; then
+ echo "DCM : Only direct connection Available" >> $DCM_LOG_FILE
+ return 1
+ fi
+ count=0
+ while [ "$count" -lt "$RETRY_COUNT" ] ; do
+ SIGN_CMD="GetServiceUrl 3 \"$JSONSTR\""
+ eval $SIGN_CMD > $SIGN_FILE
+ CB_SIGNED_REQUEST=`cat $SIGN_FILE`
+ rm -f $SIGN_FILE
+ CURL_CMD="curl -w '%{http_code}\n' --tlsv1.2 --interface $EROUTER_INTERFACE $addr_type --connect-timeout $timeout -m $timeout -o \"$FILENAME\" \"$CB_SIGNED_REQUEST\""
+ echo_t " DCM connection type CODEBIG at `echo "$CURL_CMD" | sed -ne 's#.*\(https:.*\)?.*#\1#p'`" >> $DCM_LOG_FILE
+ echo_t "CURL_CMD: `echo "$CURL_CMD" | sed -ne 's#oauth_consumer_key=.*#<hidden>#p'`" >> $DCM_LOG_FILE
+ HTTP_CODE=`result= eval $CURL_CMD`
+ curlret=$?
+ http_code=$(echo "$HTTP_CODE" | awk -F\" '{print $1}' )
+ [ "x$http_code" != "x" ] || http_code=0
+ echo_t "ret = $curlret http_code: $http_code" >> $DCM_LOG_FILE
+
+ # log security failure
+ case $curlret in
+ 35|51|53|54|58|59|60|64|66|77|80|82|83|90|91)
+ echo_t "DCM Codebig Connection Failure Attempt: $count - ret:$curlret http_code:$http_code" >> $DCM_LOG_FILE
+ ;;
+ esac
+ if [ "$http_code" -eq 200 ]; then
+ echo_t "Codebig connection success - ret:$curlret http_code:$http_code" >> $DCM_LOG_FILE
+ return 0
+ elif [ "$http_code" -eq 404 ]; then
+ echo_t "DCM Codebig connection Received HTTP $http_code Response from Xconf Server. Retry logic not needed" >> $DCM_LOG_FILE
+ bypass_conn=1
+ return 0 # Do not return 1, if retry for next conn type is not to be done
+ else
+ if [ "$curlret" -eq 0 ]; then
+ echo_t "DCM Codebig Connection Failure Attempt:$count - ret:$curlret http_code:$http_code" >> $DCM_LOG_FILE
+ fi
+ rm -rf $DCMRESPONSE
+ fi
+ count=$((count + 1))
+ sleep $RETRY_DELAY
+ done
+ echo_t "Retries for Codebig connection exceeded " >> $DCM_LOG_FILE
+ return 1
+}
+
+sendHttpRequestToServer()
+{
+ resp=0
+ FILENAME=$1
+ URL=$2
+ echo "filename--args in sendHttpRequestToServer-------"$FILENAME
+ echo "url---args in sendHttpRequestToServer------"$URL
+
+ estbMacAddress=`ifconfig erouter0 | grep HWaddr | cut -c39-55`
+ JSONSTR=$estbMacAddress
+ CURL_CMD="curl -w "%{http_code}" '$URL?estbMacAddress=$JSONSTR&model=$MODEL_NAME' -o $DCMRESPONSE >> /tmp/telehttpcode.txt "
+ echo "------CURL_CMD:"$CURL_CMD
+
+ # Execute curl command
+ result= eval $CURL_CMD > $TELE_HTTP_CODE
+ #echo "Processing $FILENAME"
+ sleep $timeout
+ echo "sleep for :------------------"$timeout
+ # Get the http_code
+ http_code=$(awk -F\" '{print $1}' /tmp/telehttpcode.txt)
+ #start of pokuru
+
+if [ "$http_code" != "200" ]; then
+ #Added for retry - START
+ rm -rf /tmp/telehttpcode.txt
+ rm -rf $DCMRESPONSE
+
+ xconfRetryCount=0
+ while [ $xconfRetryCount -lt 2 ]
+ do
+ echo "Trying to Retry connection with XCONF server..."
+
+ CURL_CMD="curl -w "%{http_code}" '$URL?estbMacAddress=$JSONSTR&model=$MODEL_NAME' -o $DCMRESPONSE >> /tmp/telehttpcode.txt "
+
+ result= eval $CURL_CMD
+
+ http_code_retry=$(awk -F\" '{print $1}' /tmp/telehttpcode.txt)
+
+ if [ "$http_code_retry" != "200" ]; then
+ echo "Error in establishing communication with xconf server."
+ if [ $xconfRetryCount -ne 0 ]; then sleep 30; fi
+ rm -f /tmp/telehttpcode.txt
+ rm -rf $DCMRESPONSE
+
+ else
+ echo "After retries...No error in curl command and curl http code is:"$http_code_retry
+ resp=0
+ break
+ fi
+
+ xconfRetryCount=`expr $xconfRetryCount + 1`
+ done
+ echo "xconf retry count is:"$xconfRetryCount
+ if [ $xconfRetryCount -eq 2 ]; then
+ echo "No xconf comm ,exiting script"
+ startdcmEnd=`ps -ef | grep -i "StartDCM.sh" | head -n 1`
+ kill -9 $startdcmEnd
+ exit 0
+ fi
+ #Added for retry - END
+ #echo "Error from cloud exiting,check in upcoming reboot-------------"
+ #exit 0
+else
+ echo "No error in curl command and curl http code is:"$http_code
+fi
+ #end of pokuru
+ echo "----------ret http_code:"$http_code
+ echo "----------ret http_code_retry:"$http_code_retry
+
+ if [ $http_code -ne 200 ] ; then
+ if [ $http_code_retry -ne 200 ]; then
+ echo "curl HTTP request failed http_code :"$http_code
+ echo "curl HTTP request failed http_code_retry :"$http_code_retry
+ #pokuru rm -rf /tmp/DCMSettings.conf
+ resp=1
+ fi
+ else
+ echo "curl HTTP request success. Processing response.."
+ resp=0
+ fi
+ echo "----------res:"$resp
+ return $resp
+}
+
+dropbearRecovery()
+{
+ dropbearPid=`ps | grep -i dropbear | grep "$ARM_INTERFACE_IP" | grep -v grep`
+ if [ -z "$dropbearPid" ]; then
+ echo "Dropbear instance is missing ... Recovering dropbear !!! " >> $DCM_LOG_FILE
+ DROPBEAR_PARAMS_1="/tmp/.dropbear/dropcfg1$$"
+ DROPBEAR_PARAMS_2="/tmp/.dropbear/dropcfg2$$"
+ if [ ! -d '/tmp/.dropbear' ]; then
+ echo "wan_ssh.sh: need to create dropbear dir !!! " >> $DCM_LOG_FILE
+ mkdir -p /tmp/.dropbear
+ fi
+ echo "wan_ssh.sh: need to create dropbear files !!! " >> $DCM_LOG_FILE
+ getConfigFile $DROPBEAR_PARAMS_1
+ getConfigFile $DROPBEAR_PARAMS_2
+ dropbear -r $DROPBEAR_PARAMS_1 -r $DROPBEAR_PARAMS_2 -E -s -p $ARM_INTERFACE_IP:22 &
+ sleep 2
+ fi
+ rm -rf /tmp/.dropbear/*
+}
+
+# Safe wait for IP acquisition
+loop=1
+counter=0
+while [ $loop -eq 1 ]
+do
+ estbIp=`ifconfig erouter0 | grep -i inet | cut -d ":" -f2 | cut -d " " -f1`
+ if [ "X$estbIp" == "X" ]; then
+ echo_t "waiting for IP"
+ sleep 2
+ let counter++
+ else
+ echo "got IP in erouter0-------------------"
+ loop=0
+ fi
+done
+
+ ret=1
+ if [ "$estbIp" == "$default_IP" ] ; then
+ ret=0
+ fi
+ if [ $checkon_reboot -eq 1 ]; then
+ echo "call sendHttpRequestToServer-------------------"
+ sendHttpRequestToServer $DCMRESPONSE $URL
+ ret=$?
+ echo_t "sendHttpRequestToServer returned "$ret
+ else
+ ret=0
+ echo_t "sendHttpRequestToServer has not executed since the value of 'checkon_reboot' is $checkon_reboot" >> $DCM_LOG_FILE
+ fi
+
+ echo "after sendHttpRequestToServer-----sleep for 5 sec-------------"
+ sleep 5
+
+
+ if [ $ret -ne 0 ]; then
+ echo_t "Processing response failed." >> $DCM_LOG_FILE
+ rm -rf $FILENAME
+ echo_t "count = $count. Sleeping $RETRY_DELAY seconds ..." >> $DCM_LOG_FILE
+ exit 1
+ fi
+
+ if [ "x$DCA_MULTI_CORE_SUPPORTED" == "xyes" ]; then
+ dropbearRecovery
+
+ isPeriodicFWCheckEnabled=`syscfg get PeriodicFWCheck_Enable`
+ if [ "$isPeriodicFirmwareEnabled" == "true" ]; then
+ echo "XCONF SCRIPT : Calling XCONF Client firmwareSched for the updated time"
+ sh /etc/firmwareSched.sh &
+ fi
+
+ isAxb6Device="no"
+ if [ "$MODEL_NUM" == "TG3482G" ]; then
+ isNvram2Mounted=`grep nvram2 /proc/mounts`
+ if [ "$isNvram2Mounted" == "" -a -d "/nvram/logs" ]; then
+ isAxb6Device="yes"
+ fi
+ fi
+
+ if [ "x$isAxb6Device" == "xno" ]; then
+ # wait for telemetry previous log to be copied to atom
+ loop=1
+ while [ $loop -eq 1 ]
+ do
+ if [ ! -f $TELEMETRY_PREVIOUS_LOG ]; then
+ echo_t "waiting for previous log file" >> $DCM_LOG_FILE
+ sleep 10
+ else
+ echo_t "scp previous logs from arm to atom done, so breaking loop" >> $DCM_LOG_FILE
+ loop=0
+ fi
+ done
+
+ ### Trigger an inotify event on ATOM
+ echo "Telemetry run for previous log trigger to atom" >> $DCM_LOG_FILE
+ GetConfigFile $PEER_COMM_ID
+ ssh -I $IDLE_TIMEOUT -i $PEER_COMM_ID root@$ATOM_INTERFACE_IP "/bin/echo 'xconf_update' > $TELEMETRY_INOTIFY_EVENT" > /dev/null 2>&1
+ rm -f $PEER_COMM_ID
+
+ fi
+
+ # wait for telemetry previous log to be completed upto 2 mins . Avoid indefenite loops
+ loop=1
+ count=0
+ while [ "$loop" = "1" ]
+ do
+ if [ ! -f $TELEMETRY_PREVIOUS_LOG_COMPLETE ]; then
+ echo_t "waiting for previous log done file" >> $DCM_LOG_FILE
+ sleep 10
+ if [ $count -ge $MAX_PREV_LOG_COMPLETE_WAIT ]; then
+ echo_t "Max wait for previous log done file reached. Proceeding with new config from xconf " >> $DCM_LOG_FILE
+ loop=0
+ fi
+ else
+ echo_t "Telemetry run for previous log done, so breaking loop" >> $DCM_LOG_FILE
+ loop=0
+ fi
+ count=`expr $count + 1`
+ done
+
+ GetConfigFile $PEER_COMM_ID
+ scp -i $PEER_COMM_ID $DCMRESPONSE root@$ATOM_INTERFACE_IP:$PERSISTENT_PATH > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ scp -i $PEER_COMM_ID $DCMRESPONSE root@$ATOM_INTERFACE_IP:$PERSISTENT_PATH > /dev/null 2>&1
+ fi
+ echo "Signal atom to pick the XCONF config data $DCMRESPONSE and schedule telemetry !!! " >> $DCM_LOG_FILE
+ ## Trigger an inotify event on ATOM
+ ssh -I $IDLE_TIMEOUT -i $PEER_COMM_ID root@$ATOM_INTERFACE_IP "/bin/echo 'xconf_update' > $TELEMETRY_INOTIFY_EVENT" > /dev/null 2>&1
+ rm -f $PEER_COMM_ID
+ else
+ echo "opensource platforms----------------------------"
+
+ isPeriodicFWCheckEnabled=`syscfg get PeriodicFWCheck_Enable`
+ if [ "$isPeriodicFirmwareEnabled" == "true" ]; then
+ echo "XCONF SCRIPT : Calling XCONF Client firmwareSched for the updated time"
+ sh /etc/firmwareSched.sh &
+ fi
+
+ # wait for telemetry previous log to be completed
+ loop=1
+ count=0
+ while [ "$loop" = "1" ]
+ do
+ echo "TELEMETRY_PREVIOUS_LOG_COMPLETE--------------"$TELEMETRY_PREVIOUS_LOG_COMPLETE
+ if [ ! -f $TELEMETRY_PREVIOUS_LOG_COMPLETE ]; then
+ echo_t "waiting for previous log done file"
+ sleep 10
+ if [ $count -ge $MAX_PREV_LOG_COMPLETE_WAIT ]; then
+ echo_t "Max wait for previous log done file reached. Proceeding with new config from xconf "
+ loop=0
+ fi
+ else
+ echo_t "Telemetry run for previous log done, so breaking loop"
+ loop=0
+ fi
+ count=`expr $count + 1`
+ done
+ echo "before calling dca_utility start of TELEMETRY LOGIC-----------------"
+ sh /lib/rdk/dca_utility.sh 1 &
+ fi
diff --git a/recipes-rdkb/sysint-broadband/files/StartDCM.sh b/recipes-rdkb/sysint-broadband/files/StartDCM.sh
new file mode 100755
index 0000000..70655b6
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/StartDCM.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+#
+##################################################################
+## Script to start Device Configuration Management script
+## Author: Ajaykumar/Shakeel/Suraj
+##################################################################
+. /etc/include.properties
+
+
+if [ -f "$RDK_PATH/DCMscript.sh" ]
+then
+ if [ -f "$TELEMETRY_JSON_RESPONSE" ]; then
+ echo "remove previous json resp"
+ rm -f $TELEMETRY_JSON_RESPONSE
+ rm -f $PERSISTENT_PATH/*TELE*
+ fi
+ sh /lib/rdk/DCMscript.sh $DCM_LOG_SERVER $DCM_LOG_SERVER_URL $LOG_SERVER 0 1 >> /rdklogs/logs/telemetry.log &
+ sleep 10
+ fileRetryCount=0
+ while [ $fileRetryCount -ne 120 ]
+ do
+ echo "Trying to check if rtl_json files exists ..."
+ if [ -f "/nvram/rtl_json.txt" ]; then
+ echo "files exists !!!!..."
+ #sh $RDK_PATH/DCMscript-log.sh $DCM_LOG_SERVER $DCM_LOG_SERVER_URL $LOG_SERVER 0 1 >> /rdklogs/logs/logupload.log &
+ sleep 5
+ proUpdel=`cat /tmp/DCMSettings.conf | grep -i uploadRepository:uploadProtocol | tr -dc '"' |wc -c`
+ echo "number of proUPdel:"$proUpdel
+ #proUpdel=$((proUpdel - 1))
+ uploadProto=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d '"' -f$proUpdel`
+ echo "Upload protocol is:"$uploadProto
+ if [ "$uploadProto" != "TFTP" ]; then
+ HTTPLOGUPLOADURL=`cat /tmp/DCMSettings.conf | grep -i "urn:settings:LogUploadSettings:RepositoryURL" | cut -d "=" -f2`
+ if [ "$HTTPLOGUPLOADURL" == "" ]; then
+ echo "No HTTP URL configured in xconf,going with internal one !!"
+ HTTPLOGUPLOADURL=$DCM_LA_SERVER_URL
+ fi
+ echo "HTTPURL:"$HTTPLOGUPLOADURL
+ sh $RDK_PATH/uploadSTBLogs.sh $HTTPLOGUPLOADURL 1 1 1 0 0 &
+ break
+ else
+ delimnr=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | tr -dc ':' |wc -c`
+ echo "number of deli:"$delimnr
+ delimnr=$((delimnr - 1))
+ TFTPIP=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d ":" -f$delimnr | cut -d '"' -f 2`
+ echo "TFTPIP:"$TFTPIP
+ sleep 5
+ sh $RDK_PATH/uploadSTBLogs.sh $TFTPIP 1 1 1 0 0 &
+ break
+ fi
+ else
+ echo "still file is not there sleep for 5 sec"$fileRetryCount
+ sleep 5
+ fi
+ fileRetryCount=`expr $fileRetryCount + 1`
+ done
+else
+ echo "$RDK_PATH/DCMscript.sh file not found."
+fi
diff --git a/recipes-rdkb/sysint-broadband/files/TurrisFwUpgrade.sh b/recipes-rdkb/sysint-broadband/files/TurrisFwUpgrade.sh
new file mode 100755
index 0000000..e24e244
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/TurrisFwUpgrade.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+
+if [ $1 ] ; then
+ echo "Usage '/lib/rdk/FwUgrade.sh'"
+ echo "Note: New images should be downloaded in /tmp directory"
+ exit 1
+fi
+
+check ()
+{
+ if [ $? != 0 ]; then
+ echo $*
+ exit 1
+ fi
+}
+
+ls /tmp/zImage* >/dev/null
+check "No new image present in /tmp directory"
+
+BootPartition="/dev/mmcblk0p1"
+NewTurrisModel=1
+
+ActiveRootPartition=`mount | grep "/" -w | cut -d' ' -f1`
+if [ $ActiveRootPartition == "/dev/mmcblk0p2" ]; then
+ TargetRootPartition="/dev/mmcblk0p3"
+elif [ $ActiveRootPartition == "/dev/mmcblk0p3" ]; then
+ TargetRootPartition="/dev/mmcblk0p2"
+elif [ $ActiveRootPartition == "/dev/mmcblk0p5" ]; then
+ TargetRootPartition="/dev/mmcblk0p7"
+ BootPartition="/dev/mmcblk0p3"
+ NewTurrisModel=0
+else ##if $ActiveRootPartition is "/dev/mmcblk0p7"
+ TargetRootPartition="/dev/mmcblk0p5"
+ BootPartition="/dev/mmcblk0p3"
+ NewTurrisMode=0
+fi
+echo "ActiveRootPartition: $ActiveRootPartition"
+echo "TargetRootPartition: $TargetRootPartition"
+echo "BootPartition: $BootPartition"
+
+umount /mnt 2>/dev/null
+echo y | mkfs.ext2 $TargetRootPartition
+check "Error in formatting $TargetRootPartition"
+
+mount $TargetRootPartition /mnt
+check "Error in mounting $TargetRootPartition"
+
+tar -xzf /tmp/*.tar.gz -C /mnt
+check "Error in unpacking new rootfs"
+
+umount /mnt
+check "Error in unmounting"
+echo "New rootfs is loaded in $TargetRootPartition"
+
+mount $BootPartition /mnt/
+check "Error in mounting $BootPartition"
+
+mv /mnt/zImage /zImage_old
+cp /tmp/zImage* /mnt/zImage
+if [ $? != 0 ]; then
+echo "Error in copying zImage. Falling back."
+mv /zImage_old /mnt/zImage
+exit 1
+fi
+
+if [ $NewTurrisModel -eq 1 ]; then
+ if [ $TargetRootPartition == "/dev/mmcblk0p2" ]; then
+ cp /boot-main.scr /mnt/boot.scr
+ else
+ cp /boot-alt.scr /mnt/boot.scr
+ fi
+else
+ fw_setenv yocto_bootargs earlyprintk console=ttyS0,115200 root=$TargetRootPartition rootfstype=ext2 rw rootwait
+fi
diff --git a/recipes-rdkb/sysint-broadband/files/commonUtils.sh b/recipes-rdkb/sysint-broadband/files/commonUtils.sh
new file mode 100755
index 0000000..86c2138
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/commonUtils.sh
@@ -0,0 +1,107 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+#
+. /etc/include.properties
+. /etc/device.properties
+
+REBOOTLOG="$LOG_PATH/ocapri_log.txt"
+export PATH=$PATH:/sbin:/usr/sbin
+CORE_LOG="$LOG_PATH/core_log.txt"
+
+#This is need to set core path for yocto builds
+if [ -f /etc/os-release ]; then
+ export CORE_PATH="/var/lib/systemd/coredump/"
+fi
+
+Timestamp()
+{
+ date +"%Y-%m-%d %T"
+}
+
+resetRebootFlag()
+{
+ message=$1
+ echo `Timestamp` 'Rebooting the box'>>$REBOOTLOG;
+ echo 0 > /opt/.rebootFlag
+ echo `/bin/timestamp` ------------ $message ----------------- >> $REBOOTLOG
+}
+
+# Return system uptime in seconds
+Uptime()
+{
+ cat /proc/uptime | awk '{ split($1,a,"."); print a[1]; }'
+}
+
+# get eSTB IP address
+getIPAddress()
+{
+ if [ -f /tmp/estb_ipv6 ]; then
+ ifconfig -a $DEFAULT_ESTB_INTERFACE | grep inet6 | tr -s " " | grep -v Link | cut -d " " -f4 | cut -d "/" -f1 | head -n1
+ else
+ ifconfig -a $ESTB_INTERFACE | grep inet | grep -v inet6 | tr -s " " | cut -d ":" -f2 | cut -d " " -f1 | head -n1
+ fi
+
+}
+
+## get eSTB mac address
+getMacAddress()
+{
+ ifconfig -a $ESTB_INTERFACE | grep $ESTB_INTERFACE | tr -s ' ' | cut -d ' ' -f5
+}
+
+getMacAddressOnly()
+{
+ ifconfig -a $ESTB_INTERFACE | grep $ESTB_INTERFACE | tr -s ' ' | cut -d ' ' -f5 | sed 's/://g'
+}
+
+# argument is maximum time to wait in seconds
+waitForDumpCompletion()
+{
+ waitTime=$1
+ while [[ `dumpInProcess` == 'true' ]];
+ do
+ echo "Waiting for core dump completion." >> $CORE_LOG
+ count=`expr $count + 1`
+ sleep 1
+ if [ $count -gt $waitTime ]; then
+ echo "Core dump creation is taking more time than expected. Returning." >> $CORE_LOG
+ return
+ fi
+ done
+}
+
+dumpInProcess()
+{
+ if [[ -n "`ls $CORE_PATH/*.gz.tmp 2>/dev/null`" ]]; then
+ echo 'true'
+ else
+ echo 'false'
+ fi
+}
+
+haveCoreToUpload()
+{
+ if [[ -n "`ls $CORE_PATH/*.gz.tmp 2>/dev/null`" ]] || [[ -n "`ls $CORE_PATH/*.gz 2>/dev/null`" ]]; then
+ echo 'true'
+ else
+ echo 'false'
+ fi
+}
+
diff --git a/recipes-rdkb/sysint-broadband/files/dcaSplunkUpload.sh b/recipes-rdkb/sysint-broadband/files/dcaSplunkUpload.sh
new file mode 100755
index 0000000..246a861
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/dcaSplunkUpload.sh
@@ -0,0 +1,546 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2016 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+
+
+####
+## This script will be invoked upon receiving events from ATOM when processed telemetry dat is available for upload
+## This cript is expected to pull the
+####
+
+. /etc/include.properties
+. /etc/device.properties
+
+if [ -f /lib/rdk/utils.sh ]; then
+ . /lib/rdk/utils.sh
+fi
+source /etc/log_timestamp.sh
+TELEMETRY_PATH="$PERSISTENT_PATH/.telemetry"
+TELEMETRY_RESEND_FILE="$PERSISTENT_PATH/.resend.txt"
+TELEMETRY_TEMP_RESEND_FILE="$PERSISTENT_PATH/.temp_resend.txt"
+
+TELEMETRY_PROFILE_DEFAULT_PATH="/tmp/DCMSettings.conf"
+TELEMETRY_PROFILE_RESEND_PATH="$PERSISTENT_PATH/.DCMSettings.conf"
+TELEMETRY_TFTP_UPLOAD_JSON_FILE="$PERSISTENT_PATH/tftp_json.txt"
+
+RTL_LOG_FILE="$LOG_PATH/dcmscript.log"
+
+HTTP_FILENAME="$TELEMETRY_PATH/dca_httpresult.txt"
+
+DCMRESPONSE="$PERSISTENT_PATH/DCMresponse.txt"
+
+PEER_COMM_ID="/tmp/elxrretyt.swr"
+
+#pokuru if [ ! -f /usr/bin/GetConfigFile ];then
+ #pokuru echo "Error: GetConfigFile Not Found"
+ #pokuru exit 127
+#pokuru fi
+
+SIGN_FILE="/tmp/.signedRequest_$$_`date +'%s'`"
+DIRECT_BLOCK_TIME=86400
+DIRECT_BLOCK_FILENAME="/tmp/.lastdirectfail_dca"
+
+SLEEP_TIME_FILE="/tmp/.rtl_sleep_time.txt"
+#MAX_LIMIT_RESEND=2
+# Max backlog queue set to 5, after which the resend file will discard subsequent entries
+MAX_CONN_QUEUE=5
+DIRECT_RETRY_COUNT=2
+
+ignoreResendList="false"
+
+# exit if an instance is already running
+if [ ! -f /tmp/.dca-splunk.upload ];then
+ # store the PID
+ echo $$ > /tmp/.dca-splunk.upload
+else
+ pid=`cat /tmp/.dca-splunk.upload`
+ if [ -d /proc/$pid ];then
+ echo_t "dca : previous instance of dcaSplunkUpload.sh is running."
+ ignoreResendList="true"
+ # Cannot exit as triggers can be from immediate log upload
+ else
+ rm -f /tmp/.dca-splunk.upload
+ echo $$ > /tmp/.dca-splunk.upload
+ fi
+fi
+
+conn_type_used="" # Use this to check the connection success, else set to fail
+conn_type="Direct" # Use this to check the connection success, else set to fail
+first_conn=useDirectRequest
+sec_conn=useCodebigRequest
+CodebigAvailable=0
+
+CURL_TIMEOUT=30
+TLS="--tlsv1.2"
+
+mkdir -p $TELEMETRY_PATH
+
+# Processing Input Args
+inputArgs=$1
+
+# dca_utility.sh does not uses TELEMETRY_PROFILE_RESEND_PATH, to hardwired to TELEMETRY_PROFILE_DEFAULT_PATH
+[ "x$sendInformation" != "x" ] || sendInformation=1
+if [ "$sendInformation" -ne 1 ] ; then
+ TELEMETRY_PROFILE_PATH=$TELEMETRY_PROFILE_RESEND_PATH
+else
+ TELEMETRY_PROFILE_PATH=$TELEMETRY_PROFILE_DEFAULT_PATH
+fi
+
+echo "Telemetry Profile File Being Used : $TELEMETRY_PROFILE_PATH" >> $RTL_LOG_FILE
+
+#Adding support for opt override for dcm.properties file
+if [ "$BUILD_TYPE" != "prod" ] && [ -f $PERSISTENT_PATH/dcm.properties ]; then
+ . $PERSISTENT_PATH/dcm.properties
+else
+ . /etc/dcm.properties
+fi
+TelemetryNewEndpointAvailable=0
+getTelemetryEndpoint() {
+ DEFAULT_DCA_UPLOAD_URL="$DCA_UPLOAD_URL"
+ TelemetryEndpoint=`dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TelemetryEndpoint.Enable | grep value | awk '{print $5}'`
+ TelemetryEndpointURL=""
+ if [ "x$TelemetryEndpoint" = "xtrue" ]; then
+ TelemetryEndpointURL=`dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.TelemetryEndpoint.URL | grep value | awk '{print $5}'`
+ if [ ! -z "$TelemetryEndpointURL" ]; then
+ DCA_UPLOAD_URL="https://$TelemetryEndpointURL"
+ echo_t "dca upload url from RFC is $TelemetryEndpointURL" >> $RTL_LOG_FILE
+ TelemetryNewEndpointAvailable=1
+ fi
+ else
+ if [ -f "$DCMRESPONSE" ]; then
+ TelemetryEndpointURL=`grep '"uploadRepository:URL":"' $DCMRESPONSE | awk -F 'uploadRepository:URL":' '{print $NF}' | awk -F '",' '{print $1}' | sed 's/"//g' | sed 's/}//g'`
+
+ if [ ! -z "$TelemetryEndpointURL" ]; then
+ DCA_UPLOAD_URL="$TelemetryEndpointURL"
+ echo_t "dca upload url from dcmresponse is $TelemetryEndpointURL" >> $RTL_LOG_FILE
+ fi
+ fi
+ fi
+
+ if [ -z "$TelemetryEndpointURL" ]; then
+ DCA_UPLOAD_URL="$DEFAULT_DCA_UPLOAD_URL"
+ fi
+}
+
+getTelemetryEndpoint
+
+if [ -z $DCA_UPLOAD_URL ]; then
+ echo_t "dca upload url read from dcm.properties is NULL"
+ exit 1
+fi
+
+pidCleanup()
+{
+ # PID file cleanup
+ if [ -f /tmp/.dca-splunk.upload ];then
+ rm -rf /tmp/.dca-splunk.upload
+ fi
+}
+
+IsDirectBlocked()
+{
+ ret=0
+ # Temporarily disabling blocking of direct connection due to increased load on Codebig servers.
+ return $ret
+}
+
+# Get the configuration of codebig settings
+get_Codebigconfig()
+{
+ # If GetServiceUrl not available, then only direct connection available and no fallback mechanism
+ if [ -f /usr/bin/GetServiceUrl ]; then
+ CodebigAvailable=1
+ fi
+ if [ "$CodebigAvailable" -eq "1" ]; then
+ CodeBigEnable=`dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.CodeBigFirst.Enable | grep true 2>/dev/null`
+ fi
+ if [ "$CodebigAvailable" -eq "1" ] && [ "x$CodeBigEnable" != "x" ] ; then
+ conn_type="Codebig"
+ first_conn=useCodebigRequest
+ sec_conn=useDirectRequest
+ fi
+
+ if [ "$CodebigAvailable" -eq 1 ]; then
+ echo_t "dca : Using $conn_type connection as the Primary" >> $RTL_LOG_FILE
+ else
+ echo_t "dca : Only $conn_type connection is available" >> $RTL_LOG_FILE
+ fi
+}
+
+# Direct connection Download function
+useDirectRequest()
+{
+ # Direct connection will not be tried if .lastdirectfail exists
+ IsDirectBlocked
+ if [ "$?" -eq "1" ]; then
+ return 1
+ fi
+ echo_t "dca$2: Using Direct commnication"
+ proUpdel=`cat /tmp/DCMSettings.conf | grep -i uploadRepository:uploadProtocol | tr -dc '"' |wc -c`
+ echo "number of proUPdel1:"$proUpdel
+ #proUpdel=$((proUpdel - 1))
+ uploadProtocoltel=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d '"' -f$proUpdel`
+ echo "Upload protocol telemetry is:"$uploadProtocoltel
+ if [ "$uploadProtocoltel" != "TFTP" ]; then
+ echo "before HTTP upload"
+ delimhttp=`cat /tmp/DCMSettings.conf | grep -i uploadRepository:uploadProtocol | tr -dc '"' |wc -c`
+ echo "number of httpdeli:"$delimhttp
+ delimhttp=$((delimhttp - 4))
+ HTTPURL=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d '"' -f$delimhttp`
+ if [ "$HTTPURL" == "" ]; then
+ echo "No HTTP URL configured in xconf,going with internal one !!"
+ HTTPURL=$DCM_HTTP_SERVER_URL
+ fi
+ echo "HTTPTELEMETRYURL:"$HTTPURL
+ CURL_CMD="curl --tlsv1.2 -w '%{http_code}\n' -H \"Accept: application/json\" -H \"Content-type: application/json\" -X POST -d @/nvram/rtl_json.txt '$HTTPURL' --connect-timeout 30 -m 30"
+ echo "------CURL_CMD:"$CURL_CMD
+ HTTP_CODE=`result= eval $CURL_CMD`
+ http_code=$(echo "$HTTP_CODE" | awk -F\" '{print $1}' )
+ echo "http code in telemetry is :"$http_code
+ #curl --tlsv1.2 -w '%{http_code}\n' -H "Accept: application/json" -H "Content-type: application/json" -X POST -d @/nvram/hell.txt '$HTTPURL' -o "/nvram/dca_httpresult.txt" --connect-timeout 30 -m 30
+ if [ $http_code -eq 200 ]; then
+ echo "HTTP telemetry curl upload succeded!!!!!!!!!!!!!!!!!"
+ ret=0
+ else
+ uploadRetryCount=0
+ while [ $uploadRetryCount -lt 2 ]
+ do
+ echo "Trying to upload telemetry file..."
+ CURL_CMD="curl --tlsv1.2 -w '%{http_code}\n' -H \"Accept: application/json\" -H \"Content-type: application/json\" -X POST -d @/nvram/rtl_json.txt '$HTTPURL' --connect-timeout 30 -m 30"
+ HTTP_CODE=`result= eval $CURL_CMD`
+ http_code_retry=$(echo "$HTTP_CODE" | awk -F\" '{print $1}' )
+ echo "http code in telemetry is :"$http_code_retry
+ if [ "$http_code_retry" != "200" ]; then
+ echo "Error in uploading telemetry file"
+ else
+ echo "telemetry json upload succeded in retry"
+ ret=0
+ break
+ fi
+ uploadRetryCount=`expr $uploadRetryCount + 1`
+ done
+ if [ $uploadRetryCount -eq 2]; then
+ ret=1
+ echo "HTTP telemetry curl upload failed!!!!!!!!!!!!!!!!!"
+ fi
+ fi
+ if [ $ret -eq 0 ]; then
+ echo_t "dca$2: Direct connection success - ret:$ret " >> $RTL_LOG_FILE
+ # Use direct connection for rest of the connections
+ conn_type_used="Direct"
+ cd ..
+ return 0
+ else
+ echo_t "dca$2: Direct Connection Failure - ret:$ret " >> $RTL_LOG_FILE
+ direct_retry=$(( direct_retry += 1 ))
+ if [ "$direct_retry" -ge "$DIRECT_RETRY_COUNT" ]; then
+ # .lastdirectfail will not be created for only direct connection
+ [ "$CodebigAvailable" -ne "1" ] || [ -f $DIRECT_BLOCK_FILENAME ] || touch $DIRECT_BLOCK_FILENAME
+ fi
+ sleep 10
+ cd ..
+ return 1
+ fi
+ else
+ echo "before TFTP load-----------"
+ delimnr=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | tr -dc ':' |wc -c`
+ echo "number of delim:"$delimnr
+ delimnr=$((delimnr - 1))
+ IP=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d ":" -f$delimnr | cut -d '"' -f 2`
+ echo "tftp ip is :"$IP
+ cd /nvram/
+ if [ -f "rtl_json.txt" ]; then
+ echo "rtl_json.txt available,going for tftp upload"
+ iptables -t raw -I OUTPUT -j CT -p udp -m udp --dport 69 --helper tftp
+ TurrisMacAddress=`ifconfig erouter0 | grep HWaddr | cut -c39-55`
+ extractVal=`echo $TurrisMacAddress | sed -e 's/://g'`
+ dt=`date "+%m-%d-%y-%I-%M%p"`
+ cp /nvram/rtl_json.txt /nvram/$extractVal-TELE-$dt.json
+ tftp -p -r $extractVal-TELE-$dt.json $IP
+ else
+ echo "No rtl_json.txt available,returning 1"
+ return 1
+ fi
+ ret=$?
+ echo $ret
+ if [ "$ret" -eq 1 ]; then
+ tftpuploadRetryCount=0
+ while [ $tftpuploadRetryCount -lt 2 ]
+ do
+ echo "Trying to upload telemetry file using tftp again..."
+ tftp -p -r $extractVal-TELE-$dt.json $IP
+ ret=$?
+ if [ "$ret" -eq 1 ]; then
+ echo "error in uploading using tftp"
+ else
+ echo "tftp upload in retry succeded"
+ ret=0
+ break
+ fi
+ tftpuploadRetryCount=`expr $tftpuploadRetryCount + 1`
+ done
+ if [ "$tftpuploadRetryCount" -eq 2]; then
+ ret=1
+ echo "TFTP telemetry upload failed!!!!!!!!!!!!!!!!!"
+ fi
+ else
+ echo "TFTP Telemetry succeded !!!"
+ ret=0
+ fi
+ sleep 10
+
+ echo_t "dca $2 : Direct Connection HTTP RESPONSE CODE : $http_code" >> $RTL_LOG_FILE
+ if [ $ret -eq 0 ]; then
+ echo_t "dca$2: Direct connection success - ret:$ret " >> $RTL_LOG_FILE
+ # Use direct connection for rest of the connections
+ conn_type_used="Direct"
+ cd ..
+ return 0
+ else
+ echo_t "dca$2: Direct Connection Failure - ret:$ret " >> $RTL_LOG_FILE
+ direct_retry=$(( direct_retry += 1 ))
+ if [ "$direct_retry" -ge "$DIRECT_RETRY_COUNT" ]; then
+ # .lastdirectfail will not be created for only direct connection
+ [ "$CodebigAvailable" -ne "1" ] || [ -f $DIRECT_BLOCK_FILENAME ] || touch $DIRECT_BLOCK_FILENAME
+ fi
+ sleep 10
+ cd ..
+ return 1
+ fi
+ fi
+}
+
+# Codebig connection Download function
+useCodebigRequest()
+{
+ # Do not try Codebig if CodebigAvailable != 1 (GetServiceUrl not there)
+ if [ "$CodebigAvailable" -eq "0" ] ; then
+ echo "dca$2 : Only direct connection Available"
+ return 1
+ fi
+
+ if [ "x$CodeBigEnable" = "x" ] ; then
+ echo_t "dca$2 : Codebig connection attempts are disabled through RFC. Exiting !!!" >> $RTL_LOG_FILE
+ return 1
+ fi
+
+ if [ "$TelemetryNewEndpointAvailable" -eq "1" ]; then
+ SIGN_CMD="GetServiceUrl 10 "
+ else
+ SIGN_CMD="GetServiceUrl 9 "
+ fi
+ eval $SIGN_CMD > $SIGN_FILE
+ CB_SIGNED_REQUEST=`cat $SIGN_FILE`
+ rm -f $SIGN_FILE
+ CURL_CMD="curl $TLS -w '%{http_code}\n' --interface $EROUTER_INTERFACE $addr_type -H \"Accept: application/json\" -H \"Content-type: application/json\" -X POST -d '$1' -o \"$HTTP_FILENAME\" \"$CB_SIGNED_REQUEST\" --connect-timeout $CURL_TIMEOUT -m $CURL_TIMEOUT"
+ echo_t "dca$2: Using Codebig connection at `echo "$CURL_CMD" | sed -ne 's#.*\(https:.*\)?.*#\1#p'`" >> $RTL_LOG_FILE
+ echo_t "CURL_CMD: `echo "$CURL_CMD" | sed -ne 's#oauth_consumer_key=.*oauth_signature=.* --#<hidden> --#p'`" >> $RTL_LOG_FILE
+ HTTP_CODE=`curl $TLS -w '%{http_code}\n' --interface $EROUTER_INTERFACE $addr_type -H "Accept: application/json" -H "Content-type: application/json" -X POST -d "$1" -o "$HTTP_FILENAME" "$CB_SIGNED_REQUEST" --connect-timeout $CURL_TIMEOUT -m $CURL_TIMEOUT`
+ curlret=$?
+ http_code=$(echo "$HTTP_CODE" | awk -F\" '{print $1}' )
+ [ "x$http_code" != "x" ] || http_code=0
+ # log security failure
+ echo_t "dca $2 : Codebig Connection HTTP RESPONSE CODE : $http_code" >> $RTL_LOG_FILE
+ case $curlret in
+ 35|51|53|54|58|59|60|64|66|77|80|82|83|90|91)
+ echo_t "dca$2: Codebig Connection Failure - ret:$curlret http_code:$http_code" >> $RTL_LOG_FILE
+ ;;
+ esac
+ if [ "$http_code" -eq 200 ]; then
+ echo_t "dca$2: Codebig connection success - ret:$curlret http_code:$http_code" >> $RTL_LOG_FILE
+ conn_type_used="Codebig"
+ return 0
+ fi
+ if [ "$curlret" -eq 0 ]; then
+ echo_t "dca$2: Codebig Connection Failure - ret:$curlret http_code:$http_code" >> $RTL_LOG_FILE
+ fi
+ sleep 10
+ return 1
+}
+
+# Function to get erouter0 ipv4 address
+getErouterIpv4()
+{
+ erouter_ipv4=`dmcli eRT getv Device.DeviceInfo.X_COMCAST-COM_WAN_IP | grep value | awk '{print $5}'`
+ if [ "$erouter_ipv4" != "" ];then
+ echo $erouter_ipv4
+ else
+ echo "null"
+ fi
+}
+
+# Function to get erouter0 ipv6 address
+getErouterIpv6()
+{
+ erouter_ipv6=`dmcli eRT getv Device.DeviceInfo.X_COMCAST-COM_WAN_IPv6 | grep value | awk '{print $5}'`
+ if [ "$erouter_ipv6" != "" ];then
+ echo $erouter_ipv6
+ else
+ echo "null"
+ fi
+}
+
+timestamp=`date +%Y-%b-%d_%H-%M-%S`
+#main app
+estbMac=`getErouterMacAddress`
+cur_time=`date "+%Y-%m-%d %H:%M:%S"`
+erouteripv4=`getErouterIpv4`
+erouteripv6=`getErouterIpv6`
+DEFAULT_IPV4="<#=#>EROUTER_IPV4<#=#>"
+DEFAULT_IPV6="<#=#>EROUTER_IPV6<#=#>"
+
+# If interface doesnt have ipv6 address then we will force the curl to go with ipv4.
+# Otherwise we will not specify the ip address family in curl options
+addr_type=""
+[ "x`ifconfig $EROUTER_INTERFACE | grep inet6 | grep -i 'Global'`" != "x" ] || addr_type="-4"
+
+if [ "x$DCA_MULTI_CORE_SUPPORTED" = "xyes" ]; then
+ ## 1] Pull processed data from ATOM
+ rm -f $TELEMETRY_JSON_RESPONSE
+
+
+ GetConfigFile $PEER_COMM_ID
+ scp -i $PEER_COMM_ID root@$ATOM_INTERFACE_IP:$TELEMETRY_JSON_RESPONSE $TELEMETRY_JSON_RESPONSE > /dev/null 2>&1
+ if [ $? -ne 0 ]; then
+ scp -i $PEER_COMM_ID root@$ATOM_INTERFACE_IP:$TELEMETRY_JSON_RESPONSE $TELEMETRY_JSON_RESPONSE > /dev/null 2>&1
+ fi
+ echo_t "Copied $TELEMETRY_JSON_RESPONSE " >> $RTL_LOG_FILE
+ rm -f $PEER_COMM_ID
+ sleep 2
+fi
+
+# Add the erouter MAC address from ARM as this is not available in ATOM
+sed -i -e "s/ErouterMacAddress/$estbMac/g" $TELEMETRY_JSON_RESPONSE
+
+
+if [ ! -f $SLEEP_TIME_FILE ]; then
+ if [ -f $DCMRESPONSE ]; then
+ cron=`grep -i TelemetryProfile $DCMRESPONSE | awk -F '"schedule":' '{print $NF}' | awk -F "," '{print $1}' | sed 's/://g' | sed 's/"//g' | sed -e 's/^[ ]//' | sed -e 's/^[ ]//'`
+ fi
+
+ if [ -n "$cron" ]; then
+ sleep_time=`echo "$cron" | awk -F '/' '{print $2}' | cut -d ' ' -f1`
+ fi
+
+ if [ -n "$sleep_time" ];then
+ sleep_time=`expr $sleep_time - 1` #Subtract 1 miute from it
+ sleep_time=`expr $sleep_time \* 60` #Make it to seconds
+ # Adding generic RANDOM number implementation as sh in RDK_B doesn't support RANDOM
+ RANDOM=`awk -v min=5 -v max=10 'BEGIN{srand(); print int(min+rand()*(max-min+1)*(max-min+1)*1000)}'`
+ sleep_time=$(($RANDOM%$sleep_time)) #Generate a random value out of it
+ echo "$sleep_time" > $SLEEP_TIME_FILE
+ else
+ sleep_time=10
+ fi
+else
+ sleep_time=`cat $SLEEP_TIME_FILE`
+fi
+
+if [ -z "$sleep_time" ];then
+ sleep_time=10
+fi
+
+if [ "$inputArgs" = "logbackup_without_upload" ];then
+ echo_t "log backup during bootup, Will upload on later call..!"
+ if [ -f $TELEMETRY_JSON_RESPONSE ]; then
+ outputJson=`cat $TELEMETRY_JSON_RESPONSE`
+ fi
+ if [ ! -f $TELEMETRY_JSON_RESPONSE ] || [ "x$outputJson" = "x" ] ; then
+ echo_t "dca: Unable to find Json message or Json is empty." >> $RTL_LOG_FILE
+ if [ ! -f /etc/os-release ];then pidCleanup; fi
+ exit 0
+ fi
+ if [ -f $TELEMETRY_RESEND_FILE ]; then
+ #If resend queue has already reached MAX_CONN_QUEUE entries then remove recent two
+ if [ "`cat $TELEMETRY_RESEND_FILE | wc -l`" -ge "$MAX_CONN_QUEUE" ]; then
+ echo_t "resend queue size at its max. removing recent two entries" >> $RTL_LOG_FILE
+ sed -i '1,2d' $TELEMETRY_RESEND_FILE
+ fi
+ mv $TELEMETRY_RESEND_FILE $TELEMETRY_TEMP_RESEND_FILE
+ fi
+ # ensure that Json is put at the top of the queue
+ echo "$outputJson" > $TELEMETRY_RESEND_FILE
+ if [ -f $TELEMETRY_TEMP_RESEND_FILE ] ; then
+ cat $TELEMETRY_TEMP_RESEND_FILE >> $TELEMETRY_RESEND_FILE
+ rm -f $TELEMETRY_TEMP_RESEND_FILE
+ fi
+ if [ ! -f /etc/os-release ];then pidCleanup; fi
+ exit 0
+fi
+get_Codebigconfig
+direct_retry=0
+## 2] Check for unsuccessful posts from previous execution in resend que.
+## If present repost either with appending to existing or as independent post
+echo "=============Telemetry has file only one upload======================="
+if [ -f $TELEMETRY_RESEND_FILE ] && [ "x$ignoreResendList" != "xtrue" ]; then
+ echo "=============Loop1======================="
+ rm -f $TELEMETRY_TEMP_RESEND_FILE
+ while read resend
+ do
+ resend=`echo $resend | sed "s/$DEFAULT_IPV4/$erouteripv4/" | sed "s/$DEFAULT_IPV6/$erouteripv6/"`
+ echo_t "dca resend : $resend" >> $RTL_LOG_FILE
+ $first_conn "$resend" "resend" || $sec_conn "$resend" "resend" || conn_type_used="Fail"
+
+ if [ "x$conn_type_used" = "xFail" ] ; then
+ echo "$resend" >> $TELEMETRY_TEMP_RESEND_FILE
+ echo_t "dca Connecion failed for this Json : requeuing back" >> $RTL_LOG_FILE
+ fi
+ echo_t "dca Attempting next Json in the queue " >> $RTL_LOG_FILE
+ sleep 10
+ done < $TELEMETRY_RESEND_FILE
+ sleep 2
+ rm -f $TELEMETRY_RESEND_FILE
+fi
+
+## 3] Attempt to post current message. Check for status if failed add it to resend queue
+if [ -f $TELEMETRY_JSON_RESPONSE ]; then
+ outputJson=`cat $TELEMETRY_JSON_RESPONSE`
+fi
+if [ ! -f $TELEMETRY_JSON_RESPONSE ] || [ "x$outputJson" = "x" ] ; then
+ echo_t "dca: Unable to find Json message or Json is empty." >> $RTL_LOG_FILE
+ [ ! -f $TELEMETRY_TEMP_RESEND_FILE ] || mv $TELEMETRY_TEMP_RESEND_FILE $TELEMETRY_RESEND_FILE
+ if [ ! -f /etc/os-release ];then pidCleanup; fi
+ exit 0
+fi
+
+echo "$outputJson" > $TELEMETRY_RESEND_FILE
+# sleep for random time before upload to avoid bulk requests on splunk server
+echo_t "dca: Sleeping for $sleep_time before upload." >> $RTL_LOG_FILE
+sleep $sleep_time
+timestamp=`date +%Y-%b-%d_%H-%M-%S`
+$first_conn "$outputJson" || $sec_conn "$outputJson" || conn_type_used="Fail"
+if [ "x$conn_type_used" != "xFail" ]; then
+ echo_t "dca: Json message successfully submitted." >> $RTL_LOG_FILE
+ rm -f $TELEMETRY_RESEND_FILE
+ [ ! -f $TELEMETRY_TEMP_RESEND_FILE ] || mv $TELEMETRY_TEMP_RESEND_FILE $TELEMETRY_RESEND_FILE
+else
+ if [ -f $TELEMETRY_TEMP_RESEND_FILE ] ; then
+ if [ "`cat $TELEMETRY_TEMP_RESEND_FILE | wc -l `" -ge "$MAX_CONN_QUEUE" ]; then
+ echo_t "dca: resend queue size has already reached MAX_CONN_QUEUE. Not adding anymore entries" >> $RTL_LOG_FILE
+ mv $TELEMETRY_TEMP_RESEND_FILE $TELEMETRY_RESEND_FILE
+ else
+ cat $TELEMETRY_TEMP_RESEND_FILE >> $TELEMETRY_RESEND_FILE
+ echo_t "dca: Json message submit failed. Adding message to resend queue" >> $RTL_LOG_FILE
+ fi
+ rm -f $TELEMETRY_TEMP_RESEND_FILE
+ fi
+fi
+#rm -f $TELEMETRY_JSON_RESPONSE
+# PID file cleanup
+if [ ! -f /etc/os-release ];then pidCleanup; fi
diff --git a/recipes-rdkb/sysint-broadband/files/dca_utility.sh b/recipes-rdkb/sysint-broadband/files/dca_utility.sh
new file mode 100755
index 0000000..5cd86b6
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/dca_utility.sh
@@ -0,0 +1,779 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2016 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+
+. /etc/include.properties
+. /etc/device.properties
+
+echo "inside dca_utility script with 1 as value for arguments"
+
+if [ -f /lib/rdk/utils.sh ]; then
+ . /lib/rdk/utils.sh
+fi
+if [ -f /etc/mount-utils/getConfigFile.sh ];then
+ . /etc/mount-utils/getConfigFile.sh
+fi
+source /etc/log_timestamp.sh
+source /lib/rdk/getpartnerid.sh
+source /lib/rdk/getaccountid.sh
+EROUTER_IF=erouter0
+DCMRESPONSE="$PERSISTENT_PATH/DCMresponse.txt"
+DCM_SETTINGS_CONF="/tmp/DCMSettings.conf"
+
+TELEMETRY_PATH="$PERSISTENT_PATH/.telemetry"
+TELEMETRY_PATH_TEMP="$TELEMETRY_PATH/tmp"
+TELEMETRY_PROFILE_PATH="$PERSISTENT_PATH/.DCMSettings.conf"
+LOG_SYNC_PATH="/rdklogs/logs/"
+
+RTL_LOG_FILE="$LOG_PATH/dcmProcessing.log"
+RTL_DELTA_LOG_FILE="$RAMDISK_PATH/.rtl_temp.log"
+MAP_PATTERN_CONF_FILE="$TELEMETRY_PATH/dcafile.conf"
+TEMP_PATTERN_CONF_FILE="$TELEMETRY_PATH/temp_dcafile.conf"
+EXEC_COUNTER_FILE="/tmp/.dcaCounter.txt"
+
+# Persist this files for telemetry operation
+# Regenerate this only when there is a change identified from XCONF update
+SORTED_PATTERN_CONF_FILE="$TELEMETRY_PATH/dca_sorted_file.conf"
+
+current_cron_file="$PERSISTENT_PATH/cron_file.txt"
+
+#Performance oriented binaries
+DCA_BINARY="/usr/bin/dca"
+
+TELEMETRY_INOTIFY_FOLDER=/rdklogs/logs/
+TELEMETRY_INOTIFY_EVENT="$TELEMETRY_INOTIFY_FOLDER/eventType.cmd"
+TELEMETRY_EXEC_COMPLETE="/tmp/.dca_done"
+SCP_COMPLETE="/tmp/.scp_done"
+
+PEER_COMM_ID="/tmp/elxrretyt.swr"
+IDLE_TIMEOUT=30
+
+DEFAULT_IPV4="<#=#>EROUTER_IPV4<#=#>"
+DEFAULT_IPV6="<#=#>EROUTER_IPV6<#=#>"
+TELEMETRY_PREVIOUS_LOG="/tmp/.telemetry_previous_log"
+TELEMETRY_PREVIOUS_LOG_COMPLETE="/tmp/.telemetry_previous_log_done"
+TEMP_NVRAM_LOG_PATH="/tmp/nvram2_logs/"
+NVRAM_LOG_PATH="/nvram/logs/"
+
+
+# Retain source for future enabling. Defaulting to disable for now
+snmpCheck=false
+
+dcaCleanup()
+{
+ if [ "x$DCA_MULTI_CORE_SUPPORTED" = "xyes" ]; then
+ $CONFIGPARAMGEN jx $PEER_COMM_DAT $PEER_COMM_ID
+ ssh -I $IDLE_TIMEOUT -i $PEER_COMM_ID root@$ARM_INTERFACE_IP "/bin/echo 'notifyTelemetryCleanup' > $TELEMETRY_INOTIFY_EVENT" > /dev/null 2>&1
+ echo_t "notify ARM for dca execution completion" >> $RTL_LOG_FILE
+ rm -f $PEER_COMM_ID
+ else
+ touch $TELEMETRY_EXEC_COMPLETE
+ fi
+
+ echo_t "forced DCA execution before log upload/reboot. Clearing all markers !!!" >> $RTL_LOG_FILE
+ # Forced execution before flusing of logs, so clear the markers
+ if [ -d $TELEMETRY_PATH_TEMP ]; then
+ rm -rf $TELEMETRY_PATH_TEMP
+ fi
+ rm -rf $TELEMETRY_PATH
+
+}
+
+# exit if an instance is already running
+if [ ! -f /tmp/.dca-utility.pid ];then
+ # store the PID
+ echo $$ > /tmp/.dca-utility.pid
+ echo "No dca-utility pid -------"
+else
+ echo "dca-utility pis existing----------"
+ pid=`cat /tmp/.dca-utility.pid`
+ if [ -d /proc/$pid ];then
+ if [ "$1" == "2" ]; then
+ loop=0
+ while [ $loop -le 6 ]
+ do
+ sleep 10
+ loop=$((loop+1))
+ if [ ! -f /tmp/.dca-utility.pid ] || [ ! -d /proc/`cat /tmp/.dca-utility.pid` ]; then
+ dcaCleanup
+ break
+ fi
+ done
+ fi
+ exit 0
+ else
+ echo $$ > /tmp/.dca-utility.pid
+ fi
+fi
+
+mkdir -p $LOG_PATH
+touch $RTL_LOG_FILE
+
+previousLogPath=""
+if [ -f $TELEMETRY_PREVIOUS_LOG ]; then
+
+ isAxb6Device="no"
+ if [ "$MODEL_NUM" == "TG3482G" ];then
+ isNvram2Mounted=`grep nvram2 /proc/mounts`
+ if [ "$isNvram2Mounted" == "" -a -d "/nvram/logs" ];then
+ isAxb6Device="yes"
+ fi
+ fi
+
+ if [ "x$DCA_MULTI_CORE_SUPPORTED" = "xyes" -a "x$isAxb6Device" == "xno" ]; then
+ previousLogPath="$TEMP_NVRAM_LOG_PATH"
+ elif [ "x$isAxb6Device" = "xyes" ]; then
+ previousLogPath="$NVRAM_LOG_PATH"
+ else
+ previousLogPath="$LOG_SYNC_PATH"
+ fi
+
+ echo_t "Telemetry run for previous log path : "$previousLogPath
+fi
+
+if [ ! -f /tmp/.dca_bootup -a ! -f $TELEMETRY_PREVIOUS_LOG ]; then
+ echo_t "First dca execution after bootup. Clearing all markers."
+ touch /tmp/.dca_bootup
+ rm -rf $TELEMETRY_PATH
+ rm -f $RTL_LOG_FILE
+fi
+
+
+PrevFileName=''
+
+#Adding support for opt override for dcm.properties file
+if [ "$BUILD_TYPE" != "prod" ] && [ -f $PERSISTENT_PATH/dcm.properties ]; then
+ . $PERSISTENT_PATH/dcm.properties
+else
+ . /etc/dcm.properties
+fi
+
+
+if [ ! -d "$TELEMETRY_PATH_TEMP" ]
+then
+ echo_t "Telemetry Folder does not exist . Creating now"
+ mkdir -p "$TELEMETRY_PATH_TEMP"
+else
+ cp $TELEMETRY_PATH/rtl_* $TELEMETRY_PATH_TEMP/
+fi
+
+mkdir -p $TELEMETRY_PATH
+
+pidCleanup()
+{
+ # PID file cleanup
+ if [ -f /tmp/.dca-utility.pid ];then
+ rm -rf /tmp/.dca-utility.pid
+ fi
+}
+
+if [ $# -ne 1 ]; then
+ echo "Usage : `basename $0` <0/1/2> 0 - Telemtry From Cron 1 - Reinitialize Map 2 - Forced Telemetry search " >> $RTL_LOG_FILE
+ pidCleanup
+ exit 0
+fi
+
+# 0 if as part of normal execution
+# 1 if initiated due to an XCONF update
+# 2 if forced execution before log upload
+# 3 if modify the cron schedule
+
+triggerType=$1
+echo_t "dca: Trigger type is :"$triggerType
+
+cd $LOG_PATH
+
+
+isNum()
+{
+ Number=$1
+ if [ $Number -ne 0 -o $Number -eq 0 2>/dev/null ];then
+ echo 0
+ else
+ echo 1
+ fi
+}
+
+# Function to get erouerMAC
+getEstbMac()
+{
+
+ estbMac=`dmcli eRT getv Device.DeviceInfo.X_COMCAST-COM_WAN_MAC | grep type: | awk '{print $5}'|tr '[:lower:]' '[:upper:]'`
+
+ if [ "$estbMac" ]; then
+ echo "$estbMac"
+ else
+ if [ "$BOX_TYPE" == "XB3" ]; then
+ estbMac=`/usr/bin/rpcclient $ARM_ARPING_IP "ifconfig erouter0" | grep 'Link encap:' | cut -d ' ' -f7`
+ echo "$estbMac"
+ else
+ estbMac=`ifconfig erouter0 | grep 'Link encap:' | cut -d ' ' -f7`
+ echo "$estbMac"
+ fi
+ fi
+
+}
+
+# Function to get erouter0 ipv4 address
+getErouterIpv4()
+{
+ erouter_ipv4=`dmcli eRT getv Device.DeviceInfo.X_COMCAST-COM_WAN_IP | grep value | awk '{print $5}'`
+ if [ "$erouter_ipv4" != "" ];then
+ echo $erouter_ipv4
+ else
+ echo "null"
+ fi
+}
+
+# Function to get erouter0 ipv6 address
+getErouterIpv6()
+{
+ erouter_ipv6=`dmcli eRT getv Device.DeviceInfo.X_COMCAST-COM_WAN_IPv6 | grep value | awk '{print $5}'`
+ if [ "$erouter_ipv6" != "" ];then
+ echo $erouter_ipv6
+ else
+ echo "null"
+ fi
+}
+
+getSNMPUpdates() {
+ snmpMIB=$1
+ TotalCount=0
+ export MIBS=ALL
+ export MIBDIRS=/mnt/nfs/bin/target-snmp/share/snmp/mibs:/usr/share/snmp/mibs
+ export PATH=$PATH:/mnt/nfs/bin/target-snmp/bin
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/nfs/bin/target-snmp/lib:/mnt/nfs/usr/lib
+ snmpCommunityVal=`head -n 1 /tmp/snmpd.conf | awk '{print $4}'`
+ tuneString=`snmpwalk -OQv -v 2c -c $snmpCommunityVal 127.0.0.1 $snmpMIB`
+ for count in $tuneString
+ do
+ count=`echo $count | tr -d ' '`
+ if [ $(isNum $count) -eq 0 ]; then
+ TotalCount=`expr $TotalCount + $count`
+ else
+ TotalCount=$count
+ fi
+ done
+
+ echo $TotalCount
+}
+
+## Reatining for future support when net-snmp tools will be enabled in XB3s
+getControllerId(){
+ ChannelMapId=''
+ ControllerId=''
+ VctId=''
+ vodServerId=''
+ export MIBS=ALL
+ export MIBDIRS=/mnt/nfs/bin/target-snmp/share/snmp/mibs:/usr/share/snmp/mibs
+ export PATH=$PATH:/mnt/nfs/bin/target-snmp/bin
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/nfs/bin/target-snmp/lib:/mnt/nfs/usr/lib
+
+ snmpCommunityVal=`head -n 1 /tmp/snmpd.conf | awk '{print $4}'`
+ ChannelMapId=`snmpwalk -OQ -v 2c -c $snmpCommunityVal 127.0.0.1 1.3.6.1.4.1.17270.9225.1.1.40 | awk -F '= ' '{print $2}'`
+ ControllerId=`snmpwalk -OQ -v 2c -c $snmpCommunityVal 127.0.0.1 1.3.6.1.4.1.17270.9225.1.1.41 | awk -F '= ' '{print $2}'`
+ VctId=`snmpwalk -OQ -v 2c -c $snmpCommunityVal 127.0.0.1 OC-STB-HOST-MIB::ocStbHostCardVctId.0 | awk -F '= ' '{print $2}'`
+ vodServerId=`snmpwalk -OQ -v 2c -c $snmpCommunityVal 127.0.0.1 1.3.6.1.4.1.17270.9225.1.1.43 | awk -F '= ' '{print $2}'`
+
+ echo "{\"ChannelMapId\":\"$ChannelMapId\"},{\"ControllerId\":\"$ControllerId\"},{\"VctId\":$VctId},{\"vodServerId\":\"$vodServerId\"}"
+}
+
+# Function to get RF status
+## Reatining for future support when net-snmp tools will be enabled in XB3s
+getRFStatus(){
+ Dwn_RX_pwr=''
+ Ux_TX_pwr=''
+ Dx_SNR=''
+ export MIBS=ALL
+ export MIBDIRS=/mnt/nfs/bin/target-snmp/share/snmp/mibs
+ export PATH=$PATH:/mnt/nfs/bin/target-snmp/bin
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/nfs/bin/target-snmp/lib:/mnt/nfs/usr/lib
+
+ snmpCommunityVal=`head -n 1 /tmp/snmpd.conf | awk '{print $4}'`
+ Dwn_RX_pwr=`snmpwalk -OQ -v 2c -c $snmpCommunityVal 192.168.100.1 DOCS-IF-MIB::docsIfDownChannelPower.3 | awk -F '= ' '{print $2}'`
+ Ux_TX_pwr=`snmpwalk -OQ -v 2c -c $snmpCommunityVal 192.168.100.1 DOCS-IF-MIB::docsIfCmStatusTxPower.2 | awk -F '= ' '{print $2}'`
+ Dx_SNR=`snmpwalk -OQ -v 2c -c $snmpCommunityVal 192.168.100.1 DOCS-IF-MIB::docsIfSigQSignalNoise.3 | awk -F '= ' '{print $2}'`
+
+ echo "{\"Dwn_RX_pwr\":\"$Dwn_RX_pwr\"},{\"Ux_TX_pwr\":\"$Ux_TX_pwr\"},{\"Dx_SNR\":\"$Dx_SNR\"}"
+}
+
+processJsonResponse()
+{
+ FILENAME=$1
+ #Condider getting the filename as an argument instead of using global file name
+ if [ -f "$FILENAME" ]; then
+ # Start pre-processing the original file
+ sed -i 's/,"urn:/\n"urn:/g' $FILENAME # Updating the file by replacing all ',"urn:' with '\n"urn:'
+ sed -i 's/^{//g' $FILENAME # Delete first character from file '{'
+ sed -i 's/}$//g' $FILENAME # Delete first character from file '}'
+ echo "" >> $FILENAME # Adding a new line to the file
+ # Start pre-processing the original file
+
+ OUTFILE=$DCM_SETTINGS_CONF
+ OUTFILEOPT="$PERSISTENT_PATH/.DCMSettings.conf"
+ #rm -f $OUTFILE #delete old file
+ cat /dev/null > $OUTFILE #empty old file
+ cat /dev/null > $OUTFILEOPT
+ while read line
+ do
+ # Special processing for telemetry
+ profile_Check=`echo "$line" | grep -ci 'TelemetryProfile'`
+ if [ $profile_Check -ne 0 ];then
+ #echo "$line"
+ echo "$line" | sed 's/"header":"/"header" : "/g' | sed 's/"content":"/"content" : "/g' | sed 's/"type":"/"type" : "/g' >> $OUTFILE
+
+ echo "$line" | sed 's/"header":"/"header" : "/g' | sed 's/"content":"/"content" : "/g' | sed 's/"type":"/"type" : "/g' | sed -e 's/uploadRepository:URL.*","//g' >> $OUTFILEOPT
+ else
+ echo "$line" | sed 's/":/=/g' | sed 's/"//g' >> $OUTFILE
+ fi
+ done < $FILENAME
+ else
+ echo "$FILENAME not found." >> $RTL_LOG_FILE
+ return 1
+ fi
+}
+
+scheduleCron()
+{
+ echo "schedulecronjob!!"
+ cron=''
+ scheduler_Check=`grep '"schedule":' $DCM_SETTINGS_CONF`
+ if [ -n "$scheduler_Check" ]; then
+ cron=`grep -i TelemetryProfile $DCM_SETTINGS_CONF | awk -F '"schedule":' '{print $NF}' | awk -F "," '{print $1}' | sed 's/://g' | sed 's/"//g' | sed -e 's/^[ ]//' | sed -e 's/^[ ]//'`
+ fi
+
+ #During diagnostic mode need to apply the cron schedule value through this custom configuration
+ DiagnosticMode=`dmcli eRT getv Device.SelfHeal.X_RDKCENTRAL-COM_DiagnosticMode | grep value | cut -f3 -d : | cut -f2 -d" "`
+ if [ "$DiagnosticMode" == "true" ];then
+ LogUploadFrequency=`dmcli eRT getv Device.SelfHeal.X_RDKCENTRAL-COM_DiagMode_LogUploadFrequency | grep value | cut -f3 -d : | cut -f2 -d" "`
+ if [ "$LogUploadFrequency" != "" ]; then
+ cron=''
+ cron="*/$LogUploadFrequency * * * *"
+ echo "$timestamp dca: the default Cron schedule from XCONF is ignored and instead SNMP overriden value is used" >> $RTL_LOG_FILE
+ fi
+ fi
+
+ #Check whether cron having empty value if it is empty then need to assign
+ #15mins by default
+ if [ -z "$cron" ]; then
+ echo "$timestamp: dca: Empty cron value so set default as 15mins"
+ cron="*/15 * * * *"
+ fi
+
+ if [ -n "$cron" ]; then
+ # Dump existing cron jobs to a file
+ crontab -l -c $CRON_SPOOL > $current_cron_file
+ # Check whether any cron jobs are existing or not
+ existing_cron_check=`cat $current_cron_file | tail -n 1`
+ tempfile="$PERSISTENT_PATH/tempfile.txt"
+ rm -rf $tempfile # Delete temp file if existing
+ if [ -n "$existing_cron_check" ]; then
+ rtl_cron_check=`grep -c 'dca_utility.sh' $current_cron_file`
+ if [ $rtl_cron_check -eq 0 ]; then
+ echo "$cron nice -n 19 sh $RDK_PATH/dca_utility.sh 1" >> $tempfile
+ fi
+ while read line
+ do
+ retval=`echo "$line" | grep 'dca_utility.sh'`
+ if [ -n "$retval" ]; then
+ echo "$cron nice -n 19 sh $RDK_PATH/dca_utility.sh 1" >> $tempfile
+ else
+ echo "$line" >> $tempfile
+ fi
+ done < $current_cron_file
+ else
+ # If no cron job exists, create one, with the value from DCMSettings.conf file
+ echo "$cron nice -n 19 sh $RDK_PATH/dca_utility.sh 1" >> $tempfile
+ fi
+ # Set new cron job from the file
+ crontab $tempfile -c $CRON_SPOOL
+ rm -rf $current_cron_file # Delete temp file
+ rm -rf $tempfile # Delete temp file
+ else
+ echo " `date` Failed to read \"schedule\" cronjob value from DCMSettings.conf." >> $RTL_LOG_FILE
+ fi
+}
+
+dropbearRecovery()
+{
+ dropbearPid=`ps | grep -i dropbear | grep "$ATOM_INTERFACE_IP" | grep -v grep`
+ if [ -z "$dropbearPid" ]; then
+ DROPBEAR_PARAMS_1="/tmp/.dropbear/dropcfg1$$"
+ DROPBEAR_PARAMS_2="/tmp/.dropbear/dropcfg2$$"
+ if [ ! -d '/tmp/.dropbear' ]; then
+ echo "wan_ssh.sh: need to create dropbear dir !!! " >> $RTL_LOG_FILE
+ mkdir -p /tmp/.dropbear
+ fi
+ echo "wan_ssh.sh: need to create dropbear files !!! " >> $RTL_LOG_FILE
+ getConfigFile $DROPBEAR_PARAMS_1
+ getConfigFile $DROPBEAR_PARAMS_2
+ dropbear -r $DROPBEAR_PARAMS_1 -r $DROPBEAR_PARAMS_2 -E -s -p $ATOM_INTERFACE_IP:22 &
+ sleep 2
+ fi
+ rm -rf /tmp/.dropbear/*
+}
+
+clearTelemetryConfig()
+{
+ echo_t "dca: Clearing telemetry config and markers" >> $RTL_LOG_FILE
+ if [ -f $RTL_DELTA_LOG_FILE ]; then
+ echo_t "dca: Deleting : $RTL_DELTA_LOG_FILE" >> $RTL_LOG_FILE
+ rm -f $RTL_DELTA_LOG_FILE
+ fi
+
+ if [ -f $MAP_PATTERN_CONF_FILE ]; then
+ echo_t "dca: MAP_PATTERN_CONF_FILE : $MAP_PATTERN_CONF_FILE" >> $RTL_LOG_FILE
+ rm -f $MAP_PATTERN_CONF_FILE
+ fi
+
+ if [ -f $TEMP_PATTERN_CONF_FILE ]; then
+ echo_t "dca: TEMP_PATTERN_CONF_FILE : $TEMP_PATTERN_CONF_FILE" >> $RTL_LOG_FILE
+ rm -f $TEMP_PATTERN_CONF_FILE
+ fi
+
+ if [ -f $SORTED_PATTERN_CONF_FILE ]; then
+ echo_t "dca: SORTED_PATTERN_CONF_FILE : $SORTED_PATTERN_CONF_FILE" >> $RTL_LOG_FILE
+ rm -f $SORTED_PATTERN_CONF_FILE
+ fi
+
+ # Clear markers with XCONF update as logs will be flushed in case of maintenance window case as well.
+ # During boot-up no need of maintaining old markers.
+ if [ -d $TELEMETRY_PATH ]; then
+ rm -rf $TELEMETRY_PATH
+ mkdir -p $TELEMETRY_PATH
+ fi
+
+ if [ -d $TELEMETRY_PATH_TEMP ]; then
+ rm -rf $TELEMETRY_PATH_TEMP
+ mkdir -p $TELEMETRY_PATH_TEMP
+ fi
+
+}
+
+## Pass The I/P O/P Files As Arguments
+generateTelemetryConfig()
+{
+ echo_t "dca: Generating telemetry config file." >> $RTL_LOG_FILE
+ input_file=$1
+ output_file=$2
+ touch $TEMP_PATTERN_CONF_FILE
+ if [ -f $input_file ]; then
+ grep -i 'TelemetryProfile' $input_file | sed 's/=\[/\n/g' | sed 's/},/}\n/g' | sed 's/],.*?/\n/g'| sed -e 's/^[ ]//' > $TEMP_PATTERN_CONF_FILE
+ fi
+
+ # Create map file from json message file
+ while read line
+ do
+ header_Check=`echo "$line" | grep -c '{"header"'`
+ if [ $header_Check -ne 0 ];then
+ polling=`echo "$line" | grep -c 'pollingFrequency'`
+ if [ $polling -ne 0 ];then
+ header=`echo "$line" | awk -F '"header" :' '{print $NF}' | awk -F '",' '{print $1}' | sed -e 's/^[ ]//' | sed 's/^"//'`
+ content=`echo "$line" | awk -F '"content" :' '{print $NF}' | awk -F '",' '{print $1}' | sed -e 's/^[ ]//' | sed 's/^"//'`
+ logFileName=`echo "$line" | awk -F '"type" :' '{print $NF}' | awk -F '",' '{print $1}' | sed -e 's/^[ ]//' | sed 's/^"//'`
+ skipInterval=`echo "$line" | sed -e "s/.*pollingFrequency\":\"//g" | sed 's/"}//'`
+ else
+ header=`echo "$line" | awk -F '"header" :' '{print $NF}' | awk -F '",' '{print $1}' | sed -e 's/^[ ]//' | sed 's/^"//'`
+ content=`echo "$line" | awk -F '"content" :' '{print $NF}' | awk -F '",' '{print $1}' | sed -e 's/^[ ]//' | sed 's/^"//'`
+ logFileName=`echo "$line" | awk -F '"type" :' '{print $NF}' | sed -e 's/^[ ]//' | sed 's/^"//' | sed 's/"}//'`
+ #default value to 0
+ skipInterval=0
+ fi
+
+ if [ -n "$header" ] && [ -n "$content" ] && [ -n "$logFileName" ] && [ -n "$skipInterval" ]; then
+ echo "$header<#=#>$content<#=#>$logFileName<#=#>$skipInterval" >> $MAP_PATTERN_CONF_FILE
+ fi
+ fi
+ done < $TEMP_PATTERN_CONF_FILE
+ # Sort the config file based on file names to minimise the duplicate delta file generation
+ if [ -f $MAP_PATTERN_CONF_FILE ]; then
+ if [ -f $output_file ]; then
+ rm -f $output_file
+ fi
+ awk -F '<#=#>' '{print $3,$0}' $MAP_PATTERN_CONF_FILE | sort -n | cut -d ' ' -f 2- > $output_file
+ fi
+
+}
+
+ echo "triggertype------------"$triggerType
+# Reschedule the cron based on diagnositic mode
+if [ $triggerType -eq 3 ] ; then
+ echo_t "$timestamp: dca: Processing rescheduleCron job" >> $RTL_LOG_FILE
+ scheduleCron
+ ## Telemetry must be invoked only for reschedule cron job
+ pidCleanup
+ exit 0
+fi
+
+# Pull the settings from Telemetry server periodically
+estbMacAddress=`ifconfig erouter0 | grep HWaddr | cut -c39-55`
+JSONSTR=$estbMacAddress
+CURL_CMD="curl '$DCM_LOG_SERVER_URL?estbMacAddress=$JSONSTR&model=$MODEL_NAME' -o $DCMRESPONSE > /tmp/httpcode.txt"
+
+# Execute curl command
+result= eval $CURL_CMD
+sleep 5
+echo "sleep for :------------------$timeout"
+
+# Regenerate config only during boot-up and when there is an update
+if [ ! -f $SORTED_PATTERN_CONF_FILE ] || [ $triggerType -eq 1 -a ! -f $TELEMETRY_PREVIOUS_LOG ] ; then
+# Start crond daemon for yocto builds
+ pidof crond
+ if [ $? -ne 0 ]; then
+ mkdir -p $CRON_SPOOL
+ touch $CRON_SPOOL/root
+ crond -c $CRON_SPOOL -l 9
+ fi
+
+ if [ "x$DCA_MULTI_CORE_SUPPORTED" = "xyes" ]; then
+ while [ ! -f $DCMRESPONSE ]
+ do
+ echo "WARNING !!! Unable to locate $DCMRESPONSE .. Retrying " >> $RTL_LOG_FILE
+ GetConfigFile $PEER_COMM_ID
+ scp -i $PEER_COMM_ID -r $ARM_INTERFACE_IP:$DCMRESPONSE $DCMRESPONSE > /dev/null 2>&1
+ rm -f $PEER_COMM_ID
+ sleep 10
+ done
+ fi
+ echo "calling processJsonResponse--------"
+ processJsonResponse $DCMRESPONSE
+ echo "after calling processJsonResponse-----------"
+ clearTelemetryConfig
+ echo "after calling clearTelemetryConfig-----------"
+ generateTelemetryConfig $TELEMETRY_PROFILE_PATH $SORTED_PATTERN_CONF_FILE
+ echo "after calling generateTelemetryConfig--------"
+ scheduleCron
+ echo "after calling scheduleCron-------------------"
+ if [ $triggerType -eq 1 ]; then
+ bootupTelemetryBackup=true
+ ## Telemetry must be invoked only via cron and not during boot-up
+ # pidCleanup
+ #exit 0
+ fi
+fi
+
+mkdir -p $TELEMETRY_PATH_TEMP
+
+if [ "x$DCA_MULTI_CORE_SUPPORTED" = "xyes" ]; then
+ dropbearRecovery
+ mkdir -p $LOG_PATH
+ TMP_SCP_PATH="/tmp/scp_logs"
+ mkdir -p $TMP_SCP_PATH
+ GetConfigFile $PEER_COMM_ID
+ scp -i $PEER_COMM_ID -r $ARM_INTERFACE_IP:$LOG_PATH/* $TMP_SCP_PATH/ > /dev/null 2>&1
+ scp -i $PEER_COMM_ID -r $ARM_INTERFACE_IP:$LOG_SYNC_PATH/$SelfHealBootUpLogFile $ARM_INTERFACE_IP:$LOG_SYNC_PATH/$PcdLogFile $TMP_SCP_PATH/ > /dev/null 2>&1
+ rm -f $PEER_COMM_ID
+
+ RPC_RES=`rpcclient $ARM_ARPING_IP "touch $SCP_COMPLETE"`
+ RPC_OK=`echo $RPC_RES | grep "RPC CONNECTED"`
+ if [ "$RPC_OK" == "" ]; then
+ echo_t "RPC touch failed : attemp 1"
+
+ RPC_RES=`rpcclient $ARM_ARPING_IP "touch $SCP_COMPLETE"`
+ RPC_OK=`echo $RPC_RES | grep "RPC CONNECTED"`
+ if [ "$RPC_OK" == "" ]; then
+ echo_t "RPC touch failed : attemp 2"
+ fi
+ fi
+
+ ATOM_FILE_LIST=`echo ${ATOM_FILE_LIST} | sed -e "s/{//g" -e "s/}//g" -e "s/,/ /g"`
+ for file in $ATOM_FILE_LIST
+ do
+ if [ -f $TMP_SCP_PATH/$file ]; then
+ rm -f $TMP_SCP_PATH/$file
+ fi
+ done
+
+ if [ -d $TMP_SCP_PATH ]; then
+ cp -r $TMP_SCP_PATH/* $LOG_PATH/
+ rm -rf $TMP_SCP_PATH
+ fi
+
+ sleep 2
+fi
+
+#Clear the final result file
+rm -f $TELEMETRY_JSON_RESPONSE
+
+
+## Generate output file with pattern to match count values
+if [ ! -f $SORTED_PATTERN_CONF_FILE ]; then
+ echo "WARNING !!! Unable to locate telemetry config file $SORTED_PATTERN_CONF_FILE. Exiting !!!" >> $RTL_LOG_FILE
+else
+ # echo_t "Using telemetry pattern stored in : $SORTED_PATTERN_CONF_FILE.!!!" >> $RTL_LOG_FILE
+ defaultOutputJSON="{\"searchResult\":[{\"<remaining_keys>\":\"<remaining_values>\"}]}"
+ echo "nice -n 19 $DCA_BINARY $SORTED_PATTERN_CONF_FILE $previousLogPath" >> $RTL_LOG_FILE
+ dcaOutputJson=`nice -n 19 $DCA_BINARY $SORTED_PATTERN_CONF_FILE $previousLogPath 2>> $RTL_LOG_FILE`
+ if [ -z "$dcaOutputJson" ];
+ then
+ dcaOutputJson=$defaultOutputJSON
+ fi
+
+ echo "dcaoutputjson----!!!!!!!!!!!!----"$dcaOutputJson
+ singleEntry=true
+
+ # Get the snmp and performance values when enabled
+ # Need to check only when SNMP is enabled in future
+ if [ "$snmpCheck" == "true" ] ; then
+ while read line
+ do
+ pattern=`echo "$line" | awk -F '<#=#>' '{print $1}'`
+ filename=`echo "$line" | awk -F '<#=#>' '{print $2}'`
+ if [ $filename == "snmp" ] || [ $filename == "SNMP" ]; then
+ retvalue=$(getSNMPUpdates $pattern)
+ header=`grep "$pattern<#=#>$filename" $MAP_PATTERN_CONF_FILE | head -n 1 | awk -F '<#=#>' '{print $1}'`
+ if $singleEntry ; then
+ tuneData="{\"$header\":\"$retvalue\"}"
+ outputJson="$outputJson$tuneData"
+ singleEntry=false
+ else
+ tuneData=",{\"$header\":\"$retvalue\"}"
+ outputJson="$outputJson$tuneData"
+ fi
+ fi
+ done < $SORTED_PATTERN_CONF_FILE
+ fi
+
+
+ ## This interface is not accessible from ATOM, replace value from ARM
+ estbMac=$(getEstbMac)
+ firmwareVersion=$(getFWVersion)
+ firmwareVersion=$(echo $firmwareVersion | sed -e "s/imagename://g")
+ partnerId=$(getPartnerId)
+ accountId=$(getAccountId)
+ erouterIpv4=$(getErouterIpv4)
+ erouterIpv6=$(getErouterIpv6)
+
+
+ if [ "$triggerType" = "1" ]; then
+ if [ "$erouterIpv4" = "null" ]; then
+ erouterIpv4="$DEFAULT_IPV4"
+ fi
+ if [ "$erouterIpv6" = "null" ]; then
+ erouterIpv6="$DEFAULT_IPV6"
+ fi
+ fi
+
+ cur_time=`date "+%Y-%m-%d %H:%M:%S"`
+
+ if $singleEntry ; then
+ outputJson="$outputJson{\"Profile\":\"RDKB\"},{\"mac\":\"$estbMac\"},{\"erouterIpv4\":\"$erouterIpv4\"},{\"erouterIpv6\":\"$erouterIpv6\"},{\"PartnerId\":\"$partnerId\"},{\"AccountId\":\"$accountId\"},{\"Version\":\"$firmwareVersion\"},{\"Time\":\"$cur_time\"}"
+ singleEntry=false
+ else
+ outputJson="$outputJson,{\"Profile\":\"RDKB\"},{\"mac\":\"$estbMac\"},{\"erouterIpv4\":\"$erouterIpv4\"},{\"erouterIpv6\":\"$erouterIpv6\"},{\"PartnerId\":\"$partnerId\"},{\"AccountId\":\"$accountId\"},{\"Version\":\"$firmwareVersion\"},{\"Time\":\"$cur_time\"}"
+ fi
+ echo "outputjson---------------"$outputJson
+
+ remain="{\"<remaining_keys>\":\"<remaining_values>\"}"
+ outputJson=`echo "$dcaOutputJson" | sed "s/$remain/$outputJson/"`
+ echo "outputjson1---------------"$outputJson
+ echo "$outputJson" > $TELEMETRY_JSON_RESPONSE
+ sleep 2
+
+ echo "TELEMETRY_JSON_RESPONSE file is -----------"$TELEMETRY_JSON_RESPONSE
+ if [ "x$DCA_MULTI_CORE_SUPPORTED" = "xyes" ]; then
+ echo "Notify ARM to pick the updated JSON message in $TELEMETRY_JSON_RESPONSE and upload to splunk" >> $RTL_LOG_FILE
+ # Trigger inotify event on ARM to upload message to splunk
+ GetConfigFile $PEER_COMM_ID
+ if [ $triggerType -eq 2 ]; then
+ ssh -I $IDLE_TIMEOUT -i $PEER_COMM_ID root@$ARM_INTERFACE_IP "/bin/echo 'notifyFlushLogs' > $TELEMETRY_INOTIFY_EVENT" > /dev/null 2>&1
+ echo_t "notify ARM for dca execution completion" >> $RTL_LOG_FILE
+ else
+ if [ -f $TELEMETRY_PREVIOUS_LOG -a $triggerType -eq 1 ];then
+ ssh -I $IDLE_TIMEOUT -i $PEER_COMM_ID root@$ARM_INTERFACE_IP "/bin/echo 'previousLog' > $TELEMETRY_INOTIFY_EVENT" > /dev/null 2>&1
+ echo_t "notify ARM for dca running is for previous log" >> $RTL_LOG_FILE
+ else
+ if [ "$bootupTelemetryBackup" = "true" -a $triggerType -eq 1 ];then
+ ssh -I $IDLE_TIMEOUT -i $PEER_COMM_ID root@$ARM_INTERFACE_IP "/bin/echo 'bootupBackup' > $TELEMETRY_INOTIFY_EVENT" > /dev/null 2>&1
+ else
+ ssh -I $IDLE_TIMEOUT -i $PEER_COMM_ID root@$ARM_INTERFACE_IP "/bin/echo 'splunkUpload' > $TELEMETRY_INOTIFY_EVENT" > /dev/null 2>&1
+ fi
+ fi
+ fi
+ rm -f $PEER_COMM_ID
+ else
+ if [ $triggerType -eq 2 ]; then
+ touch $TELEMETRY_EXEC_COMPLETE
+ fi
+ if [ $triggerType -eq 1 -a -f $TELEMETRY_PREVIOUS_LOG ];
+ then
+ echo "calling splunkupload----------------------------"
+ sh /lib/rdk/dcaSplunkUpload.sh logbackup_without_upload &
+ else
+ sh /lib/rdk/dcaSplunkUpload.sh &
+ fi
+ proUpdel=`cat /tmp/DCMSettings.conf | grep -i uploadRepository:uploadProtocol | tr -dc '"' |wc -c`
+ echo "number of proUPdel:"$proUpdel
+ #proUpdel=$((proUpdel - 1))
+ uploadProto=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d '"' -f$proUpdel`
+ echo "Upload protocol is:"$uploadProto
+ if [ "$uploadProto" != "TFTP" ]; then
+ HTTPLOGUPLOADURL=`cat /tmp/DCMSettings.conf | grep -i "urn:settings:LogUploadSettings:RepositoryURL" | cut -d "=" -f2`
+ if [ "$HTTPLOGUPLOADURL" == "" ]; then
+ echo "No HTTP URL configured in xconf,going with internal one !!"
+ HTTPLOGUPLOADURL=$DCM_LA_SERVER_URL
+ fi
+ echo "HTTPURL:"$HTTPLOGUPLOADURL
+ sh $RDK_PATH/uploadSTBLogs.sh $HTTPLOGUPLOADURL 1 1 1 0 0 &
+ else
+ delimnr=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | tr -dc ':' |wc -c`
+ echo "number of deli:"$delimnr
+ delimnr=$((delimnr - 1))
+ TFTPIP=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d ":" -f$delimnr | cut -d '"' -f 2`
+ echo "TFTPIP:"$TFTPIP
+ sh $RDK_PATH/uploadSTBLogs.sh $TFTPIP 1 1 1 0 0 &
+ fi
+ fi
+fi
+
+if [ -f $RTL_DELTA_LOG_FILE ]; then
+ rm -f $RTL_DELTA_LOG_FILE
+fi
+
+if [ -f $TEMP_PATTERN_CONF_FILE ]; then
+ rm -f $TEMP_PATTERN_CONF_FILE
+fi
+
+if [ $triggerType -eq 2 ]; then
+ echo_t "forced DCA execution before log upload/reboot. Clearing all markers !!!" >> $RTL_LOG_FILE
+ # Forced execution before flusing of logs, so clear the markers
+ if [ -d $TELEMETRY_PATH_TEMP ]; then
+ rm -rf $TELEMETRY_PATH_TEMP
+ fi
+ rm -rf $TELEMETRY_PATH
+
+fi
+
+if [ -f $EXEC_COUNTER_FILE ]; then
+ dcaNexecCounter=`cat $EXEC_COUNTER_FILE`
+ dcaNexecCounter=`expr $dcaNexecCounter + 1`
+else
+ dcaNexecCounter=0;
+fi
+
+if [ -f $TELEMETRY_PREVIOUS_LOG ]; then
+ echo_t "dca for previous log done" >> $RTL_LOG_FILE
+ rm -f $TELEMETRY_PREVIOUS_LOG $SORTED_PATTERN_CONF_FILE
+ rm -rf $TEMP_NVRAM_LOG_PATH
+ touch $TELEMETRY_PREVIOUS_LOG_COMPLETE
+fi
+
+echo "$dcaNexecCounter" > $EXEC_COUNTER_FILE
+# PID file cleanup
+pidCleanup
diff --git a/recipes-rdkb/sysint-broadband/files/dcm-log.service b/recipes-rdkb/sysint-broadband/files/dcm-log.service
new file mode 100755
index 0000000..1dd1d90
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/dcm-log.service
@@ -0,0 +1,37 @@
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+[Unit]
+Description=DCM Log Service
+
+After=local-fs.target nvram.service previous-log-backup.service network-online.target systemd-timesyncd.service dump-log.service tr69hostif.service
+Requires=network-online.target
+
+[Service]
+Type=oneshot
+EnvironmentFile=/etc/device.properties
+EnvironmentFile=/etc/dcm.properties
+EnvironmentFile=-/opt/dcm.properties
+ExecStartPre=/bin/sh -c '/bin/touch /rdklogs/logs/dcmscript.log'
+ExecStartPre=/bin/sh -c 'if [ "$DEVICE_TYPE" == "mediaclient" ]; then echo "Not triggered" > /opt/loguploadstatus.txt; fi'
+ExecStart=/bin/sh -c '/lib/rdk/StartDCM.sh >> /rdklogs/logs/telemetry.log &'
+RemainAfterExit=yes
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/recipes-rdkb/sysint-broadband/files/getaccountid.sh b/recipes-rdkb/sysint-broadband/files/getaccountid.sh
new file mode 100755
index 0000000..44ca3cd
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/getaccountid.sh
@@ -0,0 +1,77 @@
+#!/bin/sh
+
+####################################################################################
+# If not stated otherwise in this file or this component's Licenses.txt file the
+# following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##################################################################################
+
+if [ -f /etc/os-release ] || [ -f /etc/device.properties ]; then
+ LOG_FOLDER="/rdklogs"
+else
+ LOG_FOLDER="/var/tmp"
+fi
+
+KEY_LEN="32"
+CONSOLEFILE="$LOG_FOLDER/logs/Consolelog.txt.0"
+
+echo_time()
+{
+ echo "`date +"%y%m%d-%T.%6N"` getAccountId() called from: $0 - $1"
+}
+
+
+check_accountid()
+{
+accountId="$1"
+accountIdlen="$(echo ${#accountId})"
+checkisalnum=`echo $accountId | grep -E '^[-_0-9a-zA-Z]*$'`
+
+if [ "$accountIdlen" -lt "$KEY_LEN" ] && [[ "$checkisalnum" != "" ]] && [[ "$accountId" != "*['!'@'#'"$"%^&*()+]*" ]]; then
+ echo_time "accountId is valid and value retrieved from tr181/webpa param..." >>$CONSOLEFILE
+ echo "$accountId"
+else
+ echo_time "accountId is invalid as contains specail characters or larger than max $KEY_LEN characters..." >>$CONSOLEFILE
+ echo "Unknown"
+fi
+
+}
+
+# Function to get account_id
+getAccountId()
+{
+
+#Get AccountID set in the system via syscfg get command
+accountId=`syscfg get AccountID`
+
+#Try "dmcli" to retrieve accountId if "sysconf" returned null. It's a fallback check.
+if [ "$accountId" == "" ];then
+ accountId=`dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_RFC.Feature.AccountInfo.AccountID | grep string | awk '{print $5}'`
+
+ if [ "$accountId" == "" ]; then
+ echo_time "account_id is not available from syscfg.db or tr181 param, defaulting to Unknown...">>$CONSOLEFILE
+ echo "Unknown"
+ else
+ echo_time "Checking accountId is alphanumeric and not greater than $KEY_LEN characters...">>$CONSOLEFILE
+ check_accountid $accountId
+ fi
+
+else
+ echo_time "Checking accountId is alphanumeric and not greater than $KEY_LEN characters...">>$CONSOLEFILE
+ check_accountid $accountId
+fi
+}
+
diff --git a/recipes-rdkb/sysint-broadband/files/getpartnerid.sh b/recipes-rdkb/sysint-broadband/files/getpartnerid.sh
new file mode 100755
index 0000000..4a05777
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/getpartnerid.sh
@@ -0,0 +1,86 @@
+#!/bin/sh
+
+####################################################################################
+# If not stated otherwise in this file or this component's Licenses.txt file the
+# following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##################################################################################
+
+if [ -f /etc/os-release ] || [ -f /etc/device.properties ]; then
+ LOG_FOLDER="/rdklogs"
+else
+ LOG_FOLDER="/var/tmp"
+fi
+
+source /lib/rdk/t2Shared_api.sh
+
+. /etc/device.properties
+
+CONSOLEFILE="$LOG_FOLDER/logs/Consolelog.txt.0"
+
+echo_time()
+{
+ echo "`date +"%y%m%d-%T.%6N"` getPartnerId() called from: $0 - $1"
+}
+
+# Function to get partner_id
+getPartnerId()
+{
+#Get PartnerID set in the system via syscfg get command
+partner_id=`syscfg get PartnerID`
+syscfg_err=`echo $partner_id | grep -i error`
+
+#Try "dmcli" to retrieve partner_id if "sysconf" returned null. It's a fallback check.
+if [ "$partner_id" == "" ] || [ "$syscfg_err" != "" ];then
+ partner_id=`dmcli eRT getv Device.DeviceInfo.X_RDKCENTRAL-COM_Syndication.PartnerId | grep string | awk '{print $5}'`
+
+ #Check for PartnerID in device.properties if its not set already.
+ if [ "$partner_id" == "" ];then
+ if [ -f "/etc/device.properties" ];then
+# PARTNER_ID is read from etc/device.properties file
+ partner_id=`echo $PARTNER_ID`
+ if [ "$partner_id" == "" ];then
+ echo_time "partner_id is not available from syscfg.db or tr181 param or device.properties, defaulting to comcast..">>$CONSOLEFILE
+ t2CountNotify "SYS_ERROR_PartnerId_missing_sycfg"
+ echo "comcast"
+ else
+ echo_time "partner_id is not available from syscfg.db or tr181 param, value retrieved from device.properties : $partner_id">>$CONSOLEFILE
+ echo "$partner_id"
+ fi
+ else
+ echo_time "partner_id is not available, defaulting to comcast.">>$CONSOLEFILE
+ echo "comcast"
+ fi
+ else
+ echo_time "partner_id is not available from syscfg.db, value retrieved from tr181 param : $partner_id">>$CONSOLEFILE
+ echo "$partner_id"
+ fi
+else
+ echo_time "partner_id retrieved from syscfg.db : $partner_id">>$CONSOLEFILE
+ echo "$partner_id"
+fi
+}
+
+getExperience()
+{
+ echo ""
+}
+
+case=$1
+if [ "$case" = "GetPartnerID" ]; then
+ getPartnerId
+fi
+
diff --git a/recipes-rdkb/sysint-broadband/files/interfaceCalls.sh b/recipes-rdkb/sysint-broadband/files/interfaceCalls.sh
new file mode 100755
index 0000000..05f2fd6
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/interfaceCalls.sh
@@ -0,0 +1,93 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+. /etc/include.properties
+. /etc/device.properties
+#. /etc/env_setup.sh
+
+processCheck()
+{
+ count=`ps | grep $1 | grep -v grep | wc -l`
+ if [ $count == 0 ]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+
+getMacAddress()
+{
+ ifconfig -a | grep $ESTB_INTERFACE | tr -s ' ' | cut -d ' ' -f5
+}
+
+syncLog()
+{
+ cWD=`pwd`
+ syncPath=`find $TEMP_LOG_PATH -type l -exec ls -l {} \; | cut -d ">" -f2`
+ if [ "$syncPath" != "$LOG_PATH" ] && [ -d "$TEMP_LOG_PATH" ]; then
+ cd "$TEMP_LOG_PATH"
+ for file in `ls *.txt *.log`
+ do
+ cat $file >> $LOG_PATH/$file
+ cat /dev/null > $file
+ done
+ cd $cWD
+ else
+ echo "Sync Not needed, Same log folder"
+ fi
+}
+
+rebootFunc()
+{
+ if [ -f savepwrstate.sh ]; then
+ sh /savepwrstate.sh
+ sleep 1
+ fi
+ sync
+
+ if [ ! -f $PERSISTENT_PATH/.lightsleepKillSwitchEnable ]; then
+ syncLog
+
+ if [ -f $TEMP_LOG_PATH/error.log ]; then
+ cat $TEMP_LOG_PATH/error.log >> $PERSISTENT_PATH/www/error.log
+ cat /dev/null > $TEMP_LOG_PATH/error.log
+ fi
+
+ if [ -f $TEMP_LOG_PATH/.systime ]; then
+ cp $TEMP_LOG_PATH/.systime $PERSISTENT_PATH/
+ fi
+
+ if [ -f $TEMP_LOG_PATH/access.log ]; then
+ cat $TEMP_LOG_PATH/access.log >> $PERSISTENT_PATH/www/access.log
+ cat /dev/null > $TEMP_LOG_PATH/access.log
+ fi
+ fi
+
+ reboot
+}
+
+
+# Return system uptime in seconds
+Uptime()
+{
+ cat /proc/uptime | awk '{ split($1,a,"."); print a[1]; }'
+}
+
+
diff --git a/recipes-rdkb/sysint-broadband/files/logfiles.sh b/recipes-rdkb/sysint-broadband/files/logfiles.sh
new file mode 100755
index 0000000..3d11724
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/logfiles.sh
@@ -0,0 +1,829 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+#
+
+. /etc/include.properties
+. /etc/device.properties
+
+#RDK-B LOGS
+BootTimeLog="BootTime.log"
+BootTimeLogBackup="BootTime.log.*"
+speedtestLog="speedtest.log"
+speedtestLogBackup="speedtest.log.*"
+ArmConsolelog="ArmConsolelog.txt.0"
+ArmConsolelogBackup="ArmConsolelog.txt.*"
+Consolelog="Consolelog.txt.0"
+ConsolelogBackup="Consolelog.txt.*"
+LMlog="LM.txt.0"
+LMlogBackup="LM.txt.*"
+PAMlog="PAMlog.txt.0"
+PAMlogBackup="PAMlog.txt.*"
+PARODUSlog="PARODUSlog.txt.0"
+PARODUSlogBackup="PARODUSlog.txt.*"
+PSMlog="PSMlog.txt.0"
+PSMlogBackup="PSMlog.txt.*"
+TDMlog="TDMlog.txt.0"
+TDMlogBackup="TDMlog.txt.*"
+TR69log="TR69log.txt.0"
+TR69logBackup="TR69log.txt.*"
+WEBPAlog="WEBPAlog.txt.0"
+WEBPAlogBackup="WEBPAlog.txt.*"
+WiFilog="WiFilog.txt.0"
+WiFilogBackup="WiFilog.txt.*"
+FirewallDebug="FirewallDebug.txt"
+FirewallDebugBackup="FirewallDebug.txt.*"
+MnetDebug="MnetDebug.txt"
+MnetDebugBackup="MnetDebug.txt.*"
+wifihealthlog="wifihealth.txt"
+wifihealthBackup="wifihealth.txt.*"
+CRLog="CRlog.txt.0"
+CRLogBackup="CRlog.txt.*"
+
+xreLog="receiver.log"
+cecLog="cec_log.txt"
+cecLogsBackup="cec_log.txt.*"
+xreLogsBackup="receiver.log.*"
+receiverMON="ReceiverMON.txt"
+runXreLog="runXRE_log.txt"
+runXreLogsBackup="runXRE_log.txt.*"
+greenpeakLog="greenpeak.log"
+greenpeakLogsBackup="greenpeak.log.*"
+appStatusLog="app_status.log"
+appStatusLogsBackup="app_status.log.*"
+gpInitLog="gp_init.log"
+gpInitLogsBackup="gp_init.log.*"
+#demsg Logs
+dmesgLog="messages_printk.txt"
+dmesgLogsBackup="messages_printk_bak*"
+sysLog="messages.txt"
+ntpLog="ntp.log"
+sysLogsBackup="messages.txt.*"
+ntpLogsBackup="ntp.log.*"
+sysDmesgLog="messages-dmesg.txt"
+sysDmesgLogsBackup="messages-dmesg.txt.*"
+startupDmesgLog="startup_stdout_log.txt"
+startupDmesgLogsBackup="startup_stdout_log.*"
+lighttpdErrorLog="lighttpd.error.log"
+lighttpdErrorLogsBackup="lighttpd.error.log.*"
+lighttpdAccessLog="lighttpd.access.log"
+lighttpdAccessLogsBackup="lighttpd.access.log.*"
+dcmLog="dcmscript.log"
+dcmLogsBackup="dcmscript.log.*"
+uiLog="uimgr_log.txt"
+uiLogsBackup="uimgr_log.txt.*"
+storagemgrLog="storagemgr.log"
+storagemgrLogsBackup="storagemgr.log.*"
+rf4ceLog="rf4ce_log.txt"
+rf4ceLogsBackup="rf4ce_log.txt.*"
+ctrlmLog="ctrlm_log.txt"
+ctrlmLogsBackup="ctrlm_log.txt.*"
+xDiscoveryLog="xdiscovery.log"
+xDiscoveryLogsBackup="xdiscovery.log.*"
+xDiscoveryListLog="xdiscoverylist.log"
+xDiscoveryListLogsBackup="xdiscoverylist.log.*"
+hdmiLog="hdmi_log.txt"
+rebootLog="reboot.log"
+rebootInfoLog="rebootInfo.log"
+ueiLog="uei_init.log"
+wbLog="wbdevice.log"
+swUpdateLog="swupdate.log"
+topLog="top_log.txt"
+topLogsBackup="top_log.txt.*"
+mocaLog="mocalog.txt"
+coreLog="coredump.log"
+coreDumpLog="core_log.txt"
+coreDumpLogsBackup="core_log.txt.*"
+version="version.txt"
+fusionDaleLog="fusiondale_log.txt"
+socProvisionLog="socprov.log"
+socProvisionLogsBackup="socprov.log.*"
+socProvisionCryptoLog="socprov-crypto.log"
+socProvisionCryptoLogsBackup="socprov-crypto.log.*"
+applicationsLog="applications.log"
+applicationsLogsBackup="applications.log.*"
+systemLog="system.log"
+systemLogsBackup="system.log.*"
+bootUpLog="bootlog"
+resetLog="Reset.txt"
+resetLogsBackup="Reset.txt"
+backUpDumpLog="backupCoreDumpLog.txt"
+gpLog="gp.log"
+gpLogsBackup="gp.log.*"
+diskInfoLog="diskInfo.txt"
+diskEventsLog="diskEvents.txt"
+
+rmfLog="rmfstr_log.txt"
+rmfLogsBackup="rmfstr_log.txt.*"
+podLog="pod_log.txt"
+podLogsBackup="pod_log.txt.*"
+vodLog="vodclient_log.txt"
+vodLogsBackup="vodclient_log.txt.*"
+rstreamFdLog="rstreamer_fdlist.txt"
+
+recorderLog="/opt/rec_debug.log"
+fdsLog="fds.log"
+fdsLogsBackup="fds.log.*"
+trmLog="trm.log"
+trmMgrLog="trmmgr.log"
+trmLogsBackup="trm.log.*"
+trmMgrLogsBackup="trmmgr.log.*"
+threadLog="vlthreadanalyzer_log.txt"
+threadLogsBackup="vlthreadanalyzer_log.txt.*"
+xDeviceLog="xdevice.log"
+xDeviceLogsBackup="xdevice.log.*"
+authServiceLog="authservice.log"
+cardProvisionCheckLog="card-provision-check.log"
+ipdnlLog="ipdllogfile.txt"
+diskCleanupInfoLog="disk_cleanup_info.log"
+topOsalLog="top_osal.txt"
+topOsalLogsBackup="top_osal.txt.*"
+mocaStatusLog="mocaStatus.log"
+mocaStatusLogsBackup="mocaStatus.log.*"
+mfrLog="mfrlib_log.txt"
+mfrLogsBackup="mfrlib_log.txt.*"
+mfrLogRdk="mfr_log.txt"
+mfrLogsRdkBackup="mfr_log.txt.*"
+adobeCleanupLog="cleanAdobe.log"
+
+cefLog="cef.log"
+cefLogsBackup="cef.log.*"
+diskCleanupLog="disk_cleanup.log"
+diskCleanupLog1="disk_cleanup.log"
+diskCleanupLogsBackup="disk_cleanup.log.*"
+decoderStatusLog="procStatus.log"
+decoderStatusLogsBackup="procStatus.log.*"
+recorderLog="/opt/rec_debug.log"
+psLogsBackup=ps_out.txt*
+netsrvLog="netsrvmgr.log"
+netsrvLogsBackup="netsrvmgr.log.*"
+samhainLog="samhain.log"
+samhainLogsBackup="samhain.log.*"
+fogLog="fog.log"
+fogLogsBackup="fog.log.*"
+hddStatusLog="diskinfo.log"
+hddStatusLogsBackup="diskinfo.log.*"
+xiRecoveryLog="discoverV4Client.log"
+xiRecoveryLogsBackup="discoverV4Client.log.*"
+dropbearLog="dropbear.log"
+dropbearLogsBackup="dropbear.log.*"
+bluetoothLog="btmgrlog.txt"
+bluetoothLogBackup="btmgrlog.txt.*"
+mountLog="mount_log.txt"
+mountLogBackup="mount_log.txt.*"
+rbiDaemonLog="rbiDaemon.log"
+rbiDaemonLogsBackup="rbiDaemon.log.*"
+rfcLog="rfcscript.log"
+rfcLogsBackup="rfcscript.log.*"
+tlsLog="tlsError.log"
+tlsLogsBackup="tlsError.log.*"
+playreadycdmiLog="playreadycdmi.log"
+playreadycdmiLogsBackup="playreadycdmi.log.*"
+wpecdmiLog="wpecdmi.log"
+wpecdmiLogsBackup="wpecdmi.log.*"
+pingTelemetryLog="ping_telemetry.log"
+pingTelemetryLogsBackup="ping_telemetry.log.*"
+deviceDetailsLog="device_details.log"
+zramLog="zram.log"
+zramLogsBackup="zram.log.*"
+appmanagerLog="appmanager.log"
+appmanagerLogsBackup="appmanager.log.*"
+hwselfLog="hwselftest.log"
+hwselfLogsBackup="hwselftest.log.*"
+easPcapFile="eas.pcap"
+mocaPcapFile="moca.pcap"
+nlmonLog="nlmon.log"
+nlmonLogsBackup="nlmon.log.*"
+audiocapturemgrLogs="audiocapturemgr.log"
+
+if [ "$CONTAINER_SUPPORT" == "true" ];then
+ xreLxcLog="xre.log"
+ xreLxcLogsBackup="xre.log.*"
+ xreLxcApplicationsLog="xre-applications.log"
+ xreLxcApplicationsLogsBackup="xre-applications.log.*"
+fi
+
+if [ "$SOC" = "BRCM" ];then
+ nxSvrLog="nxserver.log"
+ nxSvrLogsBackup="nxserver.log.*"
+ procStatusLog="proc-status-logger.log"
+ procStatusLogsBackup="proc-status-logger.log.*"
+fi
+
+
+if [ "$DEVICE_TYPE" != "mediaclient" ]; then
+ riLog="ocapri_log.txt"
+ riLogsBackup="ocapri_log.txt.*"
+ riLogsBackup1="ocapri_log.txt_1"
+ mpeosmainMON="mpeos-mainMON.txt"
+ mpeosRebootLog="/opt/mpeos_reboot_log.txt"
+ cardStatusLog="card_status.log"
+ heapDmpLog="jvmheapdump.txt"
+ rfStatisticsLog="rf_statistics_log.txt"
+ ablReasonLog="ABLReason.txt"
+ ecmLog="messages-ecm.txt"
+ ecmLogsBackup="messages-ecm.txt.*"
+ pumaLog="messages-puma.txt"
+ pumaLogsBackup="messages-puma.txt.*"
+ pumaLog1="messages-ecm.txt"
+ pumaLogsBackup1="messages-ecm.txt.*"
+ xfsdmesgLog="xfs_mount_dmesg.txt"
+ snmpdLog="snmpd.log"
+ snmpdLogsBackup="snmpd.log.*"
+ upstreamStatsLog="upstream_stats.log"
+ upstreamStatsLogsBackup="upstream_stats.log.*"
+ dibblerLog="dibbler.log"
+ dibblerLogsBackup="dibbler.log.*"
+ dnsmasqLog="dnsmasq.log"
+ dnsmasqLogsBackup="dnsmasq.log.*"
+else
+ ablReasonLog="ABLReason.txt"
+ wifiTelemetryLog="wifi_telemetry.log"
+ wifiTelemetryLogBackup="wifi_telemetry.log.*"
+ tr69Log="tr69Client.log"
+ tr69AgentLog="tr69agent.log"
+ tr69HostIfLog="tr69hostif.log"
+ gatewayLog="gwSetupLogs.txt"
+ ipSetupLog="ipSetupLogs.txt"
+ tr69DownloadLog="tr69FWDnld.log"
+ tr69AgentHttpLog="tr69agent_HTTP.log"
+ tr69AgentHttpLogsBackup="tr69agent_HTTP.log.*"
+ tr69AgentSoapLog="tr69agent_SoapDebug.log"
+ tr69AgentSoapLogsBackup="tr69agent_SoapDebug.log.*"
+ webpavideoLog="webpavideo.log"
+ webpavideoLogsBackup="webpavideo.log.*"
+ xiConnectionStatusLog="xiConnectionStats.txt"
+ xiConnectionStatusLogsBackup="xiConnectionStats.txt.*"
+fi
+if [ "$WIFI_SUPPORT" == "true" ];then
+ wpaSupplicantLog="wpa_supplicant.log"
+ wpaSupplicantLogsBackup="wpa_supplicant.log.*"
+ dhcpWifiLog="dhcp-wifi.log"
+ dhcpWifiLogsBackup="dhcp-wifi.log.*"
+fi
+if [ "$DEVICE_TYPE" == "XHC1" ];then
+
+ streamsrvLog="stream_server_log.txt"
+ streamsrvLogsBackup="stream_server_log.txt.*"
+
+ stunnelHttpsLog="stunnel_https_log.txt"
+ stunnelHttpsLogsBackup="stunnel_https_log.txt.*"
+
+ upnpLog="upnp_log.txt"
+ upnpLogsBackup="upnp_log.txt.*"
+
+ upnpigdLog="upnpigd_log.txt"
+ upnpigdLogsBackup="upnpigd_log.txt.*"
+
+ cgiLog="cgi_log.txt"
+ cgiLogsBackup="cgi_log.txt.*"
+
+ systemLog="system_log.txt"
+ systemLogsBackup="system_log.txt.*"
+
+ eventLog="event_log.txt"
+ eventLogsBackup="event_log.txt.*"
+
+ xw3MonitorLog="oem_log.txt"
+ xw3MonitorLogsBackup="oem_log.txt.*"
+
+ sensorDLog="sensor_daemon_log.txt"
+ sensorDLogsBackup="sensor_daemon_log.txt.*"
+
+ webpaLog="webpa_log.txt"
+ webpaLogsBackup="webpa_log.txt.*"
+
+ xwclientLog="xwclient_log.txt"
+ xwclientLogsBackup="xwclient_log.txt.*"
+
+ xwswupdateLog="xwswupdate.log"
+ xwswupdateLogsBackup="xwswupdate.log.*"
+
+ userLog="user_log.txt"
+ userLogsBackup="user_log.txt.*"
+
+ webrtcStreamingLog="webrtc_streaming_log.txt"
+ webrtcStreamingLogsBackup="webrtc_streaming_log.txt.*"
+
+ cvrPollLog="cvrpoll_log.txt"
+ cvrPollLogsBackup="cvrpoll_log.txt.*"
+
+ thumbnailUploadLog="thumbnail_log.txt"
+ thumbnailUploadBackupLog="thumbnail_log.txt.*"
+
+ metricsLog="dmesg_log.txt"
+ metricsLogsBackup="dmesg_log.txt.*"
+
+ wifiLog="wifi_log.txt"
+ wifiLogsBackup="wifi_log.txt.*"
+
+ rfcLog="rfcscript.log"
+ rfcLogsBackup="rfcscript.log.*"
+
+ overlayLog="overlay_log.txt"
+ overlayLogsBackup="overlay_log.txt.*"
+
+ xvisionLog="xvision_log.txt"
+ xvisionLogsBackup="xvision_log.txt.*"
+
+ ivaDaemonLog="iva_daemon_log.txt"
+ ivaDaemonLogsBackup="iva_daemon_log.txt.*"
+
+ evoLog="evo_log.txt"
+ evoBackupLog="evo_log.txt.*"
+
+ camstreamsrvLog="camstreamserver.log"
+ camstreamsrvLogsBackup="camstreamserver.log.*"
+
+ mongsLog="mongoose-cam-stream-server.txt"
+ mongsLogsBackup="mongoose-cam-stream-server.txt.*"
+fi
+
+if [ "$HDD_ENABLED" = "false" ]; then
+ sysLogBAK1="bak1_messages.txt"
+ sysLogBAK2="bak2_messages.txt"
+ sysLogBAK3="bak3_messages.txt"
+ logBAK1="bak1_*"
+ logBAK2="bak2_*"
+ logBAK3="bak3_*"
+fi
+
+moveFile()
+{
+ if [[ -f $1 ]]; then mv $1 $2; fi
+}
+
+moveFiles()
+{
+ currentDir=`pwd`
+ cd $2
+
+ for f in `ls $3 2>/dev/null`
+ do
+ $1 $f $4
+ done
+
+ cd $currentDir
+}
+
+backup()
+{
+ source=$1
+ destn=$2
+ operation=$3
+ if [ "$DEVICE_TYPE" != "mediaclient" ]; then
+ if [ -f $source$riLog ] ; then $operation $source$riLog $destn; fi
+ if [ -f $mpeosRebootLog ] ; then
+ if [ "$BUILD_TYPE" = "dev" ]; then
+ cp $mpeosRebootLog $destn
+ mv $recorderLog $destn
+ else
+ mv $recorderLog $destn
+ $operation $mpeosRebootLog $destn
+ fi
+ fi
+ fi
+ if [ -f $source$xreLog ] ; then $operation $source$xreLog $destn; fi
+ if [ -f $source$cecLog ] ; then $operation $source$cecLog $destn; fi
+ if [ -f $source$wbLog ] ; then $operation $source$wbLog $destn; fi
+ if [ -f $source$sysLog ] ; then $operation $source$sysLog $destn; fi
+ if [ -f $source$ntpLog ] ; then $operation $source$ntpLog $destn; fi
+ if [ -f $source/$uiLog ] ; then $operation $source/$uiLog $destn; fi
+ if [ -f $source/$storagemgrLog ] ; then $operation $source/$storagemgrLog $destn; fi
+ if [ -f $source/$rf4ceLog ] ; then $operation $source/$rf4ceLog $destn; fi
+ if [ -f $source/$ctrlmLog ] ; then $operation $source/$ctrlmLog $destn; fi
+ if [ -f $source/$applicationsLog ] ; then $operation $source/$applicationsLog $destn; fi
+ if [ -f $source/$systemLog ] ; then $operation $source/$systemLog $destn; fi
+ if [ -f $source/$bootUpLog ] ; then $operation $source/$bootUpLog $destn; fi
+ if [ -f $source/$startupDmesgLog ] ; then $operation $source/$startupDmesgLog $destn; fi
+ if [ -f $source/$diskCleanupLog ] ; then $operation $source/$diskCleanupLog $destn; fi
+ if [ -f $source/$diskCleanupInfoLog ] ; then $operation $source/$diskCleanupInfoLog $destn; fi
+ if [ -f $source/$diskCleanupLog1 ] ; then $operation $source/$diskCleanupLog1 $destn; fi
+ if [ -f $source$sysDmesgLog ] ; then $operation $source$sysDmesgLog $destn; fi
+ if [ -f $source$coreDumpLog ] ; then $operation $source$coreDumpLog $destn; fi
+ if [ -f $source$adobeCleanupLog ] ; then $operation $source$adobeCleanupLog $destn; fi
+ if [ -f $source$bluetoothLog ] ; then $operation $source$bluetoothLog $destn; fi
+ if [ -f $source$easPcapFile ] ; then $operation $source$easPcapFile $destn; fi
+ if [ -f $source$mocaPcapFile ] ; then $operation $source$mocaPcapFile $destn; fi
+ if [ -f $source$mountLog ] ; then $operation $source$mountLog $destn; fi
+ if [ "$CONTAINER_SUPPORT" == "true" ];then
+ if [ -f $source$xreLxcLog ] ; then $operation $source$xreLxcLog $destn; fi
+ if [ -f $source/$xreLxcApplicationsLog ] ; then $operation $source/$xreLxcApplicationsLog $destn; fi
+ fi
+
+ if [ "$SOC" = "BRCM" ];then
+ if [ -f $source$nxSvrLog ] ; then $operation $source$nxSvrLog $destn; fi
+ if [ -f $source$procStatusLog ] ; then $operation $source$procStatusLog $destn; fi
+ fi
+}
+
+crashLogsBackup()
+{
+ opern=$1
+ src=$2
+ destn=$3
+
+ moveFiles $opern $src receiver.log_* $destn
+ moveFiles $opern $src ocapri_log.txt_* $destn
+ moveFiles $opern $src messages.txt_* $destn
+ moveFiles $opern $src app_status_backup.log_* $destn
+}
+
+backupAppBackupLogFiles()
+{
+ opern=$1
+ source=$2
+ destn=$3
+
+ if [ "$DEVICE_TYPE" != "mediaclient" ]; then
+ moveFiles $opern $source $BootTimeLogBackup $destn
+ moveFiles $opern $source $speedtestLogBackup $destn
+ moveFiles $opern $source $ArmConsolelogBackup $destn
+ moveFiles $opern $source $ConsolelogBackup $destn
+ moveFiles $opern $source $PAMlogBackup $destn
+ moveFiles $opern $source $PARODUSlogBackup $destn
+ moveFiles $opern $source $PSMlogBackup $destn
+ moveFiles $opern $source $TDMlogBackup $destn
+ moveFiles $opern $source $TR69logBackup $destn
+ moveFiles $opern $source $WEBPAlogBackup $destn
+ moveFiles $opern $source $WiFilogBackup $destn
+ moveFiles $opern $source $FirewallDebugBackup $destn
+ moveFiles $opern $source $MnetDebugBackup $destn
+ moveFiles $opern $source $wifihealthBackup $destn
+ moveFiles $opern $source $CRLogBackup $destn
+ moveFiles $opern $source $LMlogBackup $destn
+
+ moveFiles $opern $source $riLogsBackup $destn
+ moveFiles $opern $source $riLogsBackup1 $destn
+ moveFiles $opern $source $ecmLogsBackup $destn
+ moveFiles $opern $source $pumaLogsBackup $destn
+ moveFiles $opern $source $pumaLogsBackup1 $destn
+ moveFiles $opern $source $snmpdLogsBackup $destn
+ moveFiles $opern $source $upstreamStatsLogsBackup $destn
+ moveFiles $opern $source $dibblerLogsBackup $destn
+ moveFiles $opern $source $dnsmasqLogsBackup $destn
+ else
+ moveFiles $opern $source $wifiTelemetryLogBackup $destn
+ moveFiles $opern $source $tr69AgentHttpLogsBackup $destn
+ moveFiles $opern $source $tr69AgentSoapLogsBackup $destn
+ moveFiles $opern $source $webpavideoLogsBackup $destn
+ moveFiles $opern $source $xiConnectionStatusLogsBackup $destn
+ fi
+ if [ "$WIFI_SUPPORT" == "true" ];then
+ moveFiles $opern $source $wpaSupplicantLogsBackup $destn
+ moveFiles $opern $source $dhcpWifiLogsBackup $destn
+ fi
+ if [ "$DEVICE_TYPE" == "XHC1" ];then
+ moveFiles $opern $source $streamsrvLogsBackup $destn
+ moveFiles $opern $source $stunnelHttpsLogsBackup $destn
+ moveFiles $opern $source $upnpLogsBackup $destn
+ moveFiles $opern $source $upnpigdLogsBackup $destn
+ moveFiles $opern $source $cgiLogsBackup $destn
+ moveFiles $opern $source $systemLogsBackup $destn
+ moveFiles $opern $source $eventLogsBackup $destn
+ moveFiles $opern $source $xw3MonitorLogsBackup $destn
+ moveFiles $opern $source $sensorDLogsBackup $destn
+ moveFiles $opern $source $webpaLogsBackup $destn
+ moveFiles $opern $source $xwclientLogsBackup $destn
+ moveFiles $opern $source $xwswupdateLogsBackup $destn
+ moveFiles $opern $source $userLogsBackup $destn
+ moveFiles $opern $source $webrtcStreamingLogsBackup $destn
+ moveFiles $opern $source $cvrPollLogsBackup $destn
+ moveFiles $opern $source $ivaDaemonLogsBackup $destn
+ moveFiles $opern $source $thumbnailUploadBackupLog $destn
+ moveFiles $opern $source $metricsLogsBackup $destn
+ moveFiles $opern $source $wifiLogsBackup $destn
+ moveFiles $opern $source $dcmLogsBackup $destn
+ moveFiles $opern $source $netsrvLogsBackup $destn
+ moveFiles $opern $source $diskCleanupLogsBackup $destn
+ moveFiles $opern $source $applicationsLogsBackup $destn
+ moveFiles $opern $source $rfcLogsBackup $destn
+ moveFiles $opern $source $overlayLogsBackup $destn
+ moveFiles $opern $source $sysLogsBackup $destn
+ moveFiles $opern $source $startupDmesgLogsBackup $destn
+ moveFiles $opern $source $sysDmesgLogsBackup $destn
+ moveFiles $opern $source $xvisionLogsBackup $destn
+ moveFiles $opern $source $evoBackupLog $destn
+ moveFiles $opern $source $camstreamsrvLogsBackup $destn
+ moveFiles $opern $source $mongsLogsBackup $destn
+ else
+ moveFiles $opern $source $mocaStatusLogsBackup $destn
+ moveFiles $opern $source $runXreLogsBackup $destn
+ moveFiles $opern $source $xreLogsBackup $destn
+ moveFiles $opern $source $cecLogsBackup $destn
+ moveFiles $opern $source $sysLogsBackup $destn
+ moveFiles $opern $source $ntpLogsBackup $destn
+ moveFiles $opern $source $startupDmesgLogsBackup $destn
+ moveFiles $opern $source $gpInitLogsBackup $destn
+ moveFiles $opern $source $appStatusLogsBackup $destn
+ moveFiles $opern $source $dmesgLogsBackup $destn
+ moveFiles $opern $source $xDiscoveryLogsBackup $destn
+ moveFiles $opern $source $xDiscoveryListLogsBackup $destn
+ moveFiles $opern $source $uiLogsBackup $destn
+ moveFiles $opern $source $storagemgrLogsBackup $destn
+ moveFiles $opern $source $rf4ceLogsBackup $destn
+ moveFiles $opern $source $ctrlmLogsBackup $destn
+ moveFiles $opern $source $lighttpdErrorLogsBackup $destn
+ moveFiles $opern $source $lighttpdAccessLogsBackup $destn
+ moveFiles $opern $source $dcmLogsBackup $destn
+ moveFiles $opern $source $greenpeakLogsBackup $destn
+ moveFiles $opern $source $trmLogsBackup $destn
+ moveFiles $opern $source $trmMgrLogsBackup $destn
+ moveFiles $opern $source $rmfLogsBackup $destn
+ moveFiles $opern $source $podLogsBackup $destn
+ moveFiles $opern $source $vodLogsBackup $destn
+ moveFiles $opern $source $fdsLogsBackup $destn
+ moveFiles $opern $source $threadLogsBackup $destn
+ moveFiles $opern $source $xDeviceLogsBackup $destn
+ moveFiles $opern $source $coreDumpLogsBackup $destn
+ moveFiles $opern $source $applicationsLogsBackup $destn
+ moveFiles $opern $source $socProvisionLogsBackup $destn
+ moveFiles $opern $source $socProvisionCryptoLogsBackup $destn
+ moveFiles $opern $source $topOsalLogsBackup $destn
+ moveFiles $opern $source $decoderStatusLogsBackup $destn
+ moveFiles $opern $source $mfrLogsBackup $destn
+ moveFiles $opern $source $mfrLogsRdkBackup $destn
+ moveFiles $opern $source $sysDmesgLogsBackup $destn
+ moveFiles $opern $source $resetLogsBackup $destn
+ moveFiles $opern $source $gpLogsBackup $destn
+ moveFiles $opern $source $psLogsBackup $destn
+ moveFiles $opern $source $cefLogsBackup $destn
+ moveFiles $opern $source $topLogsBackup $destn
+ moveFiles $opern $source $netsrvLogsBackup $destn
+ moveFiles $opern $source $diskCleanupLogsBackup $destn
+ moveFiles $opern $source $samhainLogsBackup $destn
+ moveFiles $opern $source $fogLogsBackup $destn
+ moveFiles $opern $source $hddStatusLogsBackup $destn
+ moveFiles $opern $source $xiRecoveryLogsBackup $destn
+ moveFiles $opern $source $dropbearLogsBackup $destn
+ moveFiles $opern $source $bluetoothLogBackup $destn
+ moveFiles $opern $source $easPcapFile $destn
+ moveFiles $opern $source $mocaPcapFile $destn
+ moveFiles $opern $source $mountLogBackup $destn
+ moveFiles $opern $source $rbiDaemonLogsBackup $destn
+ moveFiles $opern $source $rfcLogsBackup $destn
+ moveFiles $opern $source $tlsLogsBackup $destn
+ moveFiles $opern $source $playreadycdmiLogsBackup $destn
+ moveFiles $opern $source $wpecdmiLogsBackup $destn
+ moveFiles $opern $source $pingTelemetryLogsBackup $destn
+ moveFiles $opern $source $zramLogsBackup $destn
+ moveFiles $opern $source $appmanagerLogsBackup $destn
+ moveFiles $opern $source $nlmonLogsBackup $destn
+ moveFiles $opern $source $hwselfLogsBackup $destn
+ fi
+
+ if [ "$CONTAINER_SUPPORT" == "true" ];then
+ moveFiles $opern $source $xreLxcLogsBackup $destn
+ moveFiles $opern $source $xreLxcApplicationsLogsBackup $destn
+ fi
+
+ moveFiles $opern $source $systemLogsBackup $destn
+ if [ "$SOC" = "BRCM" ];then
+ moveFiles $opern $source $nxSvrLogsBackup $destn
+ moveFiles $opern $source $procStatusLogsBackup $destn
+ fi
+ # backup older cycle logs
+ if [ "$MEMORY_LIMITATION_FLAG" = "true" ]; then
+ moveFiles $opern $source $logBAK1 $destn
+ moveFiles $opern $source $logBAK2 $destn
+ moveFiles $opern $source $logBAK3 $destn
+ fi
+
+}
+
+backupSystemLogFiles()
+{
+ operation=$1
+ source=$2
+ destn=$3
+
+ if [ -f $source/$BootTimeLog ] ; then $operation $source/$BootTimeLog $destn; fi
+ if [ -f $source/$speedtestLog ] ; then $operation $source/$speedtestLog $destn; fi
+ if [ -f $source/$ArmConsolelog ] ; then $operation $source/$ArmConsolelog $destn; fi
+ if [ -f $source/$Consolelog ] ; then $operation $source/$Consolelog $destn; fi
+ if [ -f $source/$LMlog ] ; then $operation $source/$LMlog $destn; fi
+ if [ -f $source/$PAMlog ] ; then $operation $source/$PAMlog $destn; fi
+ if [ -f $source/$PARODUSlog ] ; then $operation $source/$PARODUSlog $destn; fi
+ if [ -f $source/$PSMlog ] ; then $operation $source/$PSMlog $destn; fi
+ if [ -f $source/$TDMlog ] ; then $operation $source/$TDMlog $destn; fi
+ if [ -f $source/$TR69log ] ; then $operation $source/$TR69log $destn; fi
+ if [ -f $source/$WEBPAlog ] ; then $operation $source/$WEBPAlog $destn; fi
+ if [ -f $source/$WiFilog ] ; then $operation $source/$WiFilog $destn; fi
+ if [ -f $source/$FirewallDebug ] ; then $operation $source/$FirewallDebug $destn; fi
+ if [ -f $source/$MnetDebug ] ; then $operation $source/$MnetDebug $destn; fi
+ if [ -f $source/$wifihealthlog ] ; then $operation $source/$wifihealthlog $destn; fi
+ if [ -f $source/$CRLog ] ; then $operation $source/$CRLog $destn; fi
+
+
+ # generic Logs
+ if [ -f $source/$systemLog ] ; then $operation $source/$systemLog $destn; fi
+ if [ -f $source/$resetLog ] ; then $operation $source/$resetLog $destn; fi
+ if [ -f $source/$backUpDumpLog ] ; then $operation $source/$backUpDumpLog $destn; fi
+ if [ -f $source/$bootUpLog ] ; then $operation $source/$bootUpLog $destn; fi
+ if [ -f $source/$applicationsLog ] ; then $operation $source/$applicationsLog $destn; fi
+ if [ -f $source/$runXreLog ] ; then $operation $source/$runXreLog $destn; fi
+ if [ -f $source/$xreLog ] ; then $operation $source/$xreLog $destn; fi
+ if [ -f $source/$cecLog ] ; then $operation $source/$cecLog $destn; fi
+ if [ -f $source/$gpInitLog ] ; then $operation $source/$gpInitLog $destn; fi
+ if [ -f $source/$hdmiLog ] ; then $operation $source/$hdmiLog $destn; fi
+ if [ -f $source/$uiLog ] ; then $operation $source/$uiLog $destn; fi
+ if [ -f $source/$storagemgrLog ] ; then $operation $source/$storagemgrLog $destn; fi
+ if [ -f $source/$rf4ceLog ] ; then $operation $source/$rf4ceLog $destn; fi
+ if [ -f $source/$ctrlmLog ] ; then $operation $source/$ctrlmLog $destn; fi
+ if [ -f $source/$ipdnlLog ] ; then $operation $source/$ipdnlLog $destn; fi
+
+ if [ -f $source/$fdsLog ] ; then $operation $source/$fdsLog $destn; fi
+ if [ -f $source/$dmesgLog ] ; then $operation $source/$dmesgLog $destn; fi
+ if [ -f $source/$appStatusLog ] ; then $operation $source/$appStatusLog $destn; fi
+ if [ -f $source/$gpLog ]; then $operation $source/$gpLog $destn; fi
+ if [ -f $source/$sysLog ] ; then $operation $source/$sysLog $destn; fi
+ if [ -f $source/$ntpLog ] ; then $operation $source/$ntpLog $destn; fi
+ if [ -f $source/$wbLog ] ; then $operation $source/$wbLog $destn; fi
+ if [ -f $source/$ueiLog ] ; then $operation $source/$ueiLog $destn; fi
+ if [ -f $source/$receiverMON ] ; then $operation $source/$receiverMON $destn; fi
+ if [ -f $source/$swUpdateLog ] ; then $operation $source/$swUpdateLog $destn; fi
+ if [ -f $source/$topLog ] ; then $operation $source/$topLog $destn; fi
+ if [ -f $source/$fusionDaleLog ] ; then $operation $source/$fusionDaleLog $destn; fi
+
+ if [ -f $source/$mfrLog ] ; then $operation $source/$mfrLog $destn; fi
+ if [ -f $source/$mocaLog ] ; then $operation $source/$mocaLog $destn; fi
+ if [ -f $source/$rebootLog ] ; then $operation $source/$rebootLog $destn; fi
+ if [ -f $source/$rebootInfoLog ] ; then $operation $source/$rebootInfoLog $destn; fi
+ if [ -f $source/$xDiscoveryLog ] ; then $operation $source/$xDiscoveryLog $destn; fi
+ if [ -f $source/$xDiscoveryListLog ] ; then $operation $source/$xDiscoveryListLog $destn; fi
+
+ if [ -f $source/$socProvisionLog ] ; then $operation $source/$socProvisionLog $destn; fi
+ if [ -f $source/$socProvisionCryptoLog ] ; then $operation $source/$socProvisionCryptoLog $destn; fi
+ if [ -f $source/$lighttpdErrorLog ] ; then $operation $source/$lighttpdErrorLog $destn; fi
+ if [ -f $source/$lighttpdAccessLog ] ; then $operation $source/$lighttpdAccessLog $destn; fi
+ if [ -f $source/$dcmLog ] ; then $operation $source/$dcmLog $destn; fi
+ if [ -f $source/$coreDumpLog ] ; then $operation $source/$coreDumpLog $destn; fi
+ if [ -f $source/$mountLog ] ; then $operation $source/$mountLog $destn; fi
+ if [ -f $source/$rbiDaemonLog ] ; then $operation $source/$rbiDaemonLog $destn; fi
+ if [ -f $source/$rfcLog ] ; then $operation $source/$rfcLog $destn; fi
+ if [ -f $source/$tlsLog ] ; then $operation $source/$tlsLog $destn; fi
+ if [ -f $source/$playreadycdmiLog ] ; then $operation $source/$playreadycdmiLog $destn; fi
+ if [ -f $source/$wpecdmiLog ] ; then $operation $source/$wpecdmiLog $destn; fi
+ if [ -f $source/$pingTelemetryLog ] ; then $operation $source/$pingTelemetryLog $destn; fi
+ if [ -f $source/$deviceDetailsLog ] ; then $operation $source/$deviceDetailsLog $destn; fi
+ if [ -f $source/$zramLog ] ; then $operation $source/$zramLog $destn; fi
+ if [ -f $source/$appmanagerLog ] ; then $operation $source/$appmanagerLog $destn; fi
+ if [ -f $source/$nlmonLog ] ; then $operation $source/$nlmonLog $destn; fi
+ if [ -f $source/$hwselfLog ] ; then $operation $source/$hwselfLog $destn; fi
+ if [ "$CONTAINER_SUPPORT" == "true" ];then
+ if [ -f $source/$xreLxcApplicationsLog ] ; then $operation $source/$xreLxcApplicationsLog $destn; fi
+ if [ -f $source/$xreLxcLog ] ; then $operation $source/$xreLxcLog $destn; fi
+ fi
+
+ #Adding a work around to create core_log.txt whith restricted user privilege
+ #if linux multi user is enabled
+ if [ "$ENABLE_MULTI_USER" == "true" ] && [ ! -f /etc/os-release ] ; then
+ if [ "$BUILD_TYPE" == "prod" ] ; then
+ touch $source/$coreDumpLog
+ chown restricteduser:restrictedgroup $source/$coreDumpLog
+ else
+ if [ ! -f /opt/disable_chrootXREJail ]; then
+ touch $source/$coreDumpLog
+ chown restricteduser:restrictedgroup $source/$coreDumpLog
+ fi
+ fi
+ fi
+ #End of work around related to core_log.txt for Linux multi user support
+ if [ -f $source/$trmLog ] ; then $operation $source/$trmLog $destn; fi
+ if [ -f $source/$trmMgrLog ] ; then $operation $source/$trmMgrLog $destn; fi
+ if [ -f $source/$threadLog ] ; then $operation $source/$threadLog $destn; fi
+ if [ -f $source/$greenpeakLog ]; then $operation $source/$greenpeakLog $destn; fi
+ if [ -f $source/$startupDmesgLog ] ; then $operation $source/$startupDmesgLog $destn; fi
+ if [ -f $source/$coreLog ] ; then $operation $source/$coreLog $destn; fi
+ if [ -f $source/$xDeviceLog ] ; then $operation $source/$xDeviceLog $destn; fi
+ if [ -f $source/$rmfLog ] ; then $operation $source/$rmfLog $destn; fi
+ if [ "$DEVICE_TYPE" != "mediaclient" ]; then
+ if [ -f $source/$podLog ] ; then $operation $source/$podLog $destn; fi
+ if [ -f $source/$vodLog ] ; then $operation $source/$vodLog $destn; fi
+ if [ -f $source/$diskEventsLog ] ; then $operation $source/$diskEventsLog $destn; fi
+ if [ -f $source/$diskInfoLog ] ; then $operation $source/$diskInfoLog $destn; fi
+ if [ -f $source/$ablReasonLog ] ; then $operation $source/$ablReasonLog $destn; fi
+ if [ -f $source/$mpeosmainMON ] ; then $operation $source/$mpeosmainMON $destn; fi
+ if [ -f $source/$ecmLog ] ; then $operation $source/$ecmLog $destn; fi
+ if [ -f $source/$pumaLog ] ; then $operation $source/$pumaLog $destn; fi
+ if [ -f $source/$pumaLog1 ] ; then $operation $source/$pumaLog1 $destn; fi
+ if [ -f $source/$heapDmpLog ] ; then $operation $source/$heapDmpLog $destn; fi
+ if [ -f $source/$cardStatusLog ] ; then $operation $source/$cardStatusLog $destn; fi
+ if [ -f $source/$rfStatisticsLog ] ; then $operation $source/$rfStatisticsLog $destn; fi
+ if [ -f $source/$riLog ] ; then $operation $source/$riLog $destn; fi
+ if [ -f $source/$xfsdmesgLog ] ; then $operation $source/$xfsdmesgLog $destn; fi
+ if [ -f $mpeosRebootLog ] ; then
+ if [ "$BUILD_TYPE" = "dev" ]; then
+ cp $mpeosRebootLog $destn
+ else
+ $operation $mpeosRebootLog $destn
+ fi
+ fi
+ if [ "$LIGHTSLEEP_ENABLE" = "true" ]; then
+ if [ -f $source/lightsleep.log ] ; then $operation $source/lightsleep.log $destn; fi
+ fi
+ if [ -f $source/$snmpdLog ] ; then $operation $source/$snmpdLog $destn; fi
+ if [ -f $source/$upstreamStatsLog ] ; then $operation $source/$upstreamStatsLog $destn; fi
+ if [ -f $source/$dibblerLog ] ; then $operation $source/$dibblerLog $destn; fi
+ if [ -f $source/$dnsmasqLog ] ; then $operation $source/$dnsmasqLog $destn; fi
+ else
+ if [ -f $source/$wifiTelemetryLog ] ; then $operation $source/$wifiTelemetryLog $destn; fi
+ if [ -f $source/$tr69Log ] ; then $operation $source/$tr69Log $destn; fi
+ if [ -f $source/$tr69AgentLog ] ; then $operation $source/$tr69AgentLog $destn; fi
+ if [ -f $source/$tr69HostIfLog ] ; then $operation $source/$tr69HostIfLog $destn; fi
+ if [ -f $source/$tr69DownloadLog ] ; then $operation $source/$tr69DownloadLog $destn; fi
+ if [ -f $source/$gatewayLog ] ; then $operation $source/$gatewayLog $destn; fi
+ if [ -f $source/$ipSetupLog ] ; then $operation $source/$ipSetupLog $destn; fi
+ if [ -f $source/$tr69AgentHttpLog ] ; then $operation $source/$tr69AgentHttpLog $destn; fi
+ if [ -f $source/$tr69AgentSoapLog ] ; then $operation $source/$tr69AgentSoapLog $destn; fi
+ if [ -f $source/$webpavideoLog ] ; then $operation $source/$webpavideoLog $destn; fi
+ if [ -f $source/$xiConnectionStatusLog ] ; then $operation $source/$xiConnectionStatusLog $destn; fi
+ fi
+ # backup version.txt
+ if [ -f $source/$version ] ; then
+ $operation $source/$version $destn
+ else
+ cp /$version $destn
+ fi
+ # backup older cycle logs
+ if [ -f $source/$rstreamFdLog ] ; then $operation $source/$rstreamFdLog $destn; fi
+ if [ -f $source/$authServiceLog ] ; then $operation $source/$authServiceLog $destn; fi
+ if [ -f $source/$cardProvisionCheckLog ] ; then $operation $source/$cardProvisionCheckLog $destn; fi
+ if [ -f $source/$diskCleanupLog ] ; then $operation $source/$diskCleanupLog $destn; fi
+ if [ -f $source/$diskCleanupInfoLog ] ; then $operation $source/$diskCleanupInfoLog $destn; fi
+ if [ -f $recorderLog ]; then mv $recorderLog $destn; fi
+ if [ -f $source/$topOsalLog ] ; then $operation $source/$topOsalLog $destn; fi
+ if [ -f $source/$mocaStatusLog ] ; then $operation $source/$mocaStatusLog $destn; fi
+ if [ -f $source/$decoderStatusLog ] ; then $operation $source/$decoderStatusLog $destn; fi
+ if [ -f $source/$mfrLogRdk ] ; then $operation $source/$mfrLogRdk $destn; fi
+ if [ -f $source/$cefLog ] ; then $operation $source/$cefLog $destn; fi
+ if [ -f $source/$diskCleanupLog1 ] ; then $operation $source/$diskCleanupLog1 $destn; fi
+ if [ -f $source/$sysDmesgLog ] ; then $operation $source/$sysDmesgLog $destn; fi
+ if [ -f $source/$samhainLog ] ; then $operation $source/$samhainLog $destn; fi
+ if [ -f $source/$fogLog ] ; then $operation $source/$fogLog $destn; fi
+ if [ -f $source/$hddStatusLog ] ; then $operation $source/$hddStatusLog $destn; fi
+ if [ -f $source/$xiRecoveryLog ] ; then $operation $source/$xiRecoveryLog $destn; fi
+ if [ -f $source/$dropbearLog ] ; then $operation $source/$dropbearLog $destn; fi
+
+ if [ "$SOC" = "BRCM" ];then
+ if [ -f $source/$nxSvrLog ] ; then $operation $source/$nxSvrLog $destn; fi
+ if [ -f $source/$procStatusLog ] ; then $operation $source/$procStatusLog $destn; fi
+ fi
+ if [ -f $source/$netsrvLog ] ; then $operation $source/$netsrvLog $destn; fi
+ if [ -f $source/$adobeCleanupLog ] ; then $operation $source/$adobeCleanupLog $destn; fi
+
+ if [ "$DEVICE_TYPE" == "XHC1" ];then
+ if [ -f $source/$streamsrvLog ] ; then $operation $source/$streamsrvLog $destn; fi
+ if [ -f $source/$stunnelHttpsLog ] ; then $operation $source/$stunnelHttpsLog $destn; fi
+ if [ -f $source/$upnpLog ] ; then $operation $source/$upnpLog $destn; fi
+ if [ -f $source/$upnpigdLog ] ; then $operation $source/$upnpigdLog $destn; fi
+ if [ -f $source/$cgiLog ] ; then $operation $source/$cgiLog $destn; fi
+ if [ -f $source/$systemLog ] ; then $operation $source/$systemLog $destn; fi
+ if [ -f $source/$eventLog ] ; then $operation $source/$eventLog $destn; fi
+ if [ -f $source/$xw3MonitorLog ] ; then $operation $source/$xw3MonitorLog $destn; fi
+ if [ -f $source/$sensorDLog ] ; then $operation $source/$sensorDLog $destn; fi
+ if [ -f $source/$webpaLog ] ; then $operation $source/$webpaLog $destn; fi
+ if [ -f $source/$xwclientLog ] ; then $operation $source/$xwclientLog $destn; fi
+ if [ -f $source/$xwswupdateLog ] ; then $operation $source/$xwswupdateLog $destn; fi
+ if [ -f $source/$userLog ] ; then $operation $source/$userLog $destn; fi
+ if [ -f $source/$webrtcStreamingLog ] ; then $operation $source/$webrtcStreamingLog $destn; fi
+ if [ -f $source/$cvrPollLog ] ; then $operation $source/$cvrPollLog $destn; fi
+ if [ -f $source/$ivaDaemonLog ] ; then $operation $source/$ivaDaemonLog $destn; fi
+ if [ -f $source/$thumbnailUploadLog ] ; then $operation $source/$thumbnailUploadLog $destn; fi
+ if [ -f $source/$metricsLog ] ; then $operation $source/$metricsLog $destn; fi
+ if [ -f $source/$wifiLog ] ; then $operation $source/$wifiLog $destn; fi
+ if [ -f $source/$overlayLog ] ; then $operation $source/$overlayLog $destn; fi
+ if [ -f $source/$xvisionLog ] ; then $operation $source/$xvisionLog $destn; fi
+ if [ -f $source/$evoLog ] ; then $operation $source/$evoLog $destn; fi
+ if [ -f $source/$camstreamsrvLog ] ; then $operation $source/$camstreamsrvLog $destn; fi
+ if [ -f $source/$mongsLog ] ; then $operation $source/$mongsLog $destn; fi
+ fi
+ if [ "$WIFI_SUPPORT" == "true" ];then
+ if [ -f $source/$wpaSupplicantLog ] ; then $operation $source/$wpaSupplicantLog $destn; fi
+ if [ -f $source/$dhcpWifiLog ] ; then $operation $source/$dhcpWifiLog $destn; fi
+ fi
+ if [ -f $source/$audiocapturemgrLogs ] ; then $operation $source/$audiocapturemgrLogs $destn; fi
+
+}
+
+logCleanup()
+{
+ echo "Done Log Backup"
+}
+
diff --git a/recipes-rdkb/sysint-broadband/files/swupdate.service b/recipes-rdkb/sysint-broadband/files/swupdate.service
new file mode 100644
index 0000000..23dc72d
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/swupdate.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Software Update Service
+After=CcspPandMSsp.service
+StartLimitIntervalSec=120
+
+[Service]
+Type=forking
+ExecStartPre=/bin/sh -c '/bin/touch /rdklogs/logs/swupdate.log'
+ExecStart=/bin/sh -c '/lib/rdk/swupdate_utility.sh 2&> /rdklogs/logs/swupdate.log &'
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-rdkb/sysint-broadband/files/swupdate_utility.sh b/recipes-rdkb/sysint-broadband/files/swupdate_utility.sh
new file mode 100755
index 0000000..69a11a8
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/swupdate_utility.sh
@@ -0,0 +1,186 @@
+#!/bin/bash
+. /etc/include.properties
+. /etc/device.properties
+
+#Utility Functions
+#=================
+
+check ()
+{
+ if [ $? != 0 ]; then
+ echo "FATAL: $*"
+ sleep 10
+ continue
+ fi
+}
+
+jsonparse() {
+ if [ -d $1 ]; then
+ printf "Usage 'jsonparse <parameter-name>'\n"
+ exit 1
+ fi
+ value=`cat /tmp/cloudurl.txt | json_reformat | grep -w $1 | cut -d':' -f2 | tr -d "\",\ "`
+ if [ -d $value ];then
+ echo "FATAL: JSON value not present, check /tmp/cloudurl.txt file"
+ exit 1
+ fi
+ echo $value
+}
+
+tftpDownload () {
+ mkdir -p /tmp/tftpimage
+ cd /tmp/tftpimage
+ echo "set IPtable rules for tftp !!"
+ iptables -t raw -I OUTPUT -j CT -p udp -m udp --dport 69 --helper tftp
+ echo "CloudFile: "$firmwareFilename
+ echo "CloudLocation: "$firmwareLocation
+
+ check_sum_file="${firmwareVersion}.txt"
+ echo "Checksum file to download from tftp server: $check_sum_file"
+ tftp -g -r $check_sum_file $firmwareLocation
+ if [ ! -f $PWD/$check_sum_file ]; then
+ echo "Cloud checksum file not downloaded from TFTP: verify tftp connection($firmwareLocation)"
+ sleep 2
+ continue
+ fi
+
+ echo "Downloading $firmwareFilename..."
+ tftp -g -r $firmwareFilename $firmwareLocation
+ if [ ! -f $PWD/$firmwareFilename ]; then
+ echo "Image itself not downloaded from TFTP: verify tftp connection($firmwareLocation)"
+ sleep 2
+ continue
+ fi
+ echo "Doing additional check: comparing checksum ..."
+ cloudcsfile_path="/tmp/tftpimage/$check_sum_file"
+ echo "checksum file to download with actual path: $cloudcsfile_path"
+ cloudcs=`cat $cloudcsfile_path | cut -f 1 -d ' '`
+ echo "cloudcs:cloud download md5sum file version: $cloudcs"
+ devcs=`md5sum /tmp/tftpimage/rdk*.tar | cut -f 1 -d " "`
+ echo "devcs:image download checksum md5sum file version: $devcs"
+
+ if [ "$devcs" != "$cloudcs" ]; then
+ echo "Mismatch in md5sum: tftp file not downloaded properly"
+ continue
+ fi
+ echo "checksum verification done: md5sum matches !!"
+ tar -xf /tmp/tftpimage/$firmwareVersion.tar -C /tmp/
+ check "Failed to untar $firmwareFilename"
+}
+
+httpDownload () {
+ mkdir -p /tmp/httpimage
+ cd /tmp/httpimage
+ echo "CloudFile: "$firmwareFilename
+ echo "CloudLocation: "$firmwareLocation
+
+ check_sum_file="${firmwareVersion}.txt"
+ echo "Checksum file to download from webserver: $check_sum_file"
+ wget http://$firmwareLocation/$check_sum_file -O $check_sum_file
+ if [ ! -f $PWD/$check_sum_file ]; then
+ echo "Cloud checksum file not downloaded from Webserver: verify connection to $firmwareLocation"
+ sleep 2
+ continue
+ fi
+
+ echo "Downloading $firmwareFilename..."
+ wget http://$firmwareLocation/$firmwareFilename -O $firmwareFilename
+ if [ ! -f $PWD/$firmwareFilename ]; then
+ echo "Image itself not downloaded from Webserver: verify connection to $firmwareLocation"
+ sleep 2
+ continue
+ fi
+ echo "Doing additional check: comparing checksum ..."
+ cloudcsfile_path="/tmp/httpimage/$check_sum_file"
+ echo "checksum file to download with actual path: $cloudcsfile_path"
+ cloudcs=`cat $cloudcsfile_path | cut -f 1 -d ' '`
+ echo "cloudcs:cloud download md5sum file version: $cloudcs"
+ devcs=`md5sum /tmp/httpimage/rdk*.tar | cut -f 1 -d " "`
+ echo "devcs:image download checksum md5sum file version: $devcs"
+
+ if [ "$devcs" != "$cloudcs" ]; then
+ echo "Mismatch in md5sum: http file not downloaded properly"
+ continue
+ fi
+ echo "checksum verification done: md5sum matches !!"
+ tar -xf /tmp/httpimage/$firmwareVersion.tar -C /tmp/
+ check "Failed to untar $firmwareFilename"
+}
+
+download_image() {
+ if [ $firmwareDownloadProtocol == "tftp" ]; then
+ tftpDownload
+ elif [ $firmwareDownloadProtocol == "http" ]; then
+ httpDownload
+ else
+ echo "Unknown protocol"
+ fi
+}
+
+echo "***Start of swupdate_utility.sh***"
+
+rebootRequired=false
+while [ 1 ]
+do
+if [ $rebootRequired == true ];then
+ echo "Reboot Pending: reboot is required before possible firmware upgrade"
+ sleep 10
+ continue
+fi
+#Getting update from cloud
+#=========================
+
+CLOUDURL=http://35.155.171.121:9092/xconf/swu/stb?eStbMac=
+erouterMac=`ifconfig $EROUTER_INTERFACE | grep HWaddr | cut -c39-55`
+CLOUD_URL=$CLOUDURL$erouterMac
+
+echo "CLOUD_URL: $CLOUD_URL"
+curl $CLOUD_URL -o /tmp/cloudurl.txt
+if [ $? != 0 ];then
+ echo "curl failed to fetch firmware details: check internet connection"
+ sleep 10
+ continue
+fi
+
+#version check
+#=============
+
+#Comparing image versions and will upgrade if there is a mismatch
+currentVersion=`grep "^imagename" /version.txt | cut -d ':' -f2`
+
+#eg. firmwareVersion=rdkb-generic-broadband-image_default_20200608060354
+firmwareVersion=`jsonparse firmwareVersion`
+cloudfirmwareversion=$firmwareVersion
+if [ "$currentVersion" == "$cloudfirmwareversion" ]; then
+ echo "Image versions remains same !!"
+ sleep 10
+ continue
+fi
+
+echo "cloud Image version: "$cloudfirmwareversion
+echo "Current Image version: "$currentVersion
+echo "Image versions mismatches !! start upgrade"
+
+#Environment setting
+#===================
+#eg. firmwareDownloadProtocol=tftp
+firmwareDownloadProtocol=`jsonparse firmwareDownloadProtocol`
+
+#eg. firmwareFilename=rdkb-generic-broadband-image_default_20200608060354.tar
+firmwareFilename=`jsonparse firmwareFilename`
+
+#eg. firmwareLocation=192.168.1.9
+firmwareLocation=`jsonparse firmwareLocation`
+
+#eg. rebootImmediately=false
+rebootImmediately=`jsonparse rebootImmediately`
+
+download_image
+/lib/rdk/TurrisFwUpgrade.sh
+check "TurrisFwUpgrade.sh failed to flash new Image"
+
+if [ $rebootImmediately == true ]; then
+ reboot
+fi
+rebootRequired=true
+done
diff --git a/recipes-rdkb/sysint-broadband/files/uploadSTBLogs.sh b/recipes-rdkb/sysint-broadband/files/uploadSTBLogs.sh
new file mode 100755
index 0000000..545ec5f
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/uploadSTBLogs.sh
@@ -0,0 +1,478 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2018 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+
+. /etc/include.properties
+. /etc/device.properties
+
+. $RDK_PATH/utils.sh
+. $RDK_PATH/interfaceCalls.sh
+. $RDK_PATH/utils.sh
+. $RDK_PATH/logfiles.sh
+. $RDK_PATH/commonUtils.sh
+
+if [ $# -ne 6 ]; then
+ echo "USAGE: $0 <TFTP Server IP> <Flag (STB delay or not)> <SCP_SERVER> <UploadOnReboot> <UploadProtocol> <UploadHttpLink>"
+fi
+
+# assign the input arguments
+TFTP_SERVER=$1
+FLAG=$2
+DCM_FLAG=$3
+UploadOnReboot=$4
+UploadProtocol=$5
+UploadHttpLink=$6
+
+DCM_LOG_PATH=/upload
+
+if [ $FLAG -eq 0 ]; then
+ if [ -f $RAMDISK_PATH/.standby ]; then
+ echo "`/bin/timestamp` Exiting since box is in standby..!"
+ exit 0
+ fi
+fi
+
+# initialize the variables
+MAC=`getErouterMacAddress`
+HOST_IP=`getIPAddress`
+dt=`date "+%m-%d-%y-%I-%M%p"`
+LOG_FILE="$MAC_Logs_$dt.tgz"
+
+#MARKER_FILE=$MAC"_Logs_Marker_$dt.txt"
+VERSION="version.txt"
+# working folders
+PREV_LOG_PATH="$LOG_PATH/PreviousLogs"
+PREV_LOG_BACKUP_PATH="$LOG_PATH/PreviousLogs_backup/"
+DCM_UPLOAD_LIST="$LOG_PATH/dcm_upload"
+
+echo "Build Type: $BUILD_TYPE Log file: $LOG_FILE TFTP Server: $TFTP_SERVER Protocol: $UploadProtocol UploadHttpLink: $UploadHttpLink" >> $LOG_PATH/dcmscript.log
+
+prevUploadFlag=0
+
+if [ ! -d $PREV_LOG_PATH ]; then
+ echo "The Previous Logs folder is missing" >> $LOG_PATH/dcmscript.log
+ #if [ "true" != "$RDK_EMULATOR" ]; then
+ # exit 0
+ #else
+
+ if [ ! -d $LOG_PATH ]; then mkdir -p $LOG_PATH; fi
+ if [ ! -d $LOG_PATH/PreviousLogs ]; then mkdir -p $LOG_PATH/PreviousLogs; fi
+ if [ ! -d $LOG_PATH/PreviousLogs_backup ]; then mkdir -p $LOG_PATH/PreviousLogs_backup; fi
+ rm -rf $LOG_PATH/PreviousLogs_backup/*
+
+ backupSystemLogFiles mv $LOG_PATH $PREV_LOG_PATH
+ backupAppBackupLogFiles mv $LOG_PATH $PREV_LOG_PATH
+
+ #fi
+else
+ #if [ "true" != "$RDK_EMULATOR" ]; then
+ #echo ""
+ #else
+
+ rm -rf $LOG_PATH/PreviousLogs_backup/*
+ backupSystemLogFiles mv $LOG_PATH $PREV_LOG_PATH
+ backupAppBackupLogFiles mv $LOG_PATH $PREV_LOG_PATH
+ #cp $PREV_LOG_BACKUP_PATH/* $PREV_LOG_PATH/
+ #fi
+fi
+
+backupAppLogs()
+{
+ source=$1
+ destn=$2
+ if [ -f $source$RILog ] ; then cp $source$RILog $destn; fi
+ if [ -f $source$XRELog ] ; then cp $source$XRELog $destn; fi
+ if [ -f $source$WBLog ] ; then cp $source$WBLog $destn; fi
+ if [ -f $source$SysLog ] ; then cp $source$SysLog $destn; fi
+}
+renameRotatedLogs()
+{
+ logPath=$1
+ if [ -f $RDK_PATH/renameRotatedLogs.sh ]; then
+ if [ -f $logPath/ocapri_log.txt ] ; then sh $RDK_PATH/renameRotatedLogs.sh $logPath/ocapri_log.txt; fi
+ if [ -f $logPath/receiver.log ] ; then sh $RDK_PATH/renameRotatedLogs.sh $logPath/receiver.log; fi
+ if [ -f $logPath/greenpeak.log ] ; then sh $RDK_PATH/renameRotatedLogs.sh $logPath/greenpeak.log; fi
+ if [ -f $logPath/gp_init.log ] ; then sh $RDK_PATH/renameRotatedLogs.sh $logPath/gp_init.log; fi
+ if [ -f $logPath/app_status.log ] ; then sh $RDK_PATH/renameRotatedLogs.sh $logPath/app_status.log; fi
+ fi
+}
+processLogsFolder()
+{
+ srcLogPath=$1
+ destnLogPath=$2
+ backupAppLogs "$srcLogPath/" "$destnLogPath/"
+ backupSystemLogFiles "cp" $srcLogPath $destnLogPath
+ backupAppBackupLogFiles "cp" $srcLogPath $destnLogPath
+
+ if [ -f $RAMDISK_PATH/disk_log.txt ]; then cp $RAMDISK_PATH/disk_log.txt $destnLogPath ; fi
+
+ backupCount=`ls $srcLogPath/logbackup-* 2>/dev/null | wc -l`
+ if [ $backupCount -gt 0 ]; then
+ cp -r $srcLogPath/logbackup-* $destnLogPath
+ fi
+
+ if [ -f $srcLogPath/$rebootLog ]; then cp $srcLogPath/$rebootLog $destnLogPath; fi
+ if [ -f $srcLogPath/$ablReasonLog ]; then cp $srcLogPath/$ablReasonLog $destnLogPath; fi
+ if [ -f $srcLogPath/$ueiLog ]; then cp $srcLogPath/$ueiLog $destnLogPath; fi
+ if [ -f $PERSISTENT_PATH/sventest/p3541_all_csven_AV_health_data_trigger.tar.gz ] ; then
+ cp $PERSISTENT_PATH/sventest/p3541_all_csven_AV_health_data_trigger.tar.gz $destnLogPath
+ fi
+ if [ "$DEVICE_TYPE" != "mediaclient" ]; then
+ renameRotatedLogs $srcLogPath
+ fi
+}
+modifyFileWithTimestamp()
+{
+ srcLogPath=$1
+ ret=`ls $srcLogPath/*.txt | wc -l`
+ if [ ! $ret ]; then
+ ret=`ls $srcLogPath/*.log | wc -l`
+ if [ ! $ret ]; then exit 1; fi
+ fi
+
+ dt=`date "+%m-%d-%y-%I-%M%p-"`
+ FILES=*.*
+ FILES1=".*-[0-9][0-9]AM-.*"
+ FILES2=".*-[0-9][0-9]PM-.*"
+
+ for f in $FILES
+ do
+ test1=0
+ test2=0
+ test3=0
+ test4=0
+
+ test1=`expr match $f $FILES1`
+ test2=`expr match $f $FILES2`
+ test3=`expr match $f $rebootLog`
+ test4=`expr match $f $ablReasonLog`
+
+ if [ $test1 -gt 0 -o $test2 -gt 0 -o $test3 -gt 0 -o $test4 -gt 0 ]; then
+ echo "`/bin/timestamp` Processing file...$f" >> $LOG_PATH/dcmscript.log
+ else
+ mv $f $dt$f
+ fi
+ done
+ #cp /version.txt ./$dt$VERSION
+}
+
+copyAllFiles ()
+{
+
+ EXCLUDE="dcm PreviousLogs_backup PreviousLogs"
+ cd $LOG_PATH
+
+ for fileName in *
+ do
+ COPY_BOOLEAN=true
+ for excl in $EXCLUDE
+ do
+ if [ $excl == $fileName ]; then
+ COPY_BOOLEAN=false
+ fi
+ done
+
+ if $COPY_BOOLEAN; then
+ cp -R $fileName $DCM_LOG_PATH
+ fi
+ done
+}
+copyOptLogsFiles ()
+{
+ cd $LOG_PATH
+ cp * $DCM_LOG_PATH >> $LOG_PATH/dcmscript.log 2>&1
+}
+
+HttpLogUpload()
+{
+ result=1
+ FILENAME='/tmp/httpresult.txt'
+ HTTP_CODE=/tmp/curl_httpcode
+
+ CLOUD_URL=$UploadHttpLink
+ #CLOUD_URL="$(UploadHttpLink)filename=$LOG_FILE"
+
+ CURL_CMD="curl -w '%{http_code}\n' -F \"filename=@$1\" -o \"$FILENAME\" \"$CLOUD_URL\" --connect-timeout 10 -m 10"
+ echo URL_CMD: $CURL_CMD
+ ret= eval $CURL_CMD > $HTTP_CODE
+ http_code=$(awk -F\" '{print $1}' $HTTP_CODE)
+ if [ $http_code -eq 200 ];then
+ echo "`/timestamp` Done Uploading Logs through HTTP" >> $LOG_PATH/dcmscript.log
+ result=0
+ elif [ $http_code -eq 302 ];then
+ #Get the url from FILENAME
+ NewUrl=$(awk -F\" '{print $1}' $FILENAME)
+
+ CURL_CMD="curl -w '%{http_code}\n' -o \"$FILENAME\" \"$NewUrl\" --connect-timeout 10 -m 10"
+ echo URL_CMD: $CURL_CMD
+ result= eval $CURL_CMD > $HTTP_CODE
+ http_code=$(awk -F\" '{print $1}' $HTTP_CODE)
+
+ if [ $http_code -eq 200 ];then
+ echo "`/timestamp` Done Uploading Logs through - HTTP" >> $LOG_PATH/dcmscript.log
+ result=0
+ else
+ echo "`/timestamp` Failed Uploading Logs through - HTTP" >> $LOG_PATH/dcmscript.log
+ fi
+ fi
+ echo $result
+}
+
+uploadDCMLogs()
+{
+
+ cd $DCM_LOG_PATH
+ echo " Uploading Logs through DCM cron job" >> $LOG_PATH/dcmscript.log
+ modifyFileWithTimestamp $DCM_LOG_PATH >> $LOG_PATH/dcmscript.log 2>&1
+ tar -zcvf $LOG_FILE * >> $LOG_PATH/dcmscript.log 2>&1
+ sleep 60
+ echo "Uploading logs $LOG_FILE onto $TFTP_SERVER" >> $LOG_PATH/dcmscript.log
+
+ retval=1
+
+ if [ "$UploadProtocol" == "HTTP" ];then
+ retval=$(HttpLogUpload $LOG_FILE)
+ fi
+ if [ $retval -eq 1 ];then #Http upload failed
+ tftp -p -r $LOG_FILE -l $LOG_FILE $TFTP_SERVER >> $LOG_PATH/dcmscript.log 2>&1
+ echo "`/bin/timestamp` Done Uploading Logs through TFTP" >> $LOG_PATH/dcmscript.log
+ sleep 1
+ fi
+
+ rm -rf $DCM_LOG_PATH/
+}
+uploadLogOnReboot()
+{
+ uploadLog=$1
+ echo "Sleeping for seven minutes "
+ if [ "true" != "$RDK_EMULATOR" ]; then
+ sleep 12
+ fi
+ echo "Done sleeping prev logpath "$PREV_LOG_PATH
+ ret=`ls $PREV_LOG_PATH/*.txt | wc -l`
+ if [ ! $ret ]; then
+ ret=`ls $PREV_LOG_PATH/*.log | wc -l`
+ if [ ! $ret ]; then exit 1; fi
+ fi
+ if [ "$HDD_ENABLED" = "true" ]; then
+ # Special processing - Permanently backup logs on box delete the logs older than
+ # 3 days to take care of old filename
+ sleep 2
+ stat=`find /opt/logs -name "*-*-*-*-*M-" -mtime +3 -exec rm -rf {} \;`
+ # for the new filenames with suffix logbackup
+ stat=`find /opt/logs -name "*-*-*-*-*M-logbackup" -mtime +3 -exec rm -rf {} \;`
+
+ TIMESTAMP=`date "+%m-%d-%y-%I-%M%p-logbackup"`
+ PERM_LOG_PATH="$LOG_PATH/$TIMESTAMP"
+ mkdir -p $PERM_LOG_PATH
+
+ processLogsFolder $PREV_LOG_PATH $PERM_LOG_PATH
+ fi
+ echo "ckp100-------------prev log path-------------"$PREV_LOG_PATH
+ cd $PREV_LOG_PATH
+ rm $LOG_FILE
+ modifyFileWithTimestamp $PREV_LOG_PATH >> $LOG_PATH/dcmscript.log 2>&1
+
+ echo "ckp101---------------------upload log-----"$uploadLog
+ ls -al
+ sleep 30
+ if $uploadLog; then
+ echo "ckp101--------------------------"
+ tar -zcvf $LOG_FILE * >> $LOG_PATH/dcmscript.log 2>&1
+ echo "Uploading logs $LOG_FILE onto $TFTP_SERVER" >> $LOG_PATH/dcmscript.log
+ sleep 60
+ #tftp -p -r $LOG_FILE -l $LOG_FILE $TFTP_SERVER >> $LOG_PATH/dcmscript.log 2>&1
+ #sleep 1
+ #echo "`/bin/timestamp` Done Uploading Logs" >> $LOG_PATH/dcmscript.log
+ proUpdel=`cat /tmp/DCMSettings.conf | grep -i uploadRepository:uploadProtocol | tr -dc '"' |wc -c`
+ echo "number of proUPdel2:"$proUpdel
+ #proUpdel=$((proUpdel - 1))
+ uploadProtocolla=`cat /tmp/DCMSettings.conf | grep -i urn:settings:TelemetryProfile | cut -d '"' -f$proUpdel`
+ echo "Upload protocol logupload is:"$uploadProtocolla
+ TurrisMacAddress=`ifconfig erouter0 | grep HWaddr | cut -c39-55`
+ cp $LOG_FILE $TurrisMacAddress-Logs-$LOG_FILE
+ if [ "$uploadProtocolla" != "TFTP" ];then
+ echo "before HTTP log upload"
+ HTTPLOGUPLOADURL=`cat /tmp/DCMSettings.conf | grep -i "urn:settings:LogUploadSettings:RepositoryURL" | cut -d "=" -f2`
+ if [ "$HTTPLOGUPLOADURL" == "" ]; then
+ echo "No HTTP URL configured in xconf,going with internal one !!"
+ HTTPLOGUPLOADURL=$DCM_LA_SERVER_URL
+ fi
+ echo "HTTPLOGUPLOADURL:"$HTTPLOGUPLOADURL
+ echo "upload log file is:"$LOG_FILE
+ CURL_CMD="curl -w '%{http_code}\n' -F filename=@$PREV_LOG_PATH/$TurrisMacAddress-Logs-$LOG_FILE '$HTTPLOGUPLOADURL' --connect-timeout 100 -m 100"
+ #echo_t "CURL_CMD http proto log upload: $CURL_CMD" >> $DCM_LOG_FILE
+ echo "------CURL_CMD2:"$CURL_CMD
+ HTTP_CODE=`result= eval $CURL_CMD`
+ http_code=$(echo $HTTP_CODE | cut -d "." -f 2)
+ echo "http_code is :"$http_code
+ if [ $http_code -eq 200 ] ; then
+ echo "HTTP log upload succeded!!!!!!!!!!!!!!!!!"
+ else
+ loguploadRetryCount=0
+ while [ $loguploadRetryCount -lt 2 ]
+ do
+ echo "Trying to upload log file..."
+ CURL_CMD="curl -w '%{http_code}\n' -F filename=@$PREV_LOG_PATH/$TurrisMacAddress-Logs-$LOG_FILE '$HTTPLOGUPLOADURL' --connect-timeout 100 -m 100"
+ HTTP_CODE=`result= eval $CURL_CMD`
+ http_code_la=$(echo $HTTP_CODE | cut -d "." -f 2)
+ echo "http_code is :"$http_code_la
+ if [ "$http_code_la" != "200" ]; then
+ echo "Error in uploading log file"
+ else
+ echo "logupload succeded in retry"
+ break
+ fi
+ loguploadRetryCount=`expr $loguploadRetryCount + 1`
+ done
+ if [ $loguploadRetryCount -eq 2]; then
+ echo "HTTP log upload failed!!!!!!!!!!!!!!!!!"
+ fi
+ fi
+ else
+ echo "Uploading logs $LOG_FILE onto $TFTP_SERVER" >> $LOG_PATH/dcmscript.log
+ tftp -p -r $TurrisMacAddress-Logs-$LOG_FILE -l $TurrisMacAddress-Logs-$LOG_FILE $TFTP_SERVER >> $LOG_PATH/dcmscript.log 2>&1
+ ret=$?
+ echo $ret
+ if [ "$ret" -eq 1 ]; then
+ tftplauploadRetryCount=0
+ while [ "$tftplauploadRetryCount" -lt 2 ]
+ do
+ echo "Trying to upload logs file using tftp again..."
+ tftp -p -r $TurrisMacAddress-Logs-$LOG_FILE -l $TurrisMacAddress-Logs-$LOG_FILE $TFTP_SERVER >> $LOG_PATH/dcmscript.log 2>&1
+ ret=$?
+ if [ "$ret" -eq 1 ]; then
+ echo "error in uploading logs using tftp"
+ else
+ echo "tftp upload in retry logs succeded"
+ ret=0
+ break
+ fi
+ tftplauploadRetryCount=`expr $tftplauploadRetryCount + 1`
+ done
+ if [ "$tftlauploadRetryCount" -eq 2 ]; then
+ ret=1
+ echo "TFTP log upload failed!!!!!!!!!!!!!!!!!"
+ else
+ echo "TFTP log upload succeded !!!"
+ ret=0
+ fi
+ fi
+ fi
+ sleep 60
+ echo "Done Uploading Logs and removing rtl_json.txt file"
+ rm -rf $PREV_LOG_PATH/$TurrisMacAddress-Logs-$LOG_FILE
+ rm -rf $TELEMETRY_JSON_RESPONSE
+ rm -rf $PERSISTENT_PATH/*TELE*
+ fi
+ cd $PREV_LOG_PATH
+ rm -rf $PREV_LOG_PATH/$LOG_FILE
+ rm -rf $PREV_LOG_BACKUP_PATH
+ mkdir -p $PREV_LOG_BACKUP_PATH
+ if [ "$BUILD_TYPE" = "dev" ] || [ "$HDD_ENABLED" = "false" ]; then
+
+ echo "Moving to Previous Logs Backup Folder " >> $LOG_PATH/dcmscript.log
+ mv * $PREV_LOG_BACKUP_PATH
+ else
+ echo "`/bin/timestamp` Deleting from Previous Logs Folder " >> $LOG_PATH/dcmscript.log
+ rm -rf *
+ fi
+}
+#if [ "$true" != "$RDK_EMULATOR" ]; then
+#if [ -d $DCM_LOG_PATH ]; then
+ # rm -rf $DCM_LOG_PATH/
+#fi
+#Remove *.tgz files from /opt/logs
+#if [ "true" != "$RDK_EMULATOR" ]; then
+#stat=`find $LOG_PATH -name "*.tgz" -exec rm -rf {} \;`
+
+#Remove files which have timestamp in it filename
+#for item in `ls $LOG_PATH/*-*-*-*-*M-* | grep "[0-9]*-[0-9]*-[0-9]*-[0-9]*-M*" | grep -v "logbackup"`;do
+ # if [ -f "$item" ];then
+ # echo "`/bin/timestamp` Removing $item" >> $LOG_PATH/dcmscript.log
+ # rm -rf $item
+ #fi
+#done
+#fi
+#fi
+if [ $DCM_FLAG -eq 0 ] ; then
+ echo "`/bin/timestamp` Uploading Without DCM" >> $LOG_PATH/dcmscript.log
+ uploadLogOnReboot true
+else
+ if [ $FLAG -eq 1 ] ; then
+ if [ $UploadOnReboot -eq 1 ]; then
+ echo "Uploading Logs with DCM UploadOnReboot set to true" >> $LOG_PATH/dcmscript.log
+ echo "call uploadLogOnReboot"
+ uploadLogOnReboot true
+
+ else
+ echo "`/bin/timestamp` Not Uploading Logs with DCM UploadOnReboot set to false" >> $LOG_PATH/dcmscript.log
+ uploadLogOnReboot false
+ echo $PERM_LOG_PATH >> $DCM_UPLOAD_LIST
+ fi
+
+ else
+ if [ $UploadOnReboot -eq 0 ]; then
+ mkdir -p $DCM_LOG_PATH
+ if [ "$HDD_ENABLED" = "true" ]; then
+ fileUploadCount=`cat "$DCM_UPLOAD_LIST" | wc -l`
+ if [ $fileUploadCount -gt 0 ]; then
+ while read line
+ do
+ echo $line
+ cp -R $line $DCM_LOG_PATH
+ done < $DCM_UPLOAD_LIST
+ copyOptLogsFiles
+ cat /dev/null > $DCM_UPLOAD_LIST
+ uploadDCMLogs
+ else
+ copyOptLogsFiles
+ uploadDCMLogs
+ fi
+ else
+ if [ -f $PREV_LOG_BACKUP_PATH/uploaded ]; then
+ copyOptLogsFiles
+ uploadDCMLogs
+ else
+ cd $PREV_LOG_BACKUP_PATH
+ foldertime=`ls *version.txt | cut -c 1-16`
+ if [ -z $foldertime ]; then
+ foldertime=`date +%m-%d-%y-%I-%M%p`
+ fi
+ TIMESTAMP=$foldertime-logbackup
+ PERM_LOG_PATH="/mnt/memory/dcm/$TIMESTAMP"
+ mkdir -p $PERM_LOG_PATH
+ cp * $PERM_LOG_PATH
+ copyOptLogsFiles
+ uploadDCMLogs
+ cd $PREV_LOG_BACKUP_PATH
+ touch uploaded
+ fi
+ fi
+
+ else
+ if [ "$HDD_ENABLED" = "true" ]; then
+ touch $DCM_INDEX
+ copyAllFiles
+ uploadDCMLogs
+ fi
+ fi
+ fi
+fi
+
diff --git a/recipes-rdkb/sysint-broadband/files/utils.sh b/recipes-rdkb/sysint-broadband/files/utils.sh
new file mode 100755
index 0000000..2d83cdd
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/files/utils.sh
@@ -0,0 +1,192 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2016 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+# Scripts having common utility functions
+
+if [ -f /etc/utopia/service.d/log_env_var.sh ];then
+ source /etc/utopia/service.d/log_env_var.sh
+fi
+
+CMINTERFACE="wan0"
+WANINTERFACE="erouter0"
+
+#checkProcess()
+#{
+# ps -ef | grep $1 | grep -v grep
+#}
+
+Timestamp()
+{
+ date +"%Y-%m-%d %T"
+}
+
+# Set the name of the log file using SHA1
+#setLogFile()
+#{
+# fileName=`basename $6`
+# echo $1"_mac"$2"_dat"$3"_box"$4"_mod"$5"_"$fileName
+#}
+
+# Get the MAC address of the machine
+getMacAddressOnly()
+{
+ mac=`ifconfig $WANINTERFACE | grep HWaddr | cut -d " " -f7 | sed 's/://g'`
+ echo $mac
+}
+
+# Get the SHA1 checksum
+getSHA1()
+{
+ sha1sum $1 | cut -f1 -d" "
+
+}
+
+# IP address of the machine
+getIPAddress()
+{
+ wanIP=`ifconfig $WANINTERFACE | grep "inet addr" | grep -v inet6 | cut -f2 -d: | cut -f1 -d" "`
+ echo $wanIP
+}
+
+getCMIPAddress()
+{
+ if [ "$BOX_TYPE" = "XB6" ] || [ "$BOX_TYPE" = "TCCBR" ]; then
+ address=`dmcli eRT getv Device.X_CISCO_COM_CableModem.IPv6Address | grep string | awk '{print $5}'`
+ if [ ! "$address" ]; then
+ address=`dmcli eRT getv Device.X_CISCO_COM_CableModem.IPAddress | grep string | awk '{print $5}'`
+ fi
+ elif [ $BOX_TYPE = "XF3" ] || [ "$BOX_TYPE" = "HUB4" ]; then
+ # in PON/DSL you cant get the CM IP address, so use eRouter IP address
+ address=`ifconfig $WANINTERFACE | grep "inet addr" | grep -v inet6 | cut -f2 -d: | cut -f1 -d" "`
+ else
+ address=`ifconfig -a $CMINTERFACE | grep inet6 | tr -s " " | grep -v Link | cut -d " " -f4 | cut -d "/" -f1`
+ if [ ! "$address" ]; then
+ address=`ifconfig -a $CMINTERFACE | grep inet | grep -v inet6 | tr -s " " | cut -d ":" -f2 | cut -d " " -f1`
+ fi
+ fi
+ echo $address
+
+}
+
+getErouterIPAddress()
+{
+ if [ "$BOX_TYPE" = "XB6" ] || [ "$BOX_TYPE" = "TCCBR" ]; then
+ address=`dmcli eRT getv Device.DeviceInfo.X_COMCAST-COM_WAN_IPv6 | grep string | awk '{print $5}'`
+ if [ ! "$address" ]; then
+ address=`dmcli eRT getv Device.DeviceInfo.X_COMCAST-COM_WAN_IP | grep string | awk '{print $5}'`
+ fi
+ elif [ $BOX_TYPE = "XF3" ] || [ "$BOX_TYPE" = "HUB4" ]; then
+ # in PON/DSL you cant get the CM IP address, so use eRouter IP address
+ address=`ifconfig $WANINTERFACE | grep "inet addr" | grep -v inet6 | cut -f2 -d: | cut -f1 -d" "`
+ else
+ address=`ifconfig -a $WANINTERFACE | grep inet6 | tr -s " " | grep -v Link | cut -d " " -f4 | cut -d "/" -f1`
+ if [ ! "$address" ]; then
+ address=`ifconfig -a $WANINTERFACE | grep inet | grep -v inet6 | tr -s " " | cut -d ":" -f2 | cut -d " " -f1`
+ fi
+ fi
+ echo $address
+}
+
+processCheck()
+{
+ ps -ef | grep $1 | grep -v grep > /dev/null 2>/dev/null
+ if [ $? -ne 0 ]; then
+ echo "1"
+ else
+ echo "0"
+ fi
+}
+
+getMacAddress()
+{
+ if [ $BOX_TYPE = "XF3" ]; then
+ mac=`dmcli eRT getv Device.DPoE.Mac_address | grep value | awk '{print $5}'`
+ elif [ "$BOX_TYPE" = "XB6" ] || [ "$BOX_TYPE" = "TCCBR" ];then
+ mac=`dmcli eRT getv Device.X_CISCO_COM_CableModem.MACAddress | grep value | awk '{print $5}'`
+ elif [ "$BOX_TYPE" = "XF3" ]; then
+ mac=`ifconfig $WANINTERFACE | grep HWaddr | cut -d " " -f7`
+ else
+ mac=`ifconfig $WANINTERFACE | grep HWaddr | cut -d " " -f7`
+ fi
+ echo $mac
+}
+
+## Get eSTB mac address
+getErouterMacAddress()
+{
+ erouterMac=`ifconfig $WANINTERFACE | grep HWaddr | cut -d " " -f7`
+ echo $erouterMac
+}
+
+rebootFunc()
+{
+ #sync
+ reboot
+}
+
+# Return system uptime in seconds
+Uptime()
+{
+ cat /proc/uptime | awk '{ split($1,a,"."); print a[1]; }'
+}
+
+## Get Model No of the box
+getModel()
+{
+ if [ $BOX_TYPE = "XF3" ]; then
+ modelName=`grep ^imagename: /fss/gw/version.txt | cut -d ":" -f 2 | cut -d "_" -f 1`
+ else
+ modelName=`dmcli eRT getv Device.DeviceInfo.ModelName | grep value | awk '{print $5}'`
+ if [ "$modelName" = "" ]
+ then
+ modelName=`echo $MODEL_NUM`
+ fi
+ fi
+ echo "$modelName"
+}
+
+getFWVersion()
+{
+ # Handle imagename separator being colon or equals
+ grep imagename /version.txt | sed 's/.*[:=]//'
+}
+
+getBuildType()
+{
+ str=$(getFWVersion)
+
+ echo $str | grep -q 'VBN'
+ if [[ $? -eq 0 ]] ; then
+ echo 'vbn'
+ else
+ echo $str | grep -q 'PROD'
+ if [[ $? -eq 0 ]] ; then
+ echo 'prod'
+ else
+ echo $str | grep -q 'QA'
+ if [[ $? -eq 0 ]] ; then
+ echo 'qa'
+ else
+ echo 'dev'
+ fi
+ fi
+ fi
+}
+
+
diff --git a/recipes-rdkb/sysint-broadband/sysint-broadband.bbappend b/recipes-rdkb/sysint-broadband/sysint-broadband.bbappend
new file mode 100644
index 0000000..2a599ce
--- /dev/null
+++ b/recipes-rdkb/sysint-broadband/sysint-broadband.bbappend
@@ -0,0 +1,74 @@
+SRC_URI_append = " \
+ ${CMF_GIT_ROOT}/rdkb/devices/raspberrypi/sysint;module=.;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};destsuffix=git/devicerpi;name=sysintdevicerpi \
+"
+SRCREV_sysintdevicerpi = "${AUTOREV}"
+SRCREV_FORMAT = "sysintgeneric_sysintdevicerpi"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRCREV_FORMAT = "${AUTOREV}"
+
+SRC_URI_remove = "${CMF_GIT_ROOT}/rdkb/devices/intel-x86-pc/emulator/sysint;module=.;protocol=${CMF_GIT_PROTOCOL};branch=${CMF_GIT_BRANCH};destsuffix=git/device;name=sysintdevice"
+
+SRC_URI += "file://TurrisFwUpgrade.sh"
+SRC_URI += "file://swupdate_utility.sh"
+SRC_URI += "file://swupdate.service"
+SRC_URI += "file://commonUtils.sh \
+ file://dcaSplunkUpload.sh \
+ file://dca_utility.sh \
+ file://interfaceCalls.sh \
+ file://DCMscript.sh \
+ file://logfiles.sh \
+ file://StartDCM.sh \
+ file://uploadSTBLogs.sh \
+ file://getaccountid.sh \
+ file://getpartnerid.sh \
+ file://utils.sh \
+ file://dcm-log.service"
+
+SYSTEMD_SERVICE_${PN} = "swupdate.service"
+SYSTEMD_SERVICE_${PN} = "dcm-log.service"
+
+do_install_append() {
+ echo "BOX_TYPE=turris" >> ${D}${sysconfdir}/device.properties
+ echo "ARM_INTERFACE=erouter0" >> ${D}${sysconfdir}/device.properties
+ install -d ${D}${base_libdir}/rdk
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0755 ${WORKDIR}/TurrisFwUpgrade.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/swupdate_utility.sh ${D}${base_libdir}/rdk
+ install -m 0644 ${WORKDIR}/swupdate.service ${D}${systemd_unitdir}/system
+ echo "CLOUDURL="http://35.155.171.121:9092/xconf/swu/stb?eStbMac="" >> ${D}${sysconfdir}/include.properties
+
+ #DCM simulator Support
+ install -m 0644 ${S}/dcmlogservers.txt ${D}/rdklogger/
+ install -m 0755 ${WORKDIR}/StartDCM.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/DCMscript.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/uploadSTBLogs.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/dcaSplunkUpload.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/dca_utility.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/interfaceCalls.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/commonUtils.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/logfiles.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/getaccountid.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/getpartnerid.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/utils.sh ${D}${base_libdir}/rdk
+ install -m 0755 ${WORKDIR}/dcm-log.service ${D}${systemd_unitdir}/system
+ echo "DCM_LOG_SERVER_URL="http://35.155.171.121:9092/loguploader/getSettings"" >> ${D}${sysconfdir}/dcm.properties
+ echo "DCM_HTTP_SERVER_URL="http://35.155.171.121/xconf/telemetry_upload.php"" >> ${D}${sysconfdir}/dcm.properties
+ echo "DCM_LA_SERVER_URL="http://35.155.171.121/xconf/logupload.php"" >> ${D}${sysconfdir}/dcm.properties
+ echo "TFTP_SERVER_IP=35.155.171.121" >> ${D}${sysconfdir}/device.properties
+ echo "MODEL_NAME=Turris" >> ${D}${sysconfdir}/device.properties
+
+ #Log Rotate Support
+ sed -i "/if \[ \! -f \/usr\/bin\/GetConfigFile \]\;then/,+4d" ${D}/rdklogger/logfiles.sh
+ sed -i "/uploadRDKBLogs.sh/a \ \t \t \t uploading_rdklogs" ${D}/rdklogger/rdkbLogMonitor.sh
+ sed -i "/uploadRDKBLogs.sh/d " ${D}/rdklogger/rdkbLogMonitor.sh
+ sed -i "/upload_nvram2_logs()/i uploading_rdklogs() \n { \n \ \t \t TFTP_RULE_COUNT=\`iptables -t raw -L -n | grep tftp | wc -l\` \n \ \t \t if [ \"\$TFTP_RULE_COUNT\" == 0 ] \n \t \t then \n \ \t \t \t iptables -t raw -I OUTPUT -j CT -p udp -m udp --dport 69 --helper tftp \n \ \t \t \t sleep 2 \n \ \t \t fi \n \ \t \t cd /nvram/logbackup \n \ \t \t FILENAME=\`ls *.tgz\` \n \ \t \t tftp -p -r \$FILENAME \$TFTP_SERVER_IP \n } " ${D}/rdklogger/rdkbLogMonitor.sh
+
+ install -m 0755 ${S}/devicerpi/lib/rdk/run_rm_key.sh ${D}${base_libdir}/rdk
+}
+
+FILES_${PN} += "${systemd_unitdir}/system/swupdate.service"
+FILES_${PN} += "${systemd_unitdir}/system/dcm-log.service"
+
+RDEPENDS_${PN}_append_dunfell = " bash"
diff --git a/recipes-support/dnsmasq/dnsmasq_%.bbappend b/recipes-support/dnsmasq/dnsmasq_%.bbappend
new file mode 100644
index 0000000..e73e748
--- /dev/null
+++ b/recipes-support/dnsmasq/dnsmasq_%.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://dnsmasq.conf"
diff --git a/recipes-support/dnsmasq/dnsmasq_2.78.bbappend b/recipes-support/dnsmasq/dnsmasq_2.78.bbappend
new file mode 100644
index 0000000..336fad1
--- /dev/null
+++ b/recipes-support/dnsmasq/dnsmasq_2.78.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'extender', 'file://300-vendor-class-dhcp-lease-file.patch', '', d)}"
diff --git a/recipes-support/dnsmasq/files/300-vendor-class-dhcp-lease-file.patch b/recipes-support/dnsmasq/files/300-vendor-class-dhcp-lease-file.patch
new file mode 100644
index 0000000..efa8a87
--- /dev/null
+++ b/recipes-support/dnsmasq/files/300-vendor-class-dhcp-lease-file.patch
@@ -0,0 +1,121 @@
+Index: dnsmasq-2.78/src/dnsmasq.h
+===================================================================
+--- dnsmasq-2.78.orig/src/dnsmasq.h 2020-09-09 12:04:48.512772429 +0000
++++ dnsmasq-2.78/src/dnsmasq.h 2020-09-09 12:08:18.441392007 +0000
+@@ -670,6 +670,7 @@
+ char *hostname, *fqdn; /* name from client-hostname option or config */
+ char *old_hostname; /* hostname before it moved to another lease */
+ char *fingerprint; /* DHCP fingerprint */
++ char *vendor_class; /* DHCP vendor class */
+ int flags;
+ time_t expires; /* lease expiry */
+ #ifdef HAVE_BROKEN_RTC
+@@ -1349,6 +1350,7 @@
+ unsigned int len, int delim);
+ #endif
+ void lease_add_fingerprint(struct dhcp_lease *lease, unsigned char *req_options);
++void lease_add_vendor_class(struct dhcp_lease *lease, unsigned char *data, unsigned int len);
+ #endif
+
+ /* rfc2131.c */
+Index: dnsmasq-2.78/src/lease.c
+===================================================================
+--- dnsmasq-2.78.orig/src/lease.c 2020-09-09 12:04:48.512772429 +0000
++++ dnsmasq-2.78/src/lease.c 2020-09-09 12:14:20.482344455 +0000
+@@ -35,6 +35,7 @@
+ int items;
+ char *domain = NULL;
+ char *dhcp_fingerprint = NULL;
++ char vendor_buf[256];
+
+ *daemon->dhcp_buff3 = *daemon->dhcp_buff2 = '\0';
+
+@@ -76,8 +77,8 @@
+ }
+ #endif
+
+- if (fscanf(leasestream, " %64s %255s %255s %764s",
+- daemon->namebuff, daemon->dhcp_buff, dhcp_fingerprint, daemon->packet) != 4)
++ if (fscanf(leasestream, " %64s %255s %255s \"%255[^\"]\" %764s",
++ daemon->namebuff, daemon->dhcp_buff, dhcp_fingerprint, vendor_buf, daemon->packet) != 5)
+ {
+ if (NULL != dhcp_fingerprint)
+ free(dhcp_fingerprint);
+@@ -135,6 +136,9 @@
+ if (strcmp(dhcp_fingerprint, "*") != 0)
+ lease->fingerprint = strdup(dhcp_fingerprint);
+
++ if (strcmp(vendor_buf, "*") != 0)
++ lease->vendor_class = strdup(vendor_buf);
++
+ ei = atol(daemon->dhcp_buff3);
+
+ #ifdef HAVE_BROKEN_RTC
+@@ -313,6 +317,8 @@
+ ourprintf(&err, "%s ", lease->hostname ? lease->hostname : "*");
+
+ ourprintf(&err, "%s ", lease->fingerprint ? lease->fingerprint : "*");
++ // Here we use double quotes since vendor-class can contain spaces
++ ourprintf(&err, "\"%s\" ", lease->vendor_class ? lease->vendor_class : "*");
+
+ if (lease->clid && lease->clid_len != 0)
+ {
+@@ -594,6 +600,12 @@
+ free(lease->fingerprint);
+ lease->fingerprint = NULL;
+ }
++
++ if (lease->vendor_class)
++ {
++ free(lease->vendor_class);
++ lease->vendor_class = NULL;
++ }
+
+ *up = lease->next; /* unlink */
+
+@@ -1291,4 +1303,27 @@
+ }
+ }
+
++void lease_add_vendor_class(struct dhcp_lease *lease, unsigned char *data, unsigned int len)
++{
++ unsigned int i;
++ if (lease->vendor_class != NULL)
++ {
++ free(lease->vendor_class);
++ }
++
++ if (len > 0)
++ {
++ lease->vendor_class = whine_malloc(len);
++ memcpy(lease->vendor_class, data, len);
++ lease->vendor_class[len] = '\0';
++
++ // Escape quotes (") and 0 in vendor-class by replacing them with space just to be safe
++ for (i = 0; i < len; i++)
++ {
++ if (lease->vendor_class[i] == '\"' || lease->vendor_class[i] == '\0')
++ lease->vendor_class[i] = ' ';
++ }
++ }
++}
++
+ #endif
+Index: dnsmasq-2.78/src/rfc2131.c
+===================================================================
+--- dnsmasq-2.78.orig/src/rfc2131.c 2020-09-09 12:04:48.512772429 +0000
++++ dnsmasq-2.78/src/rfc2131.c 2020-09-09 12:15:34.021860806 +0000
+@@ -1253,6 +1253,13 @@
+ }
+ }
+ }
++
++ /* get vendor-class information */
++ if (lease && (opt = option_find(mess, sz, OPTION_VENDOR_ID, 1)))
++ {
++ lease_add_vendor_class(lease, option_ptr(opt, 0), option_len(opt));
++ }
++
+ /* get options information */
+ if (lease)
+ {
diff --git a/recipes-support/dnsmasq/files/dnsmasq.conf b/recipes-support/dnsmasq/files/dnsmasq.conf
new file mode 100644
index 0000000..cd7020f
--- /dev/null
+++ b/recipes-support/dnsmasq/files/dnsmasq.conf
@@ -0,0 +1,12 @@
+domain-needed
+bogus-priv
+resolv-file=/var/default/resolv.conf
+expand-hosts
+domain=utopia.net
+dhcp-leasefile=/nvram/dnsmasq.leases
+dhcp-lease-max=252
+dhcp-hostsfile=/etc/dhcp_static_hosts
+interface=brlan0
+dhcp-range=10.0.0.2,10.0.0.253,255.255.255.0,7d
+address=/#/10.0.0.1
+dhcp-option=252,"\n"
diff --git a/recipes-support/fftw/fftw_3.3.4.bbappend b/recipes-support/fftw/fftw_3.3.4.bbappend
new file mode 100644
index 0000000..afe3e9c
--- /dev/null
+++ b/recipes-support/fftw/fftw_3.3.4.bbappend
@@ -0,0 +1 @@
+ALLOW_EMPTY_${PN} = "1"
diff --git a/recipes-support/fftw/fftw_3.3.8.bbappend b/recipes-support/fftw/fftw_3.3.8.bbappend
new file mode 100644
index 0000000..afe3e9c
--- /dev/null
+++ b/recipes-support/fftw/fftw_3.3.8.bbappend
@@ -0,0 +1 @@
+ALLOW_EMPTY_${PN} = "1"
diff --git a/recipes-support/memstress/files/0001-replace-pthread_yield-with-sched_yield.patch b/recipes-support/memstress/files/0001-replace-pthread_yield-with-sched_yield.patch
new file mode 100644
index 0000000..6b0d2e1
--- /dev/null
+++ b/recipes-support/memstress/files/0001-replace-pthread_yield-with-sched_yield.patch
@@ -0,0 +1,35 @@
+From 37204b457827d00b4211ce60dfab0c34c3537bb6 Mon Sep 17 00:00:00 2001
+From: rnarayanan <Rajkumar.Narayanan@lnttechservices.com>
+Date: Thu, 11 Apr 2019 09:52:47 +0000
+Subject: [PATCH] replace pthread_yield with sched_yield
+
+Change-Id: I155f0f7faa460f399d41cc15ec6fc732bbb6409c
+Signed-off-by: rnarayanan <Rajkumar.Narayanan@lnttechservices.com>
+---
+ memstress/src/mem_stress.cpp | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/memstress/src/mem_stress.cpp b/memstress/src/mem_stress.cpp
+index 2057d9d..2a5fd12 100644
+--- a/memstress/src/mem_stress.cpp
++++ b/memstress/src/mem_stress.cpp
+@@ -20,6 +20,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <pthread.h>
++#include <sched.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <time.h>
+@@ -158,7 +159,7 @@ void* worker_thread(void *arg)
+ if (config.sleep_bw_ops)
+ usleep(config.sleep_bw_ops);
+ else
+- pthread_yield();
++ sched_yield();
+ }
+
+
+--
+2.19.0
+
diff --git a/recipes-support/memstress/memstress_0.1.bbappend b/recipes-support/memstress/memstress_0.1.bbappend
new file mode 100644
index 0000000..110cc28
--- /dev/null
+++ b/recipes-support/memstress/memstress_0.1.bbappend
@@ -0,0 +1,3 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://0001-replace-pthread_yield-with-sched_yield.patch"
diff --git a/recipes-support/network-hotplug/files/turris-network-hotplug.patch b/recipes-support/network-hotplug/files/turris-network-hotplug.patch
new file mode 100644
index 0000000..ab4644d
--- /dev/null
+++ b/recipes-support/network-hotplug/files/turris-network-hotplug.patch
@@ -0,0 +1,11 @@
+diff -Naur 1.0-r0-orig/network@.service 1.0-r0/network@.service
+--- 1.0-r0-orig/network@.service 2019-07-22 08:52:29.887900569 +0000
++++ 1.0-r0/network@.service 2019-07-22 08:52:42.039688137 +0000
+@@ -4,7 +4,6 @@
+ Type=oneshot
+ RemainAfterExit=yes
+ EnvironmentFile=/etc/device.properties
+-ExecStartPre=/bin/sh -c "/lib/rdk/disableIpv6Autoconf.sh $MOCA_INTERFACE"
+ ExecStartPre=/bin/sh -c 'if [ "$BUILD_TYPE" == "prod" ] && [ -f /proc/sys/kernel/sysrq ];then sysctl -w "kernel.sysrq=0"; fi'
+ ExecStart=/sbin/ip link set dev %i up
+ ExecStartPost=-/lib/rdk/disableUnusedInterfaces.sh %i
diff --git a/recipes-support/network-hotplug/network-hotplug_%.bbappend b/recipes-support/network-hotplug/network-hotplug_%.bbappend
new file mode 100644
index 0000000..46955fb
--- /dev/null
+++ b/recipes-support/network-hotplug/network-hotplug_%.bbappend
@@ -0,0 +1,4 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://turris-network-hotplug.patch;patchdir=${WORKDIR}/ \
+ "
diff --git a/recipes-support/parodus/files/parodus.service b/recipes-support/parodus/files/parodus.service
new file mode 100644
index 0000000..38ba500
--- /dev/null
+++ b/recipes-support/parodus/files/parodus.service
@@ -0,0 +1,29 @@
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2020 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+[Unit]
+Description=Parodus
+After=PsmSsp.service CcspPandMSsp.service ccspwifiagent.service
+
+[Service]
+ExecStart=/bin/sh -c '/lib/rdk/parodus_start.sh;'
+Type=forking
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
diff --git a/recipes-support/parodus/files/parodus_start.sh b/recipes-support/parodus/files/parodus_start.sh
new file mode 100644
index 0000000..1d7a2c1
--- /dev/null
+++ b/recipes-support/parodus/files/parodus_start.sh
@@ -0,0 +1,76 @@
+#!/bin/sh
+##########################################################################
+# If not stated otherwise in this file or this component's Licenses.txt
+# file the following copyright and licenses apply:
+#
+# Copyright 2020 RDK Management
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+##########################################################################
+
+BINPATH="/usr/bin"
+GET="dmcli eRT getv"
+SET=""
+
+echo "Check parodusCmd.cmd in /tmp"
+
+if [ -e /tmp/parodusCmd.cmd ]; then
+ parodusCmd=`cat /tmp/parodusCmd.cmd`
+ $parodusCmd &
+else
+ echo "parodusCmd.cmd does not exist in tmp"
+ echo "Fetching PAM Health status "
+
+ while [ 1 ]
+ do
+ pamState=`$GET com.cisco.spvtg.ccsp.pam.Health | grep value| tr -s ' ' |cut -f5 -d" "`
+ if [ "$pamState" = "Green" ]; then
+ break
+ else
+ echo "Waiting for PAM to come up"
+ fi
+ sleep 10
+ done
+
+ echo "Fetching CMAgent Health status "
+
+
+ echo "Fetching values to form parodus command line arguments"
+
+ ModelName=`$GET Device.DeviceInfo.ModelName | grep value| tr -s ' ' |cut -f5 -d" "`
+ SerialNumber=`$GET Device.DeviceInfo.SerialNumber | grep value| tr -s ' ' |cut -f5 -d" "`
+ Manufacturer=`$GET Device.DeviceInfo.Manufacturer | grep value| tr -s ' ' |cut -f5 -d" "`
+ HW_MAC=`$GET Device.X_CISCO_COM_CableModem.MACAddress | grep value| tr -s ' ' |cut -f5 -d" "`
+ HW_MAC=`ifconfig erouter0 | grep HWaddr | tr -s ' ' | cut -d ' ' -f5`
+ LastRebootReason=`$GET Device.DeviceInfo.X_RDKCENTRAL-COM_LastRebootReason | grep value| tr -s ' ' |cut -f5 -d" "`
+ FirmwareName=`$GET Device.DeviceInfo.X_CISCO_COM_FirmwareName | grep value| tr -s ' ' |cut -f5 -d" "`
+ BootTime=`$GET Device.DeviceInfo.X_RDKCENTRAL-COM_BootTime | grep value| tr -s ' ' |cut -f5 -d" "`
+ MaxPingWaitTimeInSec=180;
+ DeviceNetworkInterface="erouter0";
+ ServerURL=http://54.166.121.187:8080;
+ BackOffMax=9;
+ PARODUS_URL=tcp://127.0.0.1:6666;
+ SSL_CERT_PATH=/etc/ssl/certs/ca-certificates.crt
+
+ echo "Framing command for parodus"
+
+# command="/usr/bin/parodus --hw-model=$ModelName --hw-serial-number=$SerialNumber --hw-manufacturer=$Manufacturer --hw-mac=$HW_MAC --hw-last-reboot-reason=$LastRebootReason --fw-name=$FirmwareName --boot-time=$BootTime --webpa-ping-time=$MaxPingWaitTimeInSec --webpa-inteface-used=$DeviceNetworkInterface --webpa-url=$ServerURL --webpa-backoff-max=$BackOffMax"
+ command="/usr/bin/parodus --hw-model=$ModelName --hw-serial-number=$SerialNumber --hw-manufacturer=$Manufacturer --hw-last-reboot-reason=$LastRebootReason --fw-name=$FirmwareName --boot-time=$BootTime --hw-mac=$HW_MAC --webpa-ping-time=180 --webpa-interface-used=erouter0 --webpa-url=$ServerURL --webpa-backoff-max=$BackOffMax --parodus-local-url=$PARODUS_URL --partner-id=comcast --ssl-cert-path=$SSL_CERT_PATH --force-ipv4 "
+
+ echo $command >/tmp/parodusCmd.cmd
+
+ echo "Starting parodus with the following arguments"
+ echo "ModelName=$ModelName SerialNumber=$SerialNumber Manufacturer=$Manufacturer HW_MAC=$HW_MAC LastRebootReason=$LastRebootReason FirmwareName=$FirmwareName BootTime=$BootTime MaxPingWaitTimeInSec=$MaxPingWaitTimeInSec DeviceNetworkInterface=$DeviceNetworkInterface ServerURL=$ServerURL BackOffMax=$BackOffMax"
+
+ $command &
+fi
diff --git a/recipes-support/parodus/parodus_1.0.bbappend b/recipes-support/parodus/parodus_1.0.bbappend
new file mode 100644
index 0000000..0350742
--- /dev/null
+++ b/recipes-support/parodus/parodus_1.0.bbappend
@@ -0,0 +1,29 @@
+DEPENDS_remove = "ucresolv"
+LDFLAGS_remove = "-lucresolv"
+
+CFLAGS_remove = "-I${STAGING_INCDIR}/ucresolv"
+CFLAGS_remove = "-DFEATURE_DNS_QUERY"
+
+EXTRA_OECMAKE_remove = "-DFEATURE_DNS_QUERY=true"
+
+inherit systemd coverity
+
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+
+SRC_URI += "file://parodus.service"
+SRC_URI += "file://parodus_start.sh"
+
+do_install_append_broadband () {
+ install -d ${D}${systemd_unitdir}/system
+ install -d ${D}${base_libdir_native}/rdk
+ install -m 0644 ${WORKDIR}/parodus.service ${D}${systemd_unitdir}/system
+ install -m 0755 ${WORKDIR}/parodus_start.sh ${D}${base_libdir_native}/rdk
+}
+
+SYSTEMD_SERVICE_${PN}_append_broadband = " parodus.service"
+
+FILES_${PN}_append_broadband = " \
+ ${systemd_unitdir}/system/parodus.service \
+ ${base_libdir_native}/rdk/* \
+"
diff --git a/scripts/lib/wic/canned-wks/rdk-generic-broadband-image.turris.wks b/scripts/lib/wic/canned-wks/rdk-generic-broadband-image.turris.wks
new file mode 100644
index 0000000..96ba6be
--- /dev/null
+++ b/scripts/lib/wic/canned-wks/rdk-generic-broadband-image.turris.wks
@@ -0,0 +1,9 @@
+# short-description: Create mmc image for Turris Omnia
+# long-description: Creates a partitioned mmc image for use with
+# Turris Omnia. Boot files are located in the first vfat partition.
+
+part --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 1024 --system-id 0x0c
+part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label primary --align 1024
+part /secondary --source rootfs --ondisk mmcblk0 --fstype=ext4 --label secondary --align 1024 --fsoptions "noauto"
+part /nvram --ondisk mmcblk0 --fstype=ext4 --label nvram1 --align 1024 --fixed-size 100M
+part /nvram2 --ondisk mmcblk0 --fstype=ext4 --label nvram2 --align 1024 --fixed-size 100M --fsoptions "noauto"
diff --git a/scripts/lib/wic/canned-wks/rdk-generic-extender-image.turris-extender.wks b/scripts/lib/wic/canned-wks/rdk-generic-extender-image.turris-extender.wks
new file mode 100644
index 0000000..207315f
--- /dev/null
+++ b/scripts/lib/wic/canned-wks/rdk-generic-extender-image.turris-extender.wks
@@ -0,0 +1,6 @@
+# short-description: Create mmc image for Turris Omnia
+# long-description: Creates a partitioned mmc image for use with
+# Turris Omnia. Boot files are located in the first vfat partition.
+
+part --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 1024 --system-id 0x0c
+part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 1024
diff --git a/setup-environment b/setup-environment
new file mode 100755
index 0000000..024db86
--- /dev/null
+++ b/setup-environment
@@ -0,0 +1,88 @@
+# If not stated otherwise in this file or this component's LICENSE
+# file the following copyright and licenses apply:
+#
+#Copyright [2019] [RDK Management]
+#
+#Licensed under the Apache License, Version 2.0 (the "License");
+#you may not use this file except in compliance with the License.
+#You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+#Unless required by applicable law or agreed to in writing, software
+#distributed under the License is distributed on an "AS IS" BASIS,
+#WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#See the License for the specific language governing permissions and
+#limitations under the License.
+
+#!/usr/bin/env bash
+
+unset _RDK_FLAVOR
+
+TOP_DIR=$(pwd)
+export RDK_BSP_LAYER=none
+
+# default BSP layer is meta-marvell for turris-omnia board
+export RDK_BSP_LAYER=meta-cmf-filogic
+
+source meta-cmf/setup-environment $1
+if [ $? -ne 0 ]; then
+ return 1
+fi
+
+# at this point the current directory should be the build dir
+BUILD_DIR=$(pwd)
+_RDK_FLAVOR="rdkb"
+
+if [[ -z $(grep 'meta-cmf-filogic' conf/bblayers.conf) ]] && [[ -d ../meta-cmf-filogic ]]
+then
+ cat >> conf/bblayers.conf <<EOF
+BBLAYERS =+ "\${RDKROOT}/meta-cmf-filogic"
+EOF
+fi
+
+if [[ $(grep '^BBLAYERS' conf/bblayers.conf | grep -c 'meta-filogic') -eq 0 ]] && [[ -d ../meta-filogic ]]
+then
+ cat >> conf/bblayers.conf <<EOF
+BBLAYERS =+ "\${RDKROOT}/meta-filogic"
+EOF
+fi
+
+# Add meta-rdk-opensync only if not already present.
+if [[ $(grep '^BBLAYERS' conf/bblayers.conf | grep -c 'meta-rdk-opensync') -eq 0 ]] && [[ -d ../meta-rdk-opensync ]]
+then
+ echo 'LAYERSERIES_COMPAT_opensync = "dunfell"' >> ../meta-rdk-opensync/conf/layer.conf
+ cat >> conf/bblayers.conf <<EOF
+BBLAYERS =+ "\${RDKROOT}/meta-rdk-opensync"
+EOF
+fi
+
+# Add meta-amx(prplmesh used) only if not already present.
+if [[ $(grep '^BBLAYERS' conf/bblayers.conf | grep -c 'meta-amx') -eq 0 ]] && [[ -d ../meta-amx ]]
+then
+ cat >> conf/bblayers.conf <<EOF
+BBLAYERS =+ "\${RDKROOT}/meta-amx"
+EOF
+fi
+# Add meta-prplmesh only if not already present.
+if [[ $(grep '^BBLAYERS' conf/bblayers.conf | grep -c 'meta-prplmesh') -eq 0 ]] && [[ -d ../meta-prplmesh ]]
+then
+ cat >> conf/bblayers.conf <<EOF
+BBLAYERS =+ "\${RDKROOT}/meta-prplmesh"
+EOF
+fi
+
+if [ -L ${TOP_DIR}/.repo/manifest.xml ] ; then
+ MANIFEST="$(basename `readlink -f ${TOP_DIR}/.repo/manifest.xml` .xml)"
+else
+ MANIFEST=$(grep include ${TOP_DIR}/.repo/manifest.xml | cut -d '"' -f 2 | xargs basename -s .xml )
+fi
+echo "Manifest Name = ${MANIFEST}.xml"
+if [ -f "${TOP_DIR}/.repo/manifests/turris-tags/${MANIFEST}.conf" ]; then
+ cat ${TOP_DIR}/.repo/manifests/turris-tags/${MANIFEST}.conf >> $BUILD_DIR/conf/auto.conf
+ if [ $? == 0 ]; then
+ echo "${MANIFEST}.conf copied to auto.conf successfully"
+ else
+ echo "FAILED to copy auto.conf"
+ fi
+fi