X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fofp-actions.c;h=a58f8dba184827170aff44c83cb24fadeb34c45f;hb=f5c45121cf59ef3099ba669c3590d844bedf53e9;hp=7da424377d892b0a59aa38aed9a52a0be6da8975;hpb=d55b18c8fa8efae81454f6575362c9d48ecefee6;p=sliver-openvswitch.git diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c index 7da424377..a58f8dba1 100644 --- a/lib/ofp-actions.c +++ b/lib/ofp-actions.c @@ -1892,3 +1892,15 @@ ofpact_pad(struct ofpbuf *ofpacts) ofpbuf_put_zeros(ofpacts, OFPACT_ALIGNTO - rem); } } + +void +ofpact_set_field_init(struct ofpact_reg_load *load, const struct mf_field *mf, + const void *src) +{ + load->ofpact.compat = OFPUTIL_OFPAT12_SET_FIELD; + load->dst.field = mf; + load->dst.ofs = 0; + load->dst.n_bits = mf->n_bits; + bitwise_copy(src, mf->n_bytes, load->dst.ofs, + &load->subvalue, sizeof load->subvalue, 0, mf->n_bits); +}