What I asked is how M5 sets the mac addresses and what are
the unique values(ARP table). I didn't find it in the M5
source codes.

Xin 

---- Original message ----
>Date: Thu, 6 Dec 2007 23:06:20 -0500
>From: Ali Saidi <[EMAIL PROTECTED]>  
>Subject: Re: [m5-users] issues on switch model for cluster  
>To: M5 users mailing list <m5-users@m5sim.org>
>
>M5 sets the mac addresses automatically to be unique values. The  
>machines get each others MAC addresses through ARP discovery as they  
>would in any real system. Like I said, if you implement the IEEE  
>802.1D bridging spec, it will all just work.
>
>Ali
>
>On Dec 6, 2007, at 10:00 PM, <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> wrote:
>
>> The point is who sets those MAC address. The M5 simulator or
>> users? I know the IP addresses are set by users in .rcS files.
>> In the original M5, does each packet contain the destination
>> mac address? Could you tell me where a packet is created
>> in M5 source files? Thanks a lot.
>>
>> Xin
>>
>> ---- Original message ----
>>> Date: Thu, 6 Dec 2007 20:36:10 -0500
>>> From: Ali Saidi <[EMAIL PROTECTED]>
>>> Subject: Re: [m5-users] issues on switch model for cluster
>>> To: M5 users mailing list <m5-users@m5sim.org>
>>>
>>> The correct way is the MAC address, and it's always the mac address.
>>> The IEEE 802.1D specification has a section on ethernet switches that
>>> describes the process.
>>>
>>> Ali
>>>
>>> On Dec 6, 2007, at 7:19 PM, <[EMAIL PROTECTED]> wrote:
>>>
>>>> Actually, the EtherLink model can be completely replaced
>>>> by the EtherSwitch model. The topology is looked as follows:
>>>>                  -------------------------
>>>> System1--EtherInt1-|-Interface1--Interface2-|-EtherInt2--System2
>>>>                  |    \          /        |
>>>>                  |     \        /         |
>>>>                  |     Interface3         |
>>>>                  |         |              |
>>>>                  ----------|----------------
>>>>                        EtherInt3
>>>>                            |
>>>>                         System3
>>>>
>>>> The above box is the switch model. The peer of EtherInt(i) is
>>>> set to be Interface(i) and Interfaces in the box are
>>>> interconnected with Links instead of EtherLinks.
>>>> In your switch model, even though there are N EtherInts in
>>>> the box and they are connected via Etherlinks from/to
>>>> outside, some kind of route procedure is still needed.
>>>> When the packet arrive at the EtherInt in the switch model,
>>>> how can you determine which port is appropriate? I think
>>>> the only way is to find the destination information from
>>>> the packet,no matter mac address or ip address.
>>>> So the question is how to get the destination information
>>>> from packet.
>>>>
>>>> Xin
>>>>
>>>> ---- Original message ----
>>>>> Date: Thu, 6 Dec 2007 11:39:27 -0500
>>>>> From: Ali Saidi <[EMAIL PROTECTED]>
>>>>> Subject: Re: [m5-users] issues on switch model for cluster
>>>>> To: M5 users mailing list <m5-users@m5sim.org>
>>>>>
>>>>>
>>>>> On Dec 6, 2007, at 11:06 AM, <[EMAIL PROTECTED]> <[EMAIL PROTECTED]> 
>>>>> wrote:
>>>>>
>>>>>> Hello,
>>>>>>
>>>>>> I have created an EtherSwitch model to replace the EtherLink.
>>>>>> However, I got two problems:
>>>>>>
>>>>>> 1) In original EtherLink model, each Interface has only one
>>>>>> txlink, so when Interface::recvPacket(packet) is called by
>>>>>> its peer, txlink->transmit(packet) is returned. But in
>>>>>> the EtherSwitch model, each Interface has N-1 txlinks(N is
>>>>>> # of systems), so function recvPacket(packet) must
>>>>>> determine
>>>>>> which txlink is needed to transmit the packet.
>>>>> The idea is that each two endpoints should have an EtherInt. So  
>>>>> each
>>>>> system will have an EtherInt and then the switch should have a
>>>>> separate EtherInt for each "port" that exists on the switch. The
>>>>> probably should be connected with an EtherLink.
>>>>>
>>>>>> I tried to
>>>>>> find the destination information in the packet. I looked
>>>>>> through base/inet.hh and found the function dst() can
>>>>>> return
>>>>>> the destination address, so I wrote the following codes:
>>>>>>             IpPtr p = IpPtr(packet);
>>>>>>             uint32_t ip_address = p->dst();
>>>>>> But the simulator exited with error when it ran the
>>>>>> above codes. Can anyone know how to get the destination
>>>>>> information from the packet?
>>>>> You should read the IEEE 802.1D ethernet standard. Not all packets
>>>>> transfered across ethernet are IP packets. You need to route  
>>>>> based on
>>>>> MAC addresses, not on IP addresses. The switch model needs to  
>>>>> keep a
>>>>> list of MAC addresses behind each port and then when it receives a
>>>>> packet it needs to find the appropriate port and send the packet to
>>>>> it. To be complete the model also needs to detect when no port  
>>>>> exists
>>>>> and respond appropriately.
>>>>>
>>>>>>
>>>>>> 2) similar to the above problem. In original EtherLink model,
>>>>>> when Interface::isBusy() is called, it just returns
>>>>>> txlink->busy() since it has only one txlink. But in the
>>>>>> EtherSwitch model,  isBusy doesn't know which txlink
>>>>>> is needed to transmit the packet and the worse is no packet
>>>>>> can be used to determine the destination. One feasible
>>>>>> solution is make sure all txlinks are free before a packet
>>>>>> is transmitted although only one txlink is used. My
>>>>>> question is how to modify the original code in order to
>>>>>> replace isBusy() by isBusy(packet).
>>>>> I think this will be more clear when you read the above
>>>>> specification,
>>>>> but the architecture should look something like this:
>>>>> http://zeep.eecs.umich.edu/~saidi/etherswitch.pdf
>>>>>
>>>>> Ali
>>>>>
>>>>> _______________________________________________
>>>>> m5-users mailing list
>>>>> m5-users@m5sim.org
>>>>> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>>>> _______________________________________________
>>>> m5-users mailing list
>>>> m5-users@m5sim.org
>>>> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>>>>
>>>
>>> _______________________________________________
>>> m5-users mailing list
>>> m5-users@m5sim.org
>>> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>> _______________________________________________
>> m5-users mailing list
>> m5-users@m5sim.org
>> http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
>>
>
>_______________________________________________
>m5-users mailing list
>m5-users@m5sim.org
>http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
_______________________________________________
m5-users mailing list
m5-users@m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users

Reply via email to