Hi all,

How about following the Robustness Principle, as defined in RFC 1122:
1.2.2 Robustness Principle At every layer of the protocols, there is a general 
rule whose application can lead to enormous benefits in robustness and 
interoperability [IP:1]: "Be liberal in what you accept, and conservative in 
what you send" Software should be written to deal with every conceivable error, 
no matter how unlikely; sooner or later a packet will come in with that 
particular combination of errors and attributes, and unless the software is 
prepared, chaos can ensue. In general, it is best to assume that the network is 
filled with malevolent entities that will send in packets designed to have the 
worst possible effect.

...

OVS follows that principle, by normalizing wildcards in input and sending only 
normalized wildcards.
NOX doesn't, so NOX should be fixed, and the OpenFlow standard should be more 
precise to enforce the Robustness Principle, IMHO.

NOX (Python API) has an even worse security-related problem when using 
wildcards: I have observed that when a field is wildcarded, that field's value 
is just garbage that comes from uninitialized memory. So NOX may send sensitive 
information from RAM on the wire. That's not acceptable. NOX should definitely 
normalize its output: zero out undefined wildcard bits, zero out wildcarded 
fields, etc.

Sincerely,
-- 
Romain Lenglet

On Tuesday, February 22, 2011 at 03:27, kk yap wrote: 
> Hi,
> 
> I believe maintaining the wildcards would be enough. To me, the
> following two matches are the same:
> 
> Wildcards = ALL - DL_TYPE, DL_TYPE = 5, IP_SRC = 100...
> Wildcards = ALL - DL_TYPE, DL_TYPE = 5, IP_SRC = 0...
> 
> I believe Ben and Justin is saying that it is reasonable to maintain
> the wildcard field. Seems like we have a working solution?
> 
> I will post this on the openflow-spec list for the words to be cleared
> up. The priority field worries me a little more, such I think exact
> match is normalized to priority 65535? Should that be maintained in
> flow_removed? I wonder.
> 
> Regards
> KK
> 
> On 21 February 2011 09:30, Ben Pfaff <b...@nicira.com> wrote:
> > On Sun, Feb 20, 2011 at 11:36 PM, Derek Cormier
> > <derek.corm...@lab.ntt.co.jp> wrote:
> > > I see what you mean and I agree that a switch shouldn't store unnecessary
> > > information. But is it really a burden in this case? The wildcards are
> > > stored in a single 32-bit integer, so no extra space is needed.
> > 
> > The data structure that OVS uses for classification requires that
> > wildcarded fields
> > be zeroed for efficiency reasons. In other words, storing the wildcards 
> > isn't a
> > big deal, but storing nonzero values of wildcarded fields would require 
> > extra
> > memory. So I'd rather not do it, although certainly it's not a huge
> > deal if in the
> > OVS has to.
> > 
> > _______________________________________________
> > discuss mailing list
> > discuss@openvswitch.org
> > http://openvswitch.org/mailman/listinfo/discuss_openvswitch.org
> 
> _______________________________________________
> discuss mailing list
> discuss@openvswitch.org
> http://openvswitch.org/mailman/listinfo/discuss_openvswitch.org
> 
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss_openvswitch.org

Reply via email to