2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-31 06:15:47 +00:00

vswitch: Implement bundle action.

This patch creates a new action called "bundle".  Bundles are a way
to implement a simple form of multipath in OpenFlow by grouping
several ports in a single output-like action.
This commit is contained in:
Ethan Jackson
2011-06-10 17:45:45 -07:00
parent 774101397b
commit daff3353a0
16 changed files with 834 additions and 2 deletions

View File

@@ -21,6 +21,7 @@
#include <netinet/icmp6.h>
#include <stdlib.h>
#include "autopath.h"
#include "bundle.h"
#include "byte-order.h"
#include "classifier.h"
#include "dynamic-string.h"
@@ -2035,6 +2036,11 @@ validate_actions(const union ofp_action *actions, size_t n_actions,
error = autopath_check((const struct nx_action_autopath *) a);
break;
case OFPUTIL_NXAST_BUNDLE:
error = bundle_check((const struct nx_action_bundle *) a,
max_ports);
break;
case OFPUTIL_OFPAT_STRIP_VLAN:
case OFPUTIL_OFPAT_SET_NW_SRC:
case OFPUTIL_OFPAT_SET_NW_DST:
@@ -2107,6 +2113,7 @@ static const struct ofputil_nxast_action nxast_actions[] = {
{ OFPUTIL_NXAST_SET_TUNNEL64, 24, 24 },
{ OFPUTIL_NXAST_MULTIPATH, 32, 32 },
{ OFPUTIL_NXAST_AUTOPATH, 24, 24 },
{ OFPUTIL_NXAST_BUNDLE, 32, UINT_MAX },
};
static int