Hello,

Very helpful explanation,
I would like to ask you about the barrier command and its replay. What is the 
benefit from using it in l2_multi. Also, what is the benefit from clearing 
flow-table contents, while receiving a LinkEvent.

Best regards,
Amer

On ١٦‏/١٢‏/٢٠١٣, at ٩:٢٦ ص, Murphy McCauley <murphy.mccau...@gmail.com> wrote:

> There isn't.  In short, it's like this:
> 
> The discovery component raises LinkEvents when links change.
> 
> l2_multi keeps an "adjacency" map.  The value of adjacency[sw1][sw2] is the 
> port which connects sw1 to sw2.  This is updated by the l2_multi class, which 
> watches LinkEvents.  LinkEvents also cause all switches to have their tables 
> cleared.
> 
> The Switch class watches PacketIn events.  When one occurs, it "learns" the 
> source MAC (stored in mac_map).  In the usual case, this should only be from 
> a port which *doesn't* connect two switches (and therefore won't be in the 
> the adjacency map).  If we know the destination, we install a path from the 
> current switch all the way to its final destination (if we don't, as usual, 
> we flood).
> 
> To install a path, we find the shortest path using the Floyd-Warshall 
> algorithm, and then fill in the port numbers from the adjacency map.  We send 
> the flow-mods to all the switches on the path, followed by a barrier.  When 
> we have gotten the barrier reply from each switch, the entire path should be 
> ready, so we send the waiting packet (that is, the packet which caused us to 
> want to install the flow in the first place).
> 
> 
> Most of the rest of the code is to handle "exceptional" cases like 
> multicasts, partitions, etc.
> 
> Don't look to l2_multi as an example of a "good" way to write network-wide 
> forwarding code, though.  It's just a 500 line example which is meant to be 
> relatively easy to understand.
> 
> -- Murphy
> 
> On Dec 15, 2013, at 8:24 PM, Amer <amer7...@hotmail.com> wrote:
> 
>> Hello,
>> 
>> I would like to ask you if there is a document that help me to understand 
>> l2_multi code.
>> 
>> Best regards,
>> Amer
> 
> 

Reply via email to