Lines Matching refs:conf
56 struct ng_patch_config *conf; member
75 const struct ng_patch_config *conf; in ng_patch_config_getlen() local
77 conf = (const struct ng_patch_config *)(buf - in ng_patch_config_getlen()
80 return (conf->count); in ng_patch_config_getlen()
213 struct ng_patch_config *conf, *newconf; in ng_patch_rcvmsg() local
226 if (privp->conf == NULL) in ng_patch_rcvmsg()
230 NG_PATCH_CONF_SIZE(privp->conf->count), M_WAITOK); in ng_patch_rcvmsg()
235 bcopy(privp->conf, resp->data, in ng_patch_rcvmsg()
236 NG_PATCH_CONF_SIZE(privp->conf->count)); in ng_patch_rcvmsg()
238 conf = (struct ng_patch_config *) resp->data; in ng_patch_rcvmsg()
240 for (i = 0; i < conf->count; i++) { in ng_patch_rcvmsg()
241 switch (conf->ops[i].length) in ng_patch_rcvmsg()
244 conf->ops[i].val.v8 = conf->ops[i].val.v1; in ng_patch_rcvmsg()
247 conf->ops[i].val.v8 = conf->ops[i].val.v2; in ng_patch_rcvmsg()
250 conf->ops[i].val.v8 = conf->ops[i].val.v4; in ng_patch_rcvmsg()
260 conf = (struct ng_patch_config *) msg->data; in ng_patch_rcvmsg()
263 msg->header.arglen < NG_PATCH_CONF_SIZE(conf->count)) in ng_patch_rcvmsg()
266 for (i = 0; i < conf->count; i++) { in ng_patch_rcvmsg()
267 switch (conf->ops[i].length) in ng_patch_rcvmsg()
270 conf->ops[i].val.v1 = (uint8_t) conf->ops[i].val.v8; in ng_patch_rcvmsg()
273 conf->ops[i].val.v2 = (uint16_t) conf->ops[i].val.v8; in ng_patch_rcvmsg()
276 conf->ops[i].val.v4 = (uint32_t) conf->ops[i].val.v8; in ng_patch_rcvmsg()
285 conf->csum_flags &= NG_PATCH_CSUM_IPV4|NG_PATCH_CSUM_IPV6; in ng_patch_rcvmsg()
286 conf->relative_offset = !!conf->relative_offset; in ng_patch_rcvmsg()
288 newconf = malloc(NG_PATCH_CONF_SIZE(conf->count), M_NETGRAPH, M_WAITOK | M_ZERO); in ng_patch_rcvmsg()
290 bcopy(conf, newconf, NG_PATCH_CONF_SIZE(conf->count)); in ng_patch_rcvmsg()
292 if (privp->conf) in ng_patch_rcvmsg()
293 free(privp->conf, M_NETGRAPH); in ng_patch_rcvmsg()
295 privp->conf = newconf; in ng_patch_rcvmsg()
360 for (i = 0; i < privp->conf->count; i++) { in do_patch()
361 offset = global_offset + privp->conf->ops[i].offset; in do_patch()
363 if (offset + privp->conf->ops[i].length > m->m_pkthdr.len) in do_patch()
367 if (privp->conf->ops[i].mode != NG_PATCH_MODE_SET) in do_patch()
368 m_copydata(m, offset, privp->conf->ops[i].length, (caddr_t) &val); in do_patch()
370 switch (privp->conf->ops[i].length) in do_patch()
373 switch (privp->conf->ops[i].mode) in do_patch()
376 val.v1 = privp->conf->ops[i].val.v1; in do_patch()
379 val.v1 += privp->conf->ops[i].val.v1; in do_patch()
382 val.v1 -= privp->conf->ops[i].val.v1; in do_patch()
385 val.v1 *= privp->conf->ops[i].val.v1; in do_patch()
388 val.v1 /= privp->conf->ops[i].val.v1; in do_patch()
394 val.v1 &= privp->conf->ops[i].val.v1; in do_patch()
397 val.v1 |= privp->conf->ops[i].val.v1; in do_patch()
400 val.v1 ^= privp->conf->ops[i].val.v1; in do_patch()
403 val.v1 <<= privp->conf->ops[i].val.v1; in do_patch()
406 val.v1 >>= privp->conf->ops[i].val.v1; in do_patch()
414 switch (privp->conf->ops[i].mode) in do_patch()
417 val.v2 = privp->conf->ops[i].val.v2; in do_patch()
420 val.v2 += privp->conf->ops[i].val.v2; in do_patch()
423 val.v2 -= privp->conf->ops[i].val.v2; in do_patch()
426 val.v2 *= privp->conf->ops[i].val.v2; in do_patch()
429 val.v2 /= privp->conf->ops[i].val.v2; in do_patch()
435 val.v2 &= privp->conf->ops[i].val.v2; in do_patch()
438 val.v2 |= privp->conf->ops[i].val.v2; in do_patch()
441 val.v2 ^= privp->conf->ops[i].val.v2; in do_patch()
444 val.v2 <<= privp->conf->ops[i].val.v2; in do_patch()
447 val.v2 >>= privp->conf->ops[i].val.v2; in do_patch()
458 switch (privp->conf->ops[i].mode) in do_patch()
461 val.v4 = privp->conf->ops[i].val.v4; in do_patch()
464 val.v4 += privp->conf->ops[i].val.v4; in do_patch()
467 val.v4 -= privp->conf->ops[i].val.v4; in do_patch()
470 val.v4 *= privp->conf->ops[i].val.v4; in do_patch()
473 val.v4 /= privp->conf->ops[i].val.v4; in do_patch()
479 val.v4 &= privp->conf->ops[i].val.v4; in do_patch()
482 val.v4 |= privp->conf->ops[i].val.v4; in do_patch()
485 val.v4 ^= privp->conf->ops[i].val.v4; in do_patch()
488 val.v4 <<= privp->conf->ops[i].val.v4; in do_patch()
491 val.v4 >>= privp->conf->ops[i].val.v4; in do_patch()
502 switch (privp->conf->ops[i].mode) in do_patch()
505 val.v8 = privp->conf->ops[i].val.v8; in do_patch()
508 val.v8 += privp->conf->ops[i].val.v8; in do_patch()
511 val.v8 -= privp->conf->ops[i].val.v8; in do_patch()
514 val.v8 *= privp->conf->ops[i].val.v8; in do_patch()
517 val.v8 /= privp->conf->ops[i].val.v8; in do_patch()
523 val.v8 &= privp->conf->ops[i].val.v8; in do_patch()
526 val.v8 |= privp->conf->ops[i].val.v8; in do_patch()
529 val.v8 ^= privp->conf->ops[i].val.v8; in do_patch()
532 val.v8 <<= privp->conf->ops[i].val.v8; in do_patch()
535 val.v8 >>= privp->conf->ops[i].val.v8; in do_patch()
544 m_copyback(m, offset, privp->conf->ops[i].length, (caddr_t) &val); in do_patch()
579 if (priv->conf && hook == priv->in && in ng_patch_rcvdata()
587 if (priv->conf->relative_offset) { in ng_patch_rcvdata()
628 m->m_pkthdr.csum_flags |= priv->conf->csum_flags; in ng_patch_rcvdata()
669 if (privdata->conf != NULL) in ng_patch_shutdown()
670 free(privdata->conf, M_NETGRAPH); in ng_patch_shutdown()