Lines Matching defs:nw

115 	struct snl_writer nw;
124 snl_init_writer(&h->ss, &nw);
125 hdr = snl_create_genl_msg_request(&nw, family_id, cmd);
127 hdr = snl_finalize_msg(&nw);
404 struct snl_writer nw;
412 snl_init_writer(&h->ss, &nw);
413 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_STATUS);
416 hdr = snl_finalize_msg(&nw);
1088 snl_add_msg_attr_addr_wrap(struct snl_writer *nw, uint32_t type, const struct pf_addr_wrap *addr)
1092 off = snl_add_msg_attr_nested(nw, type);
1094 snl_add_msg_attr_ip6(nw, PF_AT_ADDR, &addr->v.a.addr.v6);
1095 snl_add_msg_attr_ip6(nw, PF_AT_MASK, &addr->v.a.mask.v6);
1098 snl_add_msg_attr_string(nw, PF_AT_IFNAME, addr->v.ifname);
1100 snl_add_msg_attr_string(nw, PF_AT_TABLENAME, addr->v.tblname);
1101 snl_add_msg_attr_u8(nw, PF_AT_TYPE, addr->type);
1102 snl_add_msg_attr_u8(nw, PF_AT_IFLAGS, addr->iflags);
1104 snl_end_attr_nested(nw, off);
1108 snl_add_msg_attr_pool_addr(struct snl_writer *nw, uint32_t type, const struct pf_pooladdr *pa)
1112 off = snl_add_msg_attr_nested(nw, type);
1114 snl_add_msg_attr_string(nw, PF_PA_IFNAME, pa->ifname);
1115 snl_add_msg_attr_addr_wrap(nw, PF_PA_ADDR, &pa->addr);
1117 snl_end_attr_nested(nw, off);
1121 snl_add_msg_attr_rule_addr(struct snl_writer *nw, uint32_t type, const struct pf_rule_addr *addr)
1125 off = snl_add_msg_attr_nested(nw, type);
1127 snl_add_msg_attr_addr_wrap(nw, PF_RAT_ADDR, &addr->addr);
1128 snl_add_msg_attr_u16(nw, PF_RAT_SRC_PORT, addr->port[0]);
1129 snl_add_msg_attr_u16(nw, PF_RAT_DST_PORT, addr->port[1]);
1130 snl_add_msg_attr_u8(nw, PF_RAT_NEG, addr->neg);
1131 snl_add_msg_attr_u8(nw, PF_RAT_OP, addr->port_op);
1133 snl_end_attr_nested(nw, off);
1137 snl_add_msg_attr_rule_labels(struct snl_writer *nw, uint32_t type, const char labels[PF_RULE_MAX_LABEL_COUNT][PF_RULE_LABEL_SIZE])
1141 off = snl_add_msg_attr_nested(nw, type);
1145 snl_add_msg_attr_string(nw, PF_LT_LABEL, labels[i]);
1149 snl_end_attr_nested(nw, off);
1153 snl_add_msg_attr_mape(struct snl_writer *nw, uint32_t type, const struct pf_mape_portset *me)
1157 off = snl_add_msg_attr_nested(nw, type);
1159 snl_add_msg_attr_u8(nw, PF_MET_OFFSET, me->offset);
1160 snl_add_msg_attr_u8(nw, PF_MET_PSID_LEN, me->psidlen);
1161 snl_add_msg_attr_u16(nw, PF_MET_PSID, me->psid);
1163 snl_end_attr_nested(nw, off);
1167 snl_add_msg_attr_rpool(struct snl_writer *nw, uint32_t type, const struct pfctl_pool *pool)
1171 off = snl_add_msg_attr_nested(nw, type);
1173 snl_add_msg_attr(nw, PF_PT_KEY, sizeof(pool->key), &pool->key);
1174 snl_add_msg_attr_ip6(nw, PF_PT_COUNTER, &pool->counter.v6);
1175 snl_add_msg_attr_u32(nw, PF_PT_TBLIDX, pool->tblidx);
1176 snl_add_msg_attr_u16(nw, PF_PT_PROXY_SRC_PORT, pool->proxy_port[0]);
1177 snl_add_msg_attr_u16(nw, PF_PT_PROXY_DST_PORT, pool->proxy_port[1]);
1178 snl_add_msg_attr_u8(nw, PF_PT_OPTS, pool->opts);
1179 snl_add_msg_attr_mape(nw, PF_PT_MAPE, &pool->mape);
1181 snl_end_attr_nested(nw, off);
1185 snl_add_msg_attr_timeouts(struct snl_writer *nw, uint32_t type, const uint32_t *timeouts)
1189 off = snl_add_msg_attr_nested(nw, type);
1192 snl_add_msg_attr_u32(nw, PF_TT_TIMEOUT, timeouts[i]);
1194 snl_end_attr_nested(nw, off);
1198 snl_add_msg_attr_uid(struct snl_writer *nw, uint32_t type, const struct pf_rule_uid *uid)
1202 off = snl_add_msg_attr_nested(nw, type);
1204 snl_add_msg_attr_u32(nw, PF_RUT_UID_LOW, uid->uid[0]);
1205 snl_add_msg_attr_u32(nw, PF_RUT_UID_HIGH, uid->uid[1]);
1206 snl_add_msg_attr_u8(nw, PF_RUT_OP, uid->op);
1208 snl_end_attr_nested(nw, off);
1212 snl_add_msg_attr_pf_rule(struct snl_writer *nw, uint32_t type, const struct pfctl_rule *r)
1216 off = snl_add_msg_attr_nested(nw, type);
1218 snl_add_msg_attr_rule_addr(nw, PF_RT_SRC, &r->src);
1219 snl_add_msg_attr_rule_addr(nw, PF_RT_DST, &r->dst);
1220 snl_add_msg_attr_rule_labels(nw, PF_RT_LABELS, r->label);
1221 snl_add_msg_attr_u32(nw, PF_RT_RIDENTIFIER, r->ridentifier);
1222 snl_add_msg_attr_string(nw, PF_RT_IFNAME, r->ifname);
1223 snl_add_msg_attr_string(nw, PF_RT_QNAME, r->qname);
1224 snl_add_msg_attr_string(nw, PF_RT_PQNAME, r->pqname);
1225 snl_add_msg_attr_string(nw, PF_RT_TAGNAME, r->tagname);
1226 snl_add_msg_attr_string(nw, PF_RT_MATCH_TAGNAME, r->match_tagname);
1227 snl_add_msg_attr_string(nw, PF_RT_OVERLOAD_TBLNAME, r->overload_tblname);
1228 snl_add_msg_attr_rpool(nw, PF_RT_RPOOL_RDR, &r->rdr);
1229 snl_add_msg_attr_rpool(nw, PF_RT_RPOOL_NAT, &r->nat);
1230 snl_add_msg_attr_rpool(nw, PF_RT_RPOOL_RT, &r->route);
1231 snl_add_msg_attr_u32(nw, PF_RT_OS_FINGERPRINT, r->os_fingerprint);
1232 snl_add_msg_attr_u32(nw, PF_RT_RTABLEID, r->rtableid);
1233 snl_add_msg_attr_timeouts(nw, PF_RT_TIMEOUT, r->timeout);
1234 snl_add_msg_attr_u32(nw, PF_RT_MAX_STATES, r->max_states);
1235 snl_add_msg_attr_u32(nw, PF_RT_MAX_SRC_NODES, r->max_src_nodes);
1236 snl_add_msg_attr_u32(nw, PF_RT_MAX_SRC_STATES, r->max_src_states);
1237 snl_add_msg_attr_u32(nw, PF_RT_MAX_SRC_CONN, r->max_src_conn);
1238 snl_add_msg_attr_u32(nw, PF_RT_MAX_SRC_CONN_RATE_LIMIT, r->max_src_conn_rate.limit);
1239 snl_add_msg_attr_u32(nw, PF_RT_MAX_SRC_CONN_RATE_SECS, r->max_src_conn_rate.seconds);
1241 snl_add_msg_attr_u16(nw, PF_RT_DNPIPE, r->dnpipe);
1242 snl_add_msg_attr_u16(nw, PF_RT_DNRPIPE, r->dnrpipe);
1243 snl_add_msg_attr_u32(nw, PF_RT_DNFLAGS, r->free_flags);
1245 snl_add_msg_attr_u32(nw, PF_RT_NR, r->nr);
1246 snl_add_msg_attr_u32(nw, PF_RT_PROB, r->prob);
1247 snl_add_msg_attr_u32(nw, PF_RT_CUID, r->cuid);
1248 snl_add_msg_attr_u32(nw, PF_RT_CPID, r->cpid);
1250 snl_add_msg_attr_u16(nw, PF_RT_RETURN_ICMP, r->return_icmp);
1251 snl_add_msg_attr_u16(nw, PF_RT_RETURN_ICMP6, r->return_icmp6);
1252 snl_add_msg_attr_u16(nw, PF_RT_MAX_MSS, r->max_mss);
1253 snl_add_msg_attr_u16(nw, PF_RT_SCRUB_FLAGS, r->scrub_flags);
1255 snl_add_msg_attr_uid(nw, PF_RT_UID, &r->uid);
1256 snl_add_msg_attr_uid(nw, PF_RT_GID, (const struct pf_rule_uid *)&r->gid);
1257 snl_add_msg_attr_string(nw, PF_RT_RCV_IFNAME, r->rcv_ifname);
1259 snl_add_msg_attr_u32(nw, PF_RT_RULE_FLAG, r->rule_flag);
1260 snl_add_msg_attr_u8(nw, PF_RT_ACTION, r->action);
1261 snl_add_msg_attr_u8(nw, PF_RT_DIRECTION, r->direction);
1262 snl_add_msg_attr_u8(nw, PF_RT_LOG, r->log);
1263 snl_add_msg_attr_u8(nw, PF_RT_LOGIF, r->logif);
1264 snl_add_msg_attr_u8(nw, PF_RT_QUICK, r->quick);
1265 snl_add_msg_attr_u8(nw, PF_RT_IF_NOT, r->ifnot);
1266 snl_add_msg_attr_u8(nw, PF_RT_MATCH_TAG_NOT, r->match_tag_not);
1267 snl_add_msg_attr_u8(nw, PF_RT_NATPASS, r->natpass);
1268 snl_add_msg_attr_u8(nw, PF_RT_KEEP_STATE, r->keep_state);
1269 snl_add_msg_attr_u8(nw, PF_RT_AF, r->af);
1270 snl_add_msg_attr_u8(nw, PF_RT_PROTO, r->proto);
1271 snl_add_msg_attr_u8(nw, PF_RT_TYPE, r->type);
1272 snl_add_msg_attr_u8(nw, PF_RT_CODE, r->code);
1273 snl_add_msg_attr_u8(nw, PF_RT_FLAGS, r->flags);
1274 snl_add_msg_attr_u8(nw, PF_RT_FLAGSET, r->flagset);
1275 snl_add_msg_attr_u8(nw, PF_RT_MIN_TTL, r->min_ttl);
1276 snl_add_msg_attr_u8(nw, PF_RT_ALLOW_OPTS, r->allow_opts);
1277 snl_add_msg_attr_u8(nw, PF_RT_RT, r->rt);
1278 snl_add_msg_attr_u8(nw, PF_RT_RETURN_TTL, r->return_ttl);
1279 snl_add_msg_attr_u8(nw, PF_RT_TOS, r->tos);
1280 snl_add_msg_attr_u8(nw, PF_RT_SET_TOS, r->set_tos);
1282 snl_add_msg_attr_u8(nw, PF_RT_ANCHOR_RELATIVE, r->anchor_relative);
1283 snl_add_msg_attr_u8(nw, PF_RT_ANCHOR_WILDCARD, r->anchor_wildcard);
1284 snl_add_msg_attr_u8(nw, PF_RT_FLUSH, r->flush);
1285 snl_add_msg_attr_u8(nw, PF_RT_PRIO, r->prio);
1286 snl_add_msg_attr_u8(nw, PF_RT_SET_PRIO, r->set_prio[0]);
1287 snl_add_msg_attr_u8(nw, PF_RT_SET_PRIO_REPLY, r->set_prio[1]);
1288 snl_add_msg_attr_u8(nw, PF_RT_NAF, r->naf);
1290 snl_add_msg_attr_ip6(nw, PF_RT_DIVERT_ADDRESS, &r->divert.addr.v6);
1291 snl_add_msg_attr_u16(nw, PF_RT_DIVERT_PORT, r->divert.port);
1293 snl_end_attr_nested(nw, off);
1319 struct snl_writer nw;
1329 snl_init_writer(&h->ss, &nw);
1330 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_ADDRULE);
1332 snl_add_msg_attr_u32(&nw, PF_ART_TICKET, ticket);
1333 snl_add_msg_attr_u32(&nw, PF_ART_POOL_TICKET, pool_ticket);
1334 snl_add_msg_attr_string(&nw, PF_ART_ANCHOR, anchor);
1335 snl_add_msg_attr_string(&nw, PF_ART_ANCHOR_CALL, anchor_call);
1337 snl_add_msg_attr_pf_rule(&nw, PF_ART_RULE, r);
1339 if ((hdr = snl_finalize_msg(&nw)) == NULL)
1369 struct snl_writer nw;
1377 snl_init_writer(&h->ss, &nw);
1378 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GETRULES);
1381 snl_add_msg_attr_string(&nw, PF_GR_ANCHOR, path);
1382 snl_add_msg_attr_u8(&nw, PF_GR_ACTION, ruleset);
1384 hdr = snl_finalize_msg(&nw);
1678 struct snl_writer nw;
1686 snl_init_writer(&h->ss, &nw);
1687 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GETRULE);
1690 snl_add_msg_attr_string(&nw, PF_GR_ANCHOR, anchor);
1691 snl_add_msg_attr_u8(&nw, PF_GR_ACTION, ruleset);
1692 snl_add_msg_attr_u32(&nw, PF_GR_NR, nr);
1693 snl_add_msg_attr_u32(&nw, PF_GR_TICKET, ticket);
1694 snl_add_msg_attr_u8(&nw, PF_GR_CLEAR, clear);
1696 hdr = snl_finalize_msg(&nw);
1791 struct snl_writer nw;
1796 snl_init_writer(ss, &nw);
1797 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GETCREATORS);
1799 hdr = snl_finalize_msg(&nw);
1929 struct snl_writer nw;
1934 snl_init_writer(ss, &nw);
1935 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GETSTATES);
1937 snl_add_msg_attr_string(&nw, PF_ST_IFNAME, filter->ifname);
1938 snl_add_msg_attr_u16(&nw, PF_ST_PROTO, filter->proto);
1939 snl_add_msg_attr_u8(&nw, PF_ST_AF, filter->af);
1940 snl_add_msg_attr_ip6(&nw, PF_ST_FILTER_ADDR, &filter->addr.v6);
1941 snl_add_msg_attr_ip6(&nw, PF_ST_FILTER_MASK, &filter->mask.v6);
1943 hdr = snl_finalize_msg(&nw);
2046 struct snl_writer nw;
2057 snl_init_writer(&h->ss, &nw);
2058 hdr = snl_create_genl_msg_request(&nw, family_id, cmd);
2061 snl_add_msg_attr_u64(&nw, PF_CS_CMP_ID, kill->cmp.id);
2062 snl_add_msg_attr_u32(&nw, PF_CS_CMP_CREATORID, htonl(kill->cmp.creatorid));
2063 snl_add_msg_attr_u8(&nw, PF_CS_CMP_DIR, kill->cmp.direction);
2064 snl_add_msg_attr_u8(&nw, PF_CS_AF, kill->af);
2065 snl_add_msg_attr_u8(&nw, PF_CS_PROTO, kill->proto);
2066 snl_add_msg_attr_rule_addr(&nw, PF_CS_SRC, &kill->src);
2067 snl_add_msg_attr_rule_addr(&nw, PF_CS_DST, &kill->dst);
2068 snl_add_msg_attr_rule_addr(&nw, PF_CS_RT_ADDR, &kill->rt_addr);
2069 snl_add_msg_attr_string(&nw, PF_CS_IFNAME, kill->ifname);
2070 snl_add_msg_attr_string(&nw, PF_CS_LABEL, kill->label);
2071 snl_add_msg_attr_bool(&nw, PF_CS_KILL_MATCH, kill->kill_match);
2072 snl_add_msg_attr_bool(&nw, PF_CS_NAT, kill->nat);
2074 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2437 struct snl_writer nw;
2447 snl_init_writer(&h->ss, &nw);
2448 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_SET_STATUSIF);
2450 snl_add_msg_attr_string(&nw, PF_SS_IFNAME, ifname);
2452 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2482 struct snl_writer nw;
2492 snl_init_writer(&h->ss, &nw);
2493 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_NATLOOK);
2496 snl_add_msg_attr_u8(&nw, PF_NL_AF, k->af);
2497 snl_add_msg_attr_u8(&nw, PF_NL_DIRECTION, k->direction);
2498 snl_add_msg_attr_u8(&nw, PF_NL_PROTO, k->proto);
2499 snl_add_msg_attr_ip6(&nw, PF_NL_SRC_ADDR, &k->saddr.v6);
2500 snl_add_msg_attr_ip6(&nw, PF_NL_DST_ADDR, &k->daddr.v6);
2501 snl_add_msg_attr_u16(&nw, PF_NL_SRC_PORT, k->sport);
2502 snl_add_msg_attr_u16(&nw, PF_NL_DST_PORT, k->dport);
2504 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2523 struct snl_writer nw;
2533 snl_init_writer(&h->ss, &nw);
2534 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_SET_DEBUG);
2536 snl_add_msg_attr_u32(&nw, PF_SD_LEVEL, level);
2538 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2555 struct snl_writer nw;
2565 snl_init_writer(&h->ss, &nw);
2566 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_SET_TIMEOUT);
2568 snl_add_msg_attr_u32(&nw, PF_TO_TIMEOUT, timeout);
2569 snl_add_msg_attr_u32(&nw, PF_TO_SECONDS, seconds);
2571 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2598 struct snl_writer nw;
2609 snl_init_writer(&h->ss, &nw);
2610 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_TIMEOUT);
2613 snl_add_msg_attr_u32(&nw, PF_TO_TIMEOUT, timeout);
2615 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2637 struct snl_writer nw;
2647 snl_init_writer(&h->ss, &nw);
2648 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_SET_LIMIT);
2650 snl_add_msg_attr_u32(&nw, PF_LI_INDEX, index);
2651 snl_add_msg_attr_u32(&nw, PF_LI_LIMIT, limit);
2653 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2680 struct snl_writer nw;
2691 snl_init_writer(&h->ss, &nw);
2692 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_LIMIT);
2695 snl_add_msg_attr_u32(&nw, PF_LI_INDEX, index);
2697 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2729 struct snl_writer nw;
2740 snl_init_writer(&h->ss, &nw);
2741 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_BEGIN_ADDRS);
2744 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2766 struct snl_writer nw;
2776 snl_init_writer(&h->ss, &nw);
2777 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_ADD_ADDR);
2779 snl_add_msg_attr_u32(&nw, PF_AA_ACTION, pa->action);
2780 snl_add_msg_attr_u32(&nw, PF_AA_TICKET, pa->ticket);
2781 snl_add_msg_attr_u32(&nw, PF_AA_NR, pa->nr);
2782 snl_add_msg_attr_u32(&nw, PF_AA_R_NUM, pa->r_num);
2783 snl_add_msg_attr_u8(&nw, PF_AA_R_ACTION, pa->r_action);
2784 snl_add_msg_attr_u8(&nw, PF_AA_R_LAST, pa->r_last);
2785 snl_add_msg_attr_u8(&nw, PF_AA_AF, pa->af);
2786 snl_add_msg_attr_string(&nw, PF_AA_ANCHOR, pa->anchor);
2787 snl_add_msg_attr_pool_addr(&nw, PF_AA_ADDR, &pa->addr);
2788 snl_add_msg_attr_u32(&nw, PF_AA_WHICH, which);
2790 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2813 struct snl_writer nw;
2823 snl_init_writer(&h->ss, &nw);
2824 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_ADDRS);
2826 snl_add_msg_attr_u32(&nw, PF_AA_TICKET, ticket);
2827 snl_add_msg_attr_u32(&nw, PF_AA_R_NUM, r_num);
2828 snl_add_msg_attr_u8(&nw, PF_AA_R_ACTION, r_action);
2829 snl_add_msg_attr_string(&nw, PF_AA_ANCHOR, anchor);
2830 snl_add_msg_attr_u32(&nw, PF_AA_WHICH, which);
2832 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2876 struct snl_writer nw;
2886 snl_init_writer(&h->ss, &nw);
2887 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_ADDR);
2889 snl_add_msg_attr_u32(&nw, PF_AA_TICKET, ticket);
2890 snl_add_msg_attr_u32(&nw, PF_AA_R_NUM, r_num);
2891 snl_add_msg_attr_u8(&nw, PF_AA_R_ACTION, r_action);
2892 snl_add_msg_attr_string(&nw, PF_AA_ANCHOR, anchor);
2893 snl_add_msg_attr_u32(&nw, PF_AA_NR, nr);
2894 snl_add_msg_attr_u32(&nw, PF_AA_WHICH, which);
2896 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2923 struct snl_writer nw;
2934 snl_init_writer(&h->ss, &nw);
2935 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_RULESETS);
2937 snl_add_msg_attr_string(&nw, PF_RS_PATH, path);
2939 if ((hdr = snl_finalize_msg(&nw)) == NULL)
2960 struct snl_writer nw;
2970 snl_init_writer(&h->ss, &nw);
2971 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_RULESET);
2973 snl_add_msg_attr_string(&nw, PF_RS_PATH, path);
2974 snl_add_msg_attr_u32(&nw, PF_RS_NR, nr);
2976 if ((hdr = snl_finalize_msg(&nw)) == NULL)
3026 struct snl_writer nw;
3038 snl_init_writer(&h->ss, &nw);
3039 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_GET_SRCNODES);
3041 if ((hdr = snl_finalize_msg(&nw)) == NULL)
3070 struct snl_writer nw;
3080 snl_init_writer(&h->ss, &nw);
3081 hdr = snl_create_genl_msg_request(&nw, family_id, PFNL_CMD_CLEAR_TABLES);
3083 snl_add_msg_attr_string(&nw, PF_T_ANCHOR, filter->pfrt_anchor);
3084 snl_add_msg_attr_string(&nw, PF_T_NAME, filter->pfrt_name);
3085 snl_add_msg_attr_u32(&nw, PF_T_TABLE_FLAGS, filter->pfrt_flags);
3086 snl_add_msg_attr_u32(&nw, PF_T_FLAGS, flags);
3088 if ((hdr = snl_finalize_msg(&nw)) == NULL)