Lines Matching +defs:target +defs:rule
197 nlattr_add_u32(nw, PF_ST_RULE, s->rule ? s->rule->nr : -1);
502 const void *arg, void *target)
504 struct nl_parsed_labels *l = (struct nl_parsed_labels *)target;
526 nlattr_get_nested_pf_rule_labels(struct nlattr *nla, struct nl_pstate *npt, const void *arg, void *target)
531 /* Assumes target points to the beginning of the structure */
536 memcpy(target, parsed_labels.labels, sizeof(parsed_labels.labels));
620 const void *arg, void *target)
622 struct nl_parsed_timeouts *t = (struct nl_parsed_timeouts *)target;
643 nlattr_get_nested_timeouts(struct nlattr *nla, struct nl_pstate *npt, const void *arg, void *target)
648 /* Assumes target points to the beginning of the structure */
653 memcpy(target, parsed_timeouts.timeouts, sizeof(parsed_timeouts.timeouts));
744 struct pf_krule *rule;
756 { .type = PF_ART_RULE, .off = _OUT(rule), .arg = &rule_parser, .cb = nlattr_get_nested_ptr }
767 attrs.rule = pf_krule_alloc();
771 pf_free_rule(attrs.rule);
775 error = pf_ioctl_addrule(attrs.rule, attrs.ticket, attrs.pool_ticket,
785 { .type = PF_GR_ACTION, .off = _OUT(rule.action), .cb = nlattr_get_uint8 },
855 struct pf_krule *rule;
892 rule = TAILQ_FIRST(ruleset->rules[rs_num].active.ptr);
893 while ((rule != NULL) && (rule->nr != attrs.nr))
894 rule = TAILQ_NEXT(rule, entries);
895 if (rule == NULL) {
901 nlattr_add_rule_addr(nw, PF_RT_SRC, &rule->src);
902 nlattr_add_rule_addr(nw, PF_RT_DST, &rule->dst);
903 nlattr_add_u32(nw, PF_RT_RIDENTIFIER, rule->ridentifier);
904 nlattr_add_labels(nw, PF_RT_LABELS, rule);
905 nlattr_add_string(nw, PF_RT_IFNAME, rule->ifname);
906 nlattr_add_string(nw, PF_RT_QNAME, rule->qname);
907 nlattr_add_string(nw, PF_RT_PQNAME, rule->pqname);
908 nlattr_add_string(nw, PF_RT_TAGNAME, rule->tagname);
909 nlattr_add_string(nw, PF_RT_MATCH_TAGNAME, rule->match_tagname);
910 nlattr_add_string(nw, PF_RT_OVERLOAD_TBLNAME, rule->overload_tblname);
911 nlattr_add_pool(nw, PF_RT_RPOOL_RDR, &rule->rdr);
912 nlattr_add_pool(nw, PF_RT_RPOOL_NAT, &rule->nat);
913 nlattr_add_pool(nw, PF_RT_RPOOL_RT, &rule->route);
914 nlattr_add_u32(nw, PF_RT_OS_FINGERPRINT, rule->os_fingerprint);
915 nlattr_add_u32(nw, PF_RT_RTABLEID, rule->rtableid);
916 nlattr_add_timeout(nw, PF_RT_TIMEOUT, rule->timeout);
917 nlattr_add_u32(nw, PF_RT_MAX_STATES, rule->max_states);
918 nlattr_add_u32(nw, PF_RT_MAX_SRC_NODES, rule->max_src_nodes);
919 nlattr_add_u32(nw, PF_RT_MAX_SRC_STATES, rule->max_src_states);
920 nlattr_add_u32(nw, PF_RT_MAX_SRC_CONN, rule->max_src_conn);
921 nlattr_add_u32(nw, PF_RT_MAX_SRC_CONN_RATE_LIMIT, rule->max_src_conn_rate.limit);
922 nlattr_add_u32(nw, PF_RT_MAX_SRC_CONN_RATE_SECS, rule->max_src_conn_rate.seconds);
924 nlattr_add_u16(nw, PF_RT_DNPIPE, rule->dnpipe);
925 nlattr_add_u16(nw, PF_RT_DNRPIPE, rule->dnrpipe);
926 nlattr_add_u32(nw, PF_RT_DNFLAGS, rule->free_flags);
928 nlattr_add_u32(nw, PF_RT_NR, rule->nr);
929 nlattr_add_u32(nw, PF_RT_PROB, rule->prob);
930 nlattr_add_u32(nw, PF_RT_CUID, rule->cuid);
931 nlattr_add_u32(nw, PF_RT_CPID, rule->cpid);
933 nlattr_add_u16(nw, PF_RT_RETURN_ICMP, rule->return_icmp);
934 nlattr_add_u16(nw, PF_RT_RETURN_ICMP6, rule->return_icmp6);
935 nlattr_add_u16(nw, PF_RT_RETURN_ICMP6, rule->return_icmp6);
936 nlattr_add_u16(nw, PF_RT_MAX_MSS, rule->max_mss);
937 nlattr_add_u16(nw, PF_RT_SCRUB_FLAGS, rule->scrub_flags);
939 nlattr_add_rule_uid(nw, PF_RT_UID, &rule->uid);
940 nlattr_add_rule_uid(nw, PF_RT_GID, (const struct pf_rule_uid *)&rule->gid);
942 nlattr_add_string(nw, PF_RT_RCV_IFNAME, rule->rcv_ifname);
944 nlattr_add_u32(nw, PF_RT_RULE_FLAG, rule->rule_flag);
945 nlattr_add_u8(nw, PF_RT_ACTION, rule->action);
946 nlattr_add_u8(nw, PF_RT_DIRECTION, rule->direction);
947 nlattr_add_u8(nw, PF_RT_LOG, rule->log);
948 nlattr_add_u8(nw, PF_RT_LOGIF, rule->logif);
949 nlattr_add_u8(nw, PF_RT_QUICK, rule->quick);
950 nlattr_add_u8(nw, PF_RT_IF_NOT, rule->ifnot);
951 nlattr_add_u8(nw, PF_RT_MATCH_TAG_NOT, rule->match_tag_not);
952 nlattr_add_u8(nw, PF_RT_NATPASS, rule->natpass);
953 nlattr_add_u8(nw, PF_RT_KEEP_STATE, rule->keep_state);
955 nlattr_add_u8(nw, PF_RT_AF, rule->af);
956 nlattr_add_u8(nw, PF_RT_NAF, rule->naf);
957 nlattr_add_u8(nw, PF_RT_PROTO, rule->proto);
958 nlattr_add_u8(nw, PF_RT_TYPE, rule->type);
959 nlattr_add_u8(nw, PF_RT_CODE, rule->code);
960 nlattr_add_u8(nw, PF_RT_FLAGS, rule->flags);
961 nlattr_add_u8(nw, PF_RT_FLAGSET, rule->flagset);
962 nlattr_add_u8(nw, PF_RT_MIN_TTL, rule->min_ttl);
963 nlattr_add_u8(nw, PF_RT_ALLOW_OPTS, rule->allow_opts);
964 nlattr_add_u8(nw, PF_RT_RT, rule->rt);
965 nlattr_add_u8(nw, PF_RT_RETURN_TTL, rule->return_ttl);
966 nlattr_add_u8(nw, PF_RT_TOS, rule->tos);
967 nlattr_add_u8(nw, PF_RT_SET_TOS, rule->set_tos);
968 nlattr_add_u8(nw, PF_RT_ANCHOR_RELATIVE, rule->anchor_relative);
969 nlattr_add_u8(nw, PF_RT_ANCHOR_WILDCARD, rule->anchor_wildcard);
970 nlattr_add_u8(nw, PF_RT_FLUSH, rule->flush);
971 nlattr_add_u8(nw, PF_RT_PRIO, rule->prio);
972 nlattr_add_u8(nw, PF_RT_SET_PRIO, rule->set_prio[0]);
973 nlattr_add_u8(nw, PF_RT_SET_PRIO_REPLY, rule->set_prio[1]);
975 nlattr_add_in6_addr(nw, PF_RT_DIVERT_ADDRESS, &rule->divert.addr.v6);
976 nlattr_add_u16(nw, PF_RT_DIVERT_PORT, rule->divert.port);
978 nlattr_add_u64(nw, PF_RT_PACKETS_IN, pf_counter_u64_fetch(&rule->packets[0]));
979 nlattr_add_u64(nw, PF_RT_PACKETS_OUT, pf_counter_u64_fetch(&rule->packets[1]));
980 nlattr_add_u64(nw, PF_RT_BYTES_IN, pf_counter_u64_fetch(&rule->bytes[0]));
981 nlattr_add_u64(nw, PF_RT_BYTES_OUT, pf_counter_u64_fetch(&rule->bytes[1]));
982 nlattr_add_u64(nw, PF_RT_EVALUATIONS, pf_counter_u64_fetch(&rule->evaluations));
983 nlattr_add_u64(nw, PF_RT_TIMESTAMP, pf_get_timestamp(rule));
984 nlattr_add_u64(nw, PF_RT_STATES_CUR, counter_u64_fetch(rule->states_cur));
985 nlattr_add_u64(nw, PF_RT_STATES_TOTAL, counter_u64_fetch(rule->states_tot));
986 nlattr_add_u64(nw, PF_RT_SRC_NODES, counter_u64_fetch(rule->src_nodes));
988 error = pf_kanchor_copyout(ruleset, rule, anchor_call, sizeof(anchor_call));
994 pf_krule_clear_counters(rule);
1766 nlattr_add_u32(nw, PF_SN_RULE_NR, n->rule->nr);