network BigNetwork
{
    // @todo  statistics
    // num of resources found
    // no of hops
    // number of messages
    // distribution of the resource
    // number of Notification messages
    // processing time for the messages.
    types:
       channel Channel extends ned.DelayChannel {
            delay = 50ms;
        }
    submodules:
        IN_CSE[3]: CSE;
        MN_CSE[20]: CSE;
        AE [46]: AE;
    connections allowunconnected :     
        for i=0..2 {
            IN_CSE[i].sibling++ <--> Channel <--> IN_CSE[(i+1)%3].sibling++;
        }
        for j=0..1 {
            MN_CSE[j].provider++ <--> Channel <--> IN_CSE[0].customer++;
        }
        for j=2..3 {
            MN_CSE[j].provider++ <--> Channel <--> IN_CSE[1].customer++;
        }
        for j=4..5 {
            MN_CSE[j].provider++ <--> Channel <--> IN_CSE[2].customer++;
        }
        for j=6..7 {
            MN_CSE[j].provider++ <--> Channel <--> MN_CSE[0].customer++;
        }
        for j=8..9 {
            MN_CSE[j].provider++ <--> Channel <--> MN_CSE[1].customer++;
        }
        for j=10..11 {
            MN_CSE[j].provider++ <--> Channel <--> MN_CSE[2].customer++;
        }
        for j=12..13 {
            MN_CSE[j].provider++ <--> Channel <--> MN_CSE[3].customer++;
        }
        for j=14..15 {
            MN_CSE[j].provider++ <--> Channel <--> MN_CSE[4].customer++;
        }
        for j=16..17 {
            MN_CSE[j].provider++ <--> Channel <--> MN_CSE[5].customer++;
        }
        
        for j=18..19 {
            MN_CSE[j].provider++ <--> Channel <--> MN_CSE[5].customer++;
        }
        
        for j=0..1 {
            MN_CSE[0].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=2..3 {
            MN_CSE[1].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=4..5 {
            MN_CSE[2].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=6..7 {
            MN_CSE[3].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=8..9 {
            MN_CSE[4].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=10..11 {
            MN_CSE[5].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=12..13 {
            IN_CSE[0].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=14..15 {
            IN_CSE[1].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=16..17 {
            IN_CSE[2].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=18..19{
            MN_CSE[6].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=20..21{
            MN_CSE[7].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=22..23{
            MN_CSE[8].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=24..25{
            MN_CSE[9].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=26..27{
            MN_CSE[10].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=28..29{
            MN_CSE[11].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=30..31{
            MN_CSE[12].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=32..33{
            MN_CSE[13].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=34..35{
            MN_CSE[14].ae++<--> Channel <--> AE[j].cse;
        }
        for j=36..37{
            MN_CSE[15].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=38..39{
            MN_CSE[16].ae++ <--> Channel <--> AE[j].cse;
        }
        for j=40..41{
            MN_CSE[17].ae++ <--> Channel <--> AE[j].cse;
        }
        
        for j=42..43{
            MN_CSE[18].ae++ <--> Channel <--> AE[j].cse;
        }
        
        for j=44..45{
            MN_CSE[19].ae++ <--> Channel <--> AE[j].cse;
        } 
}
