decode_NXAST_RAW_DELETE_FIELD(const struct nx_action_delete_field *nadf,
                              enum ofp_version ofp_version OVS_UNUSED,
                              const struct vl_mff_map *vl_mff_map,
                              uint64_t *tlv_bitmap, struct ofpbuf *out)
{
    struct ofpact_delete_field *delete_field;
    enum ofperr err;

    delete_field = ofpact_put_DELETE_FIELD(out);
    delete_field->ofpact.raw = NXAST_RAW_DELETE_FIELD;

    struct ofpbuf b = ofpbuf_const_initializer(nadf, ntohs(nadf->len));
    ofpbuf_pull(&b, OBJECT_OFFSETOF(nadf, pad));

    err = mf_vl_mff_nx_pull_header(&b, vl_mff_map, &delete_field->field,
                                   NULL, tlv_bitmap);
    if (err) {
        return err;
    }

    return 0;
}
decode_NXAST_RAW_DELETE_FIELD(const struct nx_action_delete_field *nadf,
                              enum ofp_version ofp_version OVS_UNUSED,
                              const struct vl_mff_map *vl_mff_map,
                              uint64_t *tlv_bitmap, struct ofpbuf *out)
{
    struct ofpact_delete_field *delete_field;
    enum ofperr err;

    delete_field = ofpact_put_DELETE_FIELD(out);
    delete_field->ofpact.raw = NXAST_RAW_DELETE_FIELD;

    struct ofpbuf b = ofpbuf_const_initializer(nadf, ntohs(nadf->len));
    ofpbuf_pull(&b, OBJECT_OFFSETOF(nadf, pad));

    err = mf_vl_mff_nx_pull_header(&b, vl_mff_map, &delete_field->field,
                                   NULL, tlv_bitmap);
    if (err) {
        return err;
    }

    return 0;
}