• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef NET_POLICY_DEFINE_H
17 #define NET_POLICY_DEFINE_H
18 
19 #include "common_event_manager.h"
20 #include "common_event_support.h"
21 
22 #include "net_quota_policy.h"
23 
24 namespace OHOS {
25 namespace NetManagerStandard {
26 const std::string COMMON_EVENT_NET_QUOTA_LIMIT = "usual.event.NET_QUOTA_LIMIT";
27 const std::string COMMON_EVENT_NET_QUOTA_LIMIT_REMINDED = "usual.event.NET_QUOTA_LIMIT_REMINDED";
28 const std::string COMMON_EVENT_NET_QUOTA_WARNING = "usual.event.QUOTA_WARNING";
29 const std::string COMMON_EVENT_POWER_SAVE_MODE_CHANGED =
30     EventFwk::CommonEventSupport::COMMON_EVENT_POWER_SAVE_MODE_CHANGED;
31 const std::string COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED =
32     EventFwk::CommonEventSupport::COMMON_EVENT_DEVICE_IDLE_MODE_CHANGED;
33 const std::string COMMON_EVENT_PACKAGE_REMOVED = EventFwk::CommonEventSupport::COMMON_EVENT_PACKAGE_REMOVED;
34 
35 const mode_t CHOWN_RWX_USR_GRP = 0770;
36 constexpr int16_t PERIODDURATION_POS_NUM_ONE = 1;
37 constexpr int16_t DAY_ONE = 1;
38 constexpr int16_t DAY_THIRTY_ONE = 31;
39 constexpr int16_t LIMIT_ACTION_ONE = 1;
40 constexpr int16_t LIMIT_ACTION_THREE = 3;
41 constexpr int16_t LIMIT_CALLBACK_NUM = 200;
42 constexpr const char *POLICY_FILE_NAME = "/data/service/el1/public/netmanager/net_policy.json";
43 constexpr const char *POLICY_FILE_BAK_NAME = "/data/service/el1/public/netmanager/net_policy.bak";
44 constexpr const char *CONFIG_HOS_VERSION = "hosVersion";
45 constexpr const char *CONFIG_UID_POLICY = "uidPolicy";
46 constexpr const char *CONFIG_UID = "uid";
47 constexpr const char *CONFIG_POLICY = "policy";
48 constexpr const char *HOS_VERSION = "1.0";
49 constexpr const char *CONFIG_BACKGROUND_POLICY = "backgroundPolicy";
50 constexpr const char *CONFIG_BACKGROUND_POLICY_STATUS = "status";
51 constexpr const char *CONFIG_QUOTA_POLICY = "quotaPolicy";
52 constexpr const char *CONFIG_QUOTA_POLICY_NETTYPE = "netType";
53 constexpr const char *CONFIG_QUOTA_POLICY_SUBSCRIBERID = "simId";
54 constexpr const char *CONFIG_QUOTA_POLICY_PERIODSTARTTIME = "periodStartTime";
55 constexpr const char *CONFIG_QUOTA_POLICY_PERIODDURATION = "periodDuration";
56 constexpr const char *CONFIG_QUOTA_POLICY_WARNINGBYTES = "warningBytes";
57 constexpr const char *CONFIG_QUOTA_POLICY_LIMITBYTES = "limitBytes";
58 constexpr const char *CONFIG_QUOTA_POLICY_LASTLIMITSNOOZE = "lastLimitSnooze";
59 constexpr const char *CONFIG_QUOTA_POLICY_METERED = "metered";
60 constexpr const char *CONFIG_QUOTA_POLICY_IDENT = "ident";
61 constexpr const char *CONFIG_FIREWALL_RULE = "firewallList";
62 constexpr const char *CONFIG_FIREWALL_RULE_DENIEDLIST = "deniedList";
63 constexpr const char *CONFIG_FIREWALL_RULE_ALLOWEDLIST = "allowedList";
64 constexpr const char *BACKGROUND_POLICY_ALLOW = "allow";
65 constexpr const char *BACKGROUND_POLICY_REJECT = "reject";
66 constexpr const char *IDENT_PREFIX_CELLULAR = "simId";
67 constexpr const char *IDENT_PREFIX_WIFI = "ssId";
68 constexpr const char *UNKNOW_IFACE = "";
69 
70 enum {
71     FIREWALL_CHAIN_NONE = 0,         // ChainType::CHAIN_NONE
72     FIREWALL_CHAIN_DEVICE_IDLE = 16, // ChainType::CHAIN_OHFW_DOZABLE
73     FIREWALL_CHAIN_POWER_SAVE = 17,  // ChainType::CHAIN_OHFW_UNDOZABLE
74 };
75 
76 enum {
77     FIREWALL_RULE_ALLOW = 1,
78     FIREWALL_RULE_DENY = 2,
79 };
80 
81 struct UidPolicy {
82     std::string uid;
83     std::string policy;
84 };
85 
86 struct NetPolicyQuota {
87     std::string netType;
88     std::string simId;
89     std::string periodStartTime;
90     std::string periodDuration;
91     std::string warningBytes;
92     std::string limitBytes;
93     std::string lastLimitSnooze;
94     std::string metered;
95     std::string ident;
96 };
97 
98 struct NetPolicyCellular {
99     std::string simId;
100     std::string periodStartTime;
101     std::string periodDuration;
102     std::string title;
103     std::string summary;
104     std::string limitBytes;
105     std::string limitAction;
106     std::string usedBytes;
107     std::string usedTimeDuration;
108     std::string possessor;
109 };
110 
111 struct NetFirewallRule {
112     std::set<uint32_t> deniedList;
113     std::set<uint32_t> allowedList;
114 };
115 
116 struct NetPolicy {
117     std::string hosVersion;
118     std::vector<UidPolicy> uidPolicies;
119     std::string backgroundPolicyStatus;
120     std::vector<NetPolicyQuota> netQuotaPolicies;
121     std::map<uint32_t, NetFirewallRule> netFirewallRules;
122 };
123 
124 // link power_mode_module.h
125 enum {
126     POWER_MODE_MIN = 600,
127     NORMAL_MODE = POWER_MODE_MIN,
128     SAVE_MODE,
129     EXTREME_MODE,
130     LOWPOWER_MODE,
131     POWER_MODE_MAX = LOWPOWER_MODE
132 };
133 } // namespace NetManagerStandard
134 } // namespace OHOS
135 #endif // NET_POLICY_DEFINE_H