diff options
| author | Ben Pfaff <blp@nicira.com> | 2011-09-12 16:19:57 -0700 |
|---|---|---|
| committer | Ben Pfaff <blp@nicira.com> | 2011-09-13 11:46:09 -0700 |
| commit | 75a75043564dc9b002fffa6c6ad71e0d4d5c892e (patch) | |
| tree | 2e059054c5b3e146e3777c013f6cac42246ffa4c /lib/ofp-util.def | |
| parent | 308881afb61e292c629b36a357cfc37153884000 (diff) | |
| download | openvswitch-75a75043564dc9b002fffa6c6ad71e0d4d5c892e.tar.gz | |
Implement new "learn" action.
There are a few loose ends here. First, learning actions cause too much
flow revalidation. Upcoming commits will fix that problem. The following
additional issues have not yet been addressed:
* Resource limits: nothing yet limits the maximum number of flows that
can be learned. It is possible to exhaust all system memory.
* Age reporting: there is no way to find out how soon a learned table
entry is due to be evicted.
To try this action out, here's a recipe for a very simple-minded MAC
learning switch. It uses a 10-second MAC expiration time to make it easier
to see what's going on:
ovs-vsctl del-controller br0
ovs-ofctl del-flows br0
ovs-ofctl add-flow br0 "table=0 actions=learn(table=1, hard_timeout=10, \
NXM_OF_VLAN_TCI[0..11], NXM_OF_ETH_DST[]=NXM_OF_ETH_SRC[], \
output:NXM_OF_IN_PORT[]), resubmit(,1)"
ovs-ofctl add-flow br0 "table=1 priority=0 actions=flood"
You can then dump the MAC learning table with:
ovs-ofctl dump-flows br0 table=1
Diffstat (limited to 'lib/ofp-util.def')
| -rw-r--r-- | lib/ofp-util.def | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/lib/ofp-util.def b/lib/ofp-util.def index c5d883d67..7868faa4b 100644 --- a/lib/ofp-util.def +++ b/lib/ofp-util.def @@ -34,4 +34,5 @@ NXAST_ACTION(NXAST_BUNDLE, nx_action_bundle, 1, "bundle") NXAST_ACTION(NXAST_BUNDLE_LOAD, nx_action_bundle, 1, "bundle_load") NXAST_ACTION(NXAST_RESUBMIT_TABLE, nx_action_resubmit, 0, NULL) NXAST_ACTION(NXAST_OUTPUT_REG, nx_action_output_reg, 0, NULL) +NXAST_ACTION(NXAST_LEARN, nx_action_learn, 1, "learn") #undef NXAST_ACTION |
