Open marcsugiyama opened 11 years ago
Can tables be created as needed?
Examples of overloaded system (snippet of i() output from erl console):
<0.192.0> linc_us4_port:init/1 6765 48220871 1
gen_server:loop/6 9
<0.193.0> epcap:init/1 6765 5810189 0
gen_server:loop/6 9
<0.195.0> linc_us4_port:init/1 11676964 29871873 3667
linc_us4_port:check_port_config/2 16
<0.217.0> epcap:init/1 6765 53658538 0
and
<0.217.0> linc_us4_port:init/1 93415715 45020075 5383
linc_us4_routing:spawn_route/1 11
<0.227.0> epcap:init/1 6765 78780581 644
gen_server:handle_common_reply/6 2
Since 1.3.0 there is no default table-miss entry in the flow tables, instead the controller is supposed to add table-miss entries. If there is no table-miss entry the packet is supposed to be dropped.
From 1.3.2 "If the table-miss flow entry does not exist, by default packets unmatched by flow entries are dropped (discarded). A switch configuration, for example using the OpenFlow Configuration Protocol, may override this default and specify another behavior."
On Mon, Nov 4, 2013 at 6:38 PM, Marc Sugiyama notifications@github.comwrote:
Examples of overloaded system (snippet of i() output from erl console):
gen_server:loop/6 9
linc_us4_port:init/1 6765 48220871 1 gen_server:loop/6 9
epcap:init/1 6765 5810189 0 gen_server:loop/6 9
linc_us4_port:init/1 11676964 29871873 3667 linc_us4_port:check_port_config/2 16
epcap:init/1 6765 53658538 0
and
linc_us4_port:init/1 93415715 45020075 5383 linc_us4_routing:spawn_route/1 11
epcap:init/1 6765 78780581 644 gen_server:handle_common_reply/6 2
— Reply to this email directly or view it on GitHubhttps://github.com/FlowForwarding/LINC-Switch/issues/214#issuecomment-27737564 .
It seems like we are behaving according to the spec - the default configuration for flow tables is drop
(see linc_us4_flow:get_table_config
), and linc_us4_routing:route
only continues to the next flow table if it gets continue
.
If there are no flows configured, each incoming packet checks against every flow table (255 tables) looking for an action. This is a lot of processing for each incoming packet. Some kind of optimization around empty flow tables would be helpful to performance.