Lines Matching refs:cmd

88 print_ip6(ipfw_insn_ip6 *cmd, char const *s)
91 int len = F_LEN((ipfw_insn *) cmd) - 1;
92 struct in6_addr *a = &(cmd->addr6);
95 printf("%s%s ", cmd->o.len & F_NOT ? " not": "", s);
97 if (cmd->o.opcode == O_IP6_SRC_ME || cmd->o.opcode == O_IP6_DST_ME) {
101 if (cmd->o.opcode == O_IP6) {
114 (cmd->o.opcode == O_IP6_SRC || cmd->o.opcode == O_IP6_DST) ?
139 fill_icmp6types(ipfw_insn_icmp6 *cmd, char *av, int cblen)
145 bzero(cmd, sizeof(*cmd));
160 cmd->d[type / 32] |= ( 1 << (type % 32));
162 cmd->o.opcode = O_ICMP6TYPE;
163 cmd->o.len |= F_INSN_SIZE(ipfw_insn_icmp6);
168 print_icmp6types(ipfw_insn_u32 *cmd)
176 if ( (cmd->d[i] & (1 << (j))) == 0)
184 print_flow6id( ipfw_insn_u32 *cmd)
186 uint16_t i, limit = cmd->o.arg1;
193 printf("%d%c", cmd->d[i], sep);
212 fill_ext6hdr( ipfw_insn *cmd, char *av)
217 cmd->arg1 = 0;
224 cmd->arg1 |= EXT_FRAGMENT;
228 cmd->arg1 |= EXT_HOPOPTS;
232 cmd->arg1 |= EXT_ROUTING;
236 cmd->arg1 |= EXT_DSTOPTS;
240 cmd->arg1 |= EXT_AH;
244 cmd->arg1 |= EXT_ESP;
248 cmd->arg1 |= EXT_RTHDR0;
252 cmd->arg1 |= EXT_RTHDR2;
260 if (cmd->arg1 == 0 )
262 cmd->opcode = O_EXT_HDR;
263 cmd->len |= F_INSN_SIZE( ipfw_insn );
268 print_ext6hdr( ipfw_insn *cmd )
273 if (cmd->arg1 & EXT_FRAGMENT ) {
277 if (cmd->arg1 & EXT_HOPOPTS ) {
281 if (cmd->arg1 & EXT_ROUTING ) {
285 if (cmd->arg1 & EXT_RTHDR0 ) {
289 if (cmd->arg1 & EXT_RTHDR2 ) {
293 if (cmd->arg1 & EXT_DSTOPTS ) {
297 if (cmd->arg1 & EXT_AH ) {
301 if (cmd->arg1 & EXT_ESP ) {
337 fill_ip6(ipfw_insn_ip6 *cmd, char *av, int cblen)
340 struct in6_addr *d = &(cmd->addr6);
344 * Note d[1] points to struct in6_add r mask6 of cmd
347 cmd->o.len &= ~F_LEN_MASK; /* zero len */
354 cmd->o.len |= F_INSN_SIZE(ipfw_insn);
359 cmd->o.len |= F_INSN_SIZE(ipfw_insn);
365 uint32_t *dm = ((ipfw_insn_u32 *)cmd)->d;
369 cmd->o.opcode = O_IP_DST_LOOKUP;
370 cmd->o.arg1 = strtoul(av + 6, NULL, 0);
372 cmd->o.len |= F_INSN_SIZE(ipfw_insn_u32);
375 cmd->o.len |= F_INSN_SIZE(ipfw_insn);
430 if (cmd->o.len & F_NOT && av == NULL && len == 0)
454 cmd->o.len |= len+1;
466 fill_flow6( ipfw_insn_u32 *cmd, char *av, int cblen)
471 cmd->d[0] = 0; /* Initializing the base number*/
482 cmd->d[nflow] |= type;
486 cmd->o.opcode = O_FLOW6ID;
487 cmd->o.len |= F_INSN_SIZE(ipfw_insn_u32) + nflow;
488 cmd->o.arg1 = nflow;
496 add_srcip6(ipfw_insn *cmd, char *av, int cblen)
499 fill_ip6((ipfw_insn_ip6 *)cmd, av, cblen);
500 if (cmd->opcode == O_IP_DST_SET) /* set */
501 cmd->opcode = O_IP_SRC_SET;
502 else if (cmd->opcode == O_IP_DST_LOOKUP) /* table */
503 cmd->opcode = O_IP_SRC_LOOKUP;
504 else if (F_LEN(cmd) == 0) { /* any */
505 } else if (F_LEN(cmd) == F_INSN_SIZE(ipfw_insn)) { /* "me" */
506 cmd->opcode = O_IP6_SRC_ME;
507 } else if (F_LEN(cmd) ==
510 cmd->opcode = O_IP6_SRC;
512 cmd->opcode = O_IP6_SRC_MASK;
514 return cmd;
518 add_dstip6(ipfw_insn *cmd, char *av, int cblen)
521 fill_ip6((ipfw_insn_ip6 *)cmd, av, cblen);
522 if (cmd->opcode == O_IP_DST_SET) /* set */
524 else if (cmd->opcode == O_IP_DST_LOOKUP) /* table */
526 else if (F_LEN(cmd) == 0) { /* any */
527 } else if (F_LEN(cmd) == F_INSN_SIZE(ipfw_insn)) { /* "me" */
528 cmd->opcode = O_IP6_DST_ME;
529 } else if (F_LEN(cmd) ==
532 cmd->opcode = O_IP6_DST;
534 cmd->opcode = O_IP6_DST_MASK;
536 return cmd;