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 *POLICY_FILE_BAK_PATH = "/data/service/el1/public/netmanager/";
45 constexpr const char *CONFIG_HOS_VERSION = "hosVersion";
46 constexpr const char *CONFIG_UID_POLICY = "uidPolicy";
47 constexpr const char *CONFIG_UID = "uid";
48 constexpr const char *CONFIG_POLICY = "policy";
49 constexpr const char *HOS_VERSION = "1.0";
50 constexpr const char *CONFIG_BACKGROUND_POLICY = "backgroundPolicy";
51 constexpr const char *CONFIG_BACKGROUND_POLICY_STATUS = "status";
52 constexpr const char *CONFIG_QUOTA_POLICY = "quotaPolicy";
53 constexpr const char *CONFIG_QUOTA_POLICY_NETTYPE = "netType";
54 constexpr const char *CONFIG_QUOTA_POLICY_SUBSCRIBERID = "simId";
55 constexpr const char *CONFIG_QUOTA_POLICY_PERIODSTARTTIME = "periodStartTime";
56 constexpr const char *CONFIG_QUOTA_POLICY_PERIODDURATION = "periodDuration";
57 constexpr const char *CONFIG_QUOTA_POLICY_WARNINGBYTES = "warningBytes";
58 constexpr const char *CONFIG_QUOTA_POLICY_LIMITBYTES = "limitBytes";
59 constexpr const char *CONFIG_QUOTA_POLICY_LASTLIMITSNOOZE = "lastLimitSnooze";
60 constexpr const char *CONFIG_QUOTA_POLICY_METERED = "metered";
61 constexpr const char *CONFIG_QUOTA_POLICY_IDENT = "ident";
62 constexpr const char *CONFIG_FIREWALL_RULE = "firewallList";
63 constexpr const char *CONFIG_FIREWALL_RULE_DENIEDLIST = "deniedList";
64 constexpr const char *CONFIG_FIREWALL_RULE_ALLOWEDLIST = "allowedList";
65 constexpr const char *BACKGROUND_POLICY_ALLOW = "allow";
66 constexpr const char *BACKGROUND_POLICY_REJECT = "reject";
67 constexpr const char *IDENT_PREFIX_CELLULAR = "simId";
68 constexpr const char *IDENT_PREFIX_WIFI = "ssId";
69 constexpr const char *UNKNOW_IFACE = "";
70 
71 enum {
72     FIREWALL_CHAIN_NONE = 0,         // ChainType::CHAIN_NONE
73     FIREWALL_CHAIN_DEVICE_IDLE = 16, // ChainType::CHAIN_OHFW_DOZABLE
74     FIREWALL_CHAIN_POWER_SAVE = 17,  // ChainType::CHAIN_OHFW_UNDOZABLE
75 };
76 
77 enum {
78     FIREWALL_RULE_ALLOW = 1,
79     FIREWALL_RULE_DENY = 2,
80 };
81 
82 struct UidPolicy {
83     std::string uid;
84     std::string policy;
85 };
86 
87 struct NetPolicyQuota {
88     std::string netType;
89     std::string simId;
90     std::string periodStartTime;
91     std::string periodDuration;
92     std::string warningBytes;
93     std::string limitBytes;
94     std::string lastLimitSnooze;
95     std::string metered;
96     std::string ident;
97 };
98 
99 struct NetPolicyCellular {
100     std::string simId;
101     std::string periodStartTime;
102     std::string periodDuration;
103     std::string title;
104     std::string summary;
105     std::string limitBytes;
106     std::string limitAction;
107     std::string usedBytes;
108     std::string usedTimeDuration;
109     std::string possessor;
110 };
111 
112 struct NetFirewallRule {
113     std::set<uint32_t> deniedList;
114     std::set<uint32_t> allowedList;
115 };
116 
117 struct NetPolicy {
118     std::string hosVersion;
119     std::vector<UidPolicy> uidPolicies;
120     std::string backgroundPolicyStatus;
121     std::vector<NetPolicyQuota> netQuotaPolicies;
122     std::map<uint32_t, NetFirewallRule> netFirewallRules;
123 };
124 
125 // link power_mode_module.h
126 enum {
127     POWER_MODE_MIN = 600,
128     NORMAL_MODE = POWER_MODE_MIN,
129     SAVE_MODE,
130     EXTREME_MODE,
131     LOWPOWER_MODE,
132     POWER_MODE_MAX = LOWPOWER_MODE
133 };
134 } // namespace NetManagerStandard
135 } // namespace OHOS
136 #endif // NET_POLICY_DEFINE_H