SimpleFabric application is built to replace legacy leaf networks where lP subnes are collocated with each L2 Network and do simple IP routing to upper gateway to Internet
L2 Unicast Forwarding
L2 Broadcast Forwarding
L3 Unicast Inter-Subnet Forwarding
L3 Unicast Upper Route Forwarding
ARP Handing
ARP and ICMP Echo Handling on Virtual Gateway IP
Fault Tolerance
L2Networks
IpSubnets
BorderRoutes
Example network-cfg.json file:
{
"devices":{
... list of devices ...
"of:0000000000000011":{ "basic":{ "name":"LS1", "latitude":35, "longitude":-100 } },
"of:0000000000000012":{ "basic":{ "name":"LS2", "latitude":35, "longitude":-90 } },
"of:0000000000000021":{ "basic":{ "name":"SS1", "latitude":40, "longitude":-100 } },
"of:0000000000000022":{ "basic":{ "name":"SS2", "latitude":40, "longitude":-90 } }
},
"ports" : {
... list of port/interfaces ...
"of:0000000000000011/1" : { "interfaces" : [ { "name" : "h11" } ] },
"of:0000000000000011/2" : { "interfaces" : [ { "name" : "h12" } ] },
"of:0000000000000011/3" : { "interfaces" : [ { "name" : "h13" } ] },
"of:0000000000000011/4" : { "interfaces" : [ { "name" : "h14" } ] },
"of:0000000000000011/5" : { "interfaces" : [ { "name" : "d11" } ] },
"of:0000000000000011/6" : { "interfaces" : [ { "name" : "d12" } ] },
"of:0000000000000011/7" : { "interfaces" : [ { "name" : "LS1_SS1" } ] },
"of:0000000000000011/8" : { "interfaces" : [ { "name" : "LS1_SS2" } ] },
"of:0000000000000012/1" : { "interfaces" : [ { "name" : "h21" } ] } ,
"of:0000000000000012/2" : { "interfaces" : [ { "name" : "h22" } ] },
"of:0000000000000012/3" : { "interfaces" : [ { "name" : "h23" } ] },
"of:0000000000000012/4" : { "interfaces" : [ { "name" : "h24" } ] },
"of:0000000000000012/5" : { "interfaces" : [ { "name" : "d21" } ] },
"of:0000000000000012/6" : { "interfaces" : [ { "name" : "d22" } ] },
"of:0000000000000012/7" : { "interfaces" : [ { "name" : "LS2_SS1" } ] },
"of:0000000000000012/8" : { "interfaces" : [ { "name" : "LS2_SS2" } ] },
"of:0000000000000021/1" : { "interfaces" : [ { "name" : "SS1_LS1" } ] },
"of:0000000000000021/2" : { "interfaces" : [ { "name" : "SS1_LS2" } ] },
"of:0000000000000022/1" : { "interfaces" : [ { "name" : "SS2_LS1" } ] },
"of:0000000000000022/2" : { "interfaces" : [ { "name" : "SS2_LS2" } ] }
},
"apps" : {
"org.onosproject.simplefabric" : {
"simpleFabric" : {
"l2Networks" : [
{ "name" : "LEAF1", "interfaces" : ["h11", "h12", "h13", "h14", "d11", "d12" ], "l2Forward" : true },
{ "name" : "LEAF2", "interfaces" : ["h21", "h22", "h23", "h24", "d21", "d22" ], "l2Forward" : true }
],
"ipSubnets" : [
{ "ipPrefix" : "10.0.1.0/24", "gatewayIp" : "10.0.1.1", "gatewayMac" : "00:00:10:00:01:01", "l2NetworkName" : "LEAF1" },
{ "ipPrefix" : "10.0.2.0/24", "gatewayIp" : "10.0.2.1", "gatewayMac" : "00:00:10:00:02:01", "l2NetworkName" : "LEAF2" }
],
"borderRoutes" : [
{ "ipPrefix" : "0.0.0.0/0", "nextHop" : "10.0.1.2" }
]
}
}
}
}
Topology configurations and events are all maintained by SimpleFabricManager and notified to sub modules to apply updates status.
Reactive Routing is handled by SimpleFabricReactiveRouting module and ARPs are forwarded by SimpleFabricNeighbour module.