diff --git a/kernel-tests/Feature.cpp b/kernel-tests/Feature.cpp new file mode 100644 index 0000000000..e50f9c603f --- /dev/null +++ b/kernel-tests/Feature.cpp @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2017,2020 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + */ + +#include +#include +#include +#include +#include +#include + +#include "Feature.h" + +/* + * All interaction through the driver are + * made through this inode. + */ +static const char* DEVICE_NAME = "/dev/ipa"; + +Feature::Feature() +{ + m_fd = open(DEVICE_NAME, O_RDWR); + if (!m_fd) + { + cout << "Failed to open " << DEVICE_NAME << endl; + } +} + +Feature::~Feature() +{ + if (m_fd) + { + close(m_fd); + } +} + +bool Feature::DeviceNodeIsOpened() +{ + return (m_fd > 0 && fcntl(m_fd, F_GETFL) >= 0); +} diff --git a/kernel-tests/Feature.h b/kernel-tests/Feature.h new file mode 100644 index 0000000000..f6bcad61a4 --- /dev/null +++ b/kernel-tests/Feature.h @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2017,2020 The Linux Foundation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of The Linux Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE + */ + +#ifndef FEATURE_H_ +#define FEATURE_H_ + +#include +#include +#include +#include "linux/msm_ipa.h" + +using std::cout; +using std::endl; + +class Feature +{ +public: + Feature(); + ~Feature(); + bool DeviceNodeIsOpened(); + +protected: + int m_fd; +}; + +#endif diff --git a/kernel-tests/Filtering.cpp b/kernel-tests/Filtering.cpp index d42a0a85fb..bdf6a338e3 100644 --- a/kernel-tests/Filtering.cpp +++ b/kernel-tests/Filtering.cpp @@ -25,8 +25,43 @@ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE */ + #include #include #include @@ -34,31 +69,11 @@ #include "Filtering.h" -const char* Filtering::DEVICE_NAME = "/dev/ipa"; - -Filtering::Filtering() -{ - fd = open(DEVICE_NAME, O_RDWR); - if (0 == fd) { - printf("Failed opening %s.\n", DEVICE_NAME); - } -} - -Filtering::~Filtering() -{ - close(fd); -} - -bool Filtering::DeviceNodeIsOpened() -{ - return fd; -} - bool Filtering::AddFilteringRule(struct ipa_ioc_add_flt_rule const * ruleTable) { int retval = 0; - retval = ioctl(fd, IPA_IOC_ADD_FLT_RULE, ruleTable); + retval = ioctl(m_fd, IPA_IOC_ADD_FLT_RULE, ruleTable); if (retval) { printf("%s(), failed adding Filtering rule table %p\n", __FUNCTION__, ruleTable); return false; @@ -72,7 +87,7 @@ bool Filtering::AddFilteringRule(struct ipa_ioc_add_flt_rule_v2 const * ruleTabl { int retval = 0; - retval = ioctl(fd, IPA_IOC_ADD_FLT_RULE_V2, ruleTable); + retval = ioctl(m_fd, IPA_IOC_ADD_FLT_RULE_V2, ruleTable); if (retval) { printf("%s(), failed adding Filtering rule table %p\n", __FUNCTION__, ruleTable); return false; @@ -86,7 +101,7 @@ bool Filtering::DeleteFilteringRule(struct ipa_ioc_del_flt_rule *ruleTable) { int retval = 0; - retval = ioctl(fd, IPA_IOC_DEL_FLT_RULE, ruleTable); + retval = ioctl(m_fd, IPA_IOC_DEL_FLT_RULE, ruleTable); if (retval) { printf("%s(), failed deleting Filtering rule in table %p\n", __FUNCTION__, ruleTable); return false; @@ -100,7 +115,7 @@ bool Filtering::Commit(enum ipa_ip_type ip) { int retval = 0; - retval = ioctl(fd, IPA_IOC_COMMIT_FLT, ip); + retval = ioctl(m_fd, IPA_IOC_COMMIT_FLT, ip); if (retval) { printf("%s(), failed committing Filtering rules.\n", __FUNCTION__); return false; @@ -114,8 +129,8 @@ bool Filtering::Reset(enum ipa_ip_type ip) { int retval = 0; - retval = ioctl(fd, IPA_IOC_RESET_FLT, ip); - retval |= ioctl(fd, IPA_IOC_COMMIT_FLT, ip); + retval = ioctl(m_fd, IPA_IOC_RESET_FLT, ip); + retval |= ioctl(m_fd, IPA_IOC_COMMIT_FLT, ip); if (retval) { printf("%s(), failed resetting Filtering block.\n", __FUNCTION__); return false; diff --git a/kernel-tests/Filtering.h b/kernel-tests/Filtering.h index 4cd08695cd..08e618684c 100644 --- a/kernel-tests/Filtering.h +++ b/kernel-tests/Filtering.h @@ -25,6 +25,40 @@ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE */ #ifndef FILTERING_H_ @@ -32,22 +66,16 @@ #include #include "linux/msm_ipa.h" +#include "Feature.h" -class Filtering +class Filtering: public Feature { public: - Filtering(); - ~Filtering(); bool AddFilteringRule(struct ipa_ioc_add_flt_rule const *ruleTable); bool AddFilteringRule(ipa_ioc_add_flt_rule_v2 const *ruleTable); bool DeleteFilteringRule(struct ipa_ioc_del_flt_rule *ruleTable); bool Commit(enum ipa_ip_type ip); bool Reset(enum ipa_ip_type ip); - bool DeviceNodeIsOpened(); - -private: - static const char *DEVICE_NAME; - int fd; /*File descriptor of the IPA device node /dev/ipa*/ }; #endif diff --git a/kernel-tests/HeaderInsertion.cpp b/kernel-tests/HeaderInsertion.cpp index cae0e9142f..68e8434e2e 100644 --- a/kernel-tests/HeaderInsertion.cpp +++ b/kernel-tests/HeaderInsertion.cpp @@ -25,6 +25,40 @@ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE */ #include @@ -37,39 +71,10 @@ #include "HeaderInsertion.h" #include "TestsUtils.h" -/*All interaction through the driver are - * made through this inode. - */ -static const char* DEVICE_NAME = "/dev/ipa"; - #define LOG_IOCTL_RETURN_VALUE(nRetVal) \ printf("%s()- %s\n", __func__, \ (-1 == nRetVal) ? "Fail" : "Success"); -HeaderInsertion::HeaderInsertion() -{ - m_fd = open(DEVICE_NAME, O_RDWR); - if (-1 == m_fd) - { - printf( - "Failed to open %s in HeaderInsertion test application constructor.\n", - DEVICE_NAME); - } -} - -HeaderInsertion::~HeaderInsertion() -{ - if (-1 != m_fd) - { - close(m_fd); - } -} - -bool HeaderInsertion::DeviceNodeIsOpened() -{ - return (-1 != m_fd); -} - bool HeaderInsertion::AddHeader(struct ipa_ioc_add_hdr *pHeaderTableToAdd) { int nRetVal = 0; diff --git a/kernel-tests/HeaderInsertion.h b/kernel-tests/HeaderInsertion.h index b5d6410d91..90789432d9 100644 --- a/kernel-tests/HeaderInsertion.h +++ b/kernel-tests/HeaderInsertion.h @@ -25,6 +25,40 @@ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE */ #ifndef HEADER_INSERTION_H_ @@ -36,16 +70,14 @@ #include "linux/msm_ipa.h" #include "ipa_test_module.h" #include "Constants.h" +#include "Feature.h" using std::string; using std::cout; using std::endl; -class HeaderInsertion +class HeaderInsertion: public Feature { -private: - int m_fd; - public: bool AddHeader(struct ipa_ioc_add_hdr *pHeaderTable); bool addHeaderHpc(const string& name, uint8_t* header, const size_t headerLen, bool isPartial, enum ipa_client_type ipaClient); @@ -61,10 +93,6 @@ public: bool Commit(); bool Reset(); - - HeaderInsertion(); - ~HeaderInsertion(); - bool DeviceNodeIsOpened(); }; #endif diff --git a/kernel-tests/Makefile.am b/kernel-tests/Makefile.am index e38320b7cc..4903729e44 100644 --- a/kernel-tests/Makefile.am +++ b/kernel-tests/Makefile.am @@ -49,4 +49,5 @@ ipa_kernel_tests_SOURCES =\ NatTest.cpp \ IPv6CTTest.cpp \ UlsoTest.cpp \ + Feature.cpp \ main.cpp diff --git a/kernel-tests/RoutingDriverWrapper.cpp b/kernel-tests/RoutingDriverWrapper.cpp index 25f5e1e1bd..6fbb0f4e11 100644 --- a/kernel-tests/RoutingDriverWrapper.cpp +++ b/kernel-tests/RoutingDriverWrapper.cpp @@ -25,6 +25,40 @@ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE */ #include @@ -35,32 +69,6 @@ #include "RoutingDriverWrapper.h" #include "TestsUtils.h" -const char* RoutingDriverWrapper::DEVICE_NAME = "/dev/ipa"; - -RoutingDriverWrapper::RoutingDriverWrapper() -{ - m_fd = open(DEVICE_NAME, O_RDWR); - if (0 == m_fd) { - printf("Failed opening %s.\n", DEVICE_NAME); - } -} - -RoutingDriverWrapper::~RoutingDriverWrapper() -{ - close(m_fd); -} - -bool RoutingDriverWrapper::DeviceNodeIsOpened() -{ - int res = fcntl(m_fd, F_GETFL); - - if (m_fd > 0 && res >=0) - return true; - else - return false; - -} - bool RoutingDriverWrapper::AddRoutingRule(struct ipa_ioc_add_rt_rule *ruleTable) { int retval = 0; diff --git a/kernel-tests/RoutingDriverWrapper.h b/kernel-tests/RoutingDriverWrapper.h index e02aad76f7..fb13d9a035 100644 --- a/kernel-tests/RoutingDriverWrapper.h +++ b/kernel-tests/RoutingDriverWrapper.h @@ -25,6 +25,40 @@ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * Changes from Qualcomm Innovation Center are provided under the following license: + * + * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted (subject to the limitations in the + * disclaimer below) provided that the following conditions are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * + * * Neither the name of Qualcomm Innovation Center, Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE + * GRANTED BY THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT + * HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR + * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE */ #ifndef ROUTING_H_ @@ -32,31 +66,20 @@ #include #include "linux/msm_ipa.h" +#include "Feature.h" using namespace std; -class RoutingDriverWrapper +class RoutingDriverWrapper: public Feature { public: - RoutingDriverWrapper(); - ~RoutingDriverWrapper(); - bool AddRoutingRule(struct ipa_ioc_add_rt_rule *ruleTable); bool AddRoutingRule(ipa_ioc_add_rt_rule_v2 *ruleTable_v2); bool DeleteRoutingRule(struct ipa_ioc_del_rt_rule *ruleTable); - bool Commit(enum ipa_ip_type ip); bool Reset(enum ipa_ip_type ip); - bool GetRoutingTable(struct ipa_ioc_get_rt_tbl *routingTable); bool PutRoutingTable(uint32_t routingTableHandle); - - bool DeviceNodeIsOpened(); - -private: - static const char *DEVICE_NAME; - /* File descriptor of the IPA device node /dev/ipa*/ - int m_fd; }; #endif