X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lib%2Fbundle.h;h=dceb6e5835e48c12bfd09b85a1e3e1d730777b05;hb=28c5588e8e1a8d091c5d2275232c35f2968a97fa;hp=a202ade494c39d9cf49bd3efdd67142337553a61;hpb=daff3353a0dcb6db7c1468e442f95ae22d335e88;p=sliver-openvswitch.git diff --git a/lib/bundle.h b/lib/bundle.h index a202ade49..dceb6e583 100644 --- a/lib/bundle.h +++ b/lib/bundle.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2011 Nicira Networks. +/* Copyright (c) 2011, 2012, 2013 Nicira, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,29 +21,33 @@ #include #include +#include "compiler.h" +#include "ofp-errors.h" #include "openflow/nicira-ext.h" #include "openvswitch/types.h" struct ds; struct flow; +struct flow_wildcards; +struct ofpact_bundle; struct ofpbuf; /* NXAST_BUNDLE helper functions. * * See include/openflow/nicira-ext.h for NXAST_BUNDLE specification. */ -uint16_t bundle_execute(const struct nx_action_bundle *, const struct flow *, - bool (*slave_enabled)(uint16_t ofp_port, void *aux), +ofp_port_t bundle_execute(const struct ofpact_bundle *, const struct flow *, + struct flow_wildcards *wc, + bool (*slave_enabled)(ofp_port_t ofp_port, void *aux), void *aux); -int bundle_check(const struct nx_action_bundle *, int max_ports); -void bundle_parse(struct ofpbuf *, const char *); -void bundle_format(const struct nx_action_bundle *, struct ds *); - -/* Returns the 'i'th slave in 'nab'. */ -static inline uint16_t -bundle_get_slave(const struct nx_action_bundle *nab, size_t i) -{ - return ntohs(((ovs_be16 *)(nab + 1))[i]); -} +enum ofperr bundle_from_openflow(const struct nx_action_bundle *, + struct ofpbuf *ofpact); +enum ofperr bundle_check(const struct ofpact_bundle *, ofp_port_t max_ports, + const struct flow *); +void bundle_to_nxast(const struct ofpact_bundle *, struct ofpbuf *of10); +char *bundle_parse(const char *, struct ofpbuf *ofpacts) WARN_UNUSED_RESULT; +char *bundle_parse_load(const char *, struct ofpbuf *ofpacts) + WARN_UNUSED_RESULT; +void bundle_format(const struct ofpact_bundle *, struct ds *); #endif /* bundle.h */