示例#1
0
static void
parse_metadata(struct ofpbuf *b, char *arg)
{
    struct ofpact_metadata *om;
    char *mask = strchr(arg, '/');

    om = ofpact_put_WRITE_METADATA(b);

    if (mask) {
        *mask = '\0';
        om->mask = htonll(str_to_u64(mask + 1));
    } else {
        om->mask = htonll(UINT64_MAX);
    }

    om->metadata = htonll(str_to_u64(arg));
}
示例#2
0
void act_metadata(struct ofpbuf* buf, uint64_t metadata, uint64_t mask) {
    struct ofpact_metadata* meta = ofpact_put_WRITE_METADATA(buf);
    meta->metadata = htonll(metadata);
    meta->mask = htonll(mask);
}