I think you need to create a SlavePort like the EtherLink device has.
Again, this code has likely undergone a lot of bitrot.  You're just
going to have to work on it a while to get it going.

  Nate

On Tue, Apr 3, 2012 at 1:00 PM, Anirudh Sivaraman <[email protected]> wrote:
> I tried hooking up the tcp-socket created by ethertap.cc with a TAP
> device using :
>
> sudo socat tcp:localhost:3500 interface:tap-gem5
>
> and that seems to work fine (assuming I have created tap-gem5 using tunctl)
>
> I am still not sure how to connect the EtherTap device to the
> simulated machine using a Port. The function body in makeDualRoot (in
> FSConfig.py) shows how to do this for an EtherLink device, but I am
> not sure how to extend this for an EtherTap device. I tried adding an
> element of type 'Port' to the class EtherTap and connecting that to
> the ethernet intefrace of the simulated system. The code snippet I
> used was :
>
> class EtherTap(EtherObject):
>    type = 'EtherTap'
>    bufsz = Param.Int(10000, "tap buffer size")
>    dump = Param.EtherDump(NULL, "dump object")
>    port = Param.UInt16(3500, "tap port")
>    interface = Port("EtherTap port interface ")
>
> in Ethernet.py followed by  :
>
> self.ethertap.interface=Parent.testsys.tsunami.ethernet.interface
>
> in FSConfig.py
>
> I don't think this works, and I get the following warnings :
>
> warn: error looking up port interface on object testsys.tsunami.ethernet
> warn: error casting SimObject ethertap to MemObject
> warn: connectPorts: port lookup error
>
>
> Anirudh
>
> On Mon, Apr 2, 2012 at 1:05 AM, Anirudh Sivaraman <[email protected]> 
> wrote:
>>
>> On Apr 2, 2012 12:36 AM, "nathan binkert" <[email protected]> wrote:
>>>
>>> > 1. I can't figure out where the tap device is actually created from
>>> > the source of ethertap.cc.  I expect to see something like
>>> > "open(/dev/net/tun)" which opens a tap device.
>>>
>>> My memory is super fuzzy, but basically the way it worked is that
>>> ethertap listened on a tcp port and the thing that connected to the
>>> tun device just opened the tun device and sent the packets over the
>>> tcp connection to the ethertap device.  I'm pretty sure that you
>>> should be able to use socat to do that job as I have no idea what
>>> happened to the original code for that bit.
>>
>> Ok. So you use socat to connect a tcp socket with a tun interface. That
>> makes sense.
>>
>>
>>>
>>> > 2. How do I actually use ethertap.cc in a simulation script ? Is there
>>> > an example that runs (even if functionally incorrect) ?
>>>
>>> Ethernet devices have port interfaces like memory devices do.  You can
>>> just connect an ethertap device to an ethernet interface the way you'd
>>> connect an etherlink.
>>
>> Ok I ll take a look at the etherlink example file and base it off that.
>>
>>
>>> _______________________________________________
>>> gem5-dev mailing list
>>> [email protected]
>>> http://m5sim.org/mailman/listinfo/gem5-dev
> _______________________________________________
> gem5-dev mailing list
> [email protected]
> http://m5sim.org/mailman/listinfo/gem5-dev
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to