X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fhelper%2Fhelper-nfacct-rule.h;h=e8923b8855cbb5817af7a4ebffee8803e6c13aa5;hb=refs%2Fheads%2Ftizen_5.5;hp=7ce4ed739be3e2d756091a27c368d7b3acba9845;hpb=006d9d618412b49068c6aa4c2fc3833e32edc30a;p=platform%2Fcore%2Fconnectivity%2Fstc-manager.git diff --git a/src/helper/helper-nfacct-rule.h b/src/helper/helper-nfacct-rule.h index 7ce4ed7..e8923b8 100755 --- a/src/helper/helper-nfacct-rule.h +++ b/src/helper/helper-nfacct-rule.h @@ -31,6 +31,7 @@ typedef enum { NFACCT_COUNTER_UNKNOWN, NFACCT_COUNTER_IN = (1 << 1), NFACCT_COUNTER_OUT = (1 << 2), + NFACCT_COUNTER_FORWARD = (1 << 3), NFACCT_COUNTER_LAST_ELEM } nfacct_rule_direction; @@ -53,10 +54,29 @@ typedef enum { NFACCT_COUNTER, NFACCT_WARN, NFACCT_BLOCK, + NFACCT_ALLOW, NFACCT_TETH_COUNTER, + NFACCT_TETH_WARN, + NFACCT_TETH_BLOCK, + NFACCT_TETH_ALLOW, NFACCT_RULE_LAST_ELEM, } nfacct_rule_intend; +typedef enum { + NFACCT_TYPE_UNKNOWN, + NFACCT_TYPE_IPV4, + NFACCT_TYPE_IPV6, + NFACCT_TYPE_IPV4_IPV6, + NFACCT_TYPE_LAST_ELEM +} nfacct_rule_iptype; + +typedef enum { + NFACCT_IPRANGE_TYPE_NONE, + NFACCT_IPRANGE_TYPE_SINGLE, + NFACCT_IPRANGE_TYPE_MASK, + NFACCT_IPRANGE_TYPE_RANGE, +} nfacct_rule_iprange_type; + enum nfnl_acct_flags { NFACCT_F_QUOTA_PKTS = (1 << 0), NFACCT_F_QUOTA_BYTES = (1 << 1), @@ -70,7 +90,7 @@ enum nfnl_acct_flags { * * and inherited nfacct_rule_counter and nfacct_rule_restriction * with additional field: - * quota, quota_id, roaming, rst_state + * quota, quota_id, roaming, rstn_state * * But ANSI C doesn't support inheritance. */ @@ -81,20 +101,28 @@ struct nfacct_rule { pid_t pid; uint32_t classid; stc_iface_type_e iftype; + nfacct_rule_action action; nfacct_rule_direction iotype; nfacct_rule_intend intend; + nfacct_rule_jump jump; /* in most cases jump is evalutation based on intend, but not always */ + stc_app_state_e app_state; + stc_rstn_state_e rstn_state; + nfacct_rule_iptype iptype; + nfacct_rule_iprange_type src_iprange_type; + nfacct_rule_iprange_type dst_iprange_type; + char *src_ip1; + char *src_ip2; + char *dst_ip1; + char *dst_ip2; + struct counter_arg *carg; stc_error_e(*iptables_rule)(struct nfacct_rule *counter); - uint64_t quota; + long long int quota; int quota_id; stc_roaming_type_e roaming; - stc_restriction_state_e rst_state; - /** - * in most cases jump is evalutation based - * on intend, but not always - */ - nfacct_rule_jump jump; + long long int send_limit; + long long int rcv_limit; }; typedef struct nfacct_rule nfacct_rule_s; @@ -105,18 +133,9 @@ void generate_counter_name(nfacct_rule_s *counter); bool recreate_counter_by_name(char *cnt_name, nfacct_rule_s *counter); stc_error_e nfacct_send_get_all(struct counter_arg *carg); -stc_error_e nfacct_send_get_counters(struct counter_arg *carg, - const char *name); -stc_error_e nfacct_send_get(nfacct_rule_s *rule); -stc_error_e nfacct_send_del(nfacct_rule_s *counter); - -stc_error_e exec_iptables_cmd(const char *cmd_buf, pid_t *pid); -stc_error_e produce_net_rule(nfacct_rule_s *rule, - const uint64_t send_limit, - const uint64_t rcv_limit, - const nfacct_rule_action action, - const nfacct_rule_jump jump, - const nfacct_rule_direction iotype); +stc_error_e produce_net_rule(nfacct_rule_s *rule); +stc_error_e produce_net_list(GSList *rule_list, + nfacct_rule_iptype iptype, nfacct_rule_action action); netlink_serialization_command * netlink_create_command(struct netlink_serialization_params *params);