Ethernet.py revision 1366
16516Sgblack@eecs.umich.edufrom Device import DmaDevice
26516Sgblack@eecs.umich.edufrom Pci import PciDevice
36516Sgblack@eecs.umich.edu
46516Sgblack@eecs.umich.edusimobj EtherInt(SimObject):
56516Sgblack@eecs.umich.edu    type = 'EtherInt'
66516Sgblack@eecs.umich.edu    abstract = True
76516Sgblack@eecs.umich.edu    peer = Param.EtherInt(NULL, "peer interface")
86516Sgblack@eecs.umich.edu
96516Sgblack@eecs.umich.edusimobj EtherLink(SimObject):
106516Sgblack@eecs.umich.edu    type = 'EtherLink'
116516Sgblack@eecs.umich.edu    int1 = Param.EtherInt("interface 1")
126516Sgblack@eecs.umich.edu    int2 = Param.EtherInt("interface 2")
136516Sgblack@eecs.umich.edu    delay = Param.Tick(0, "transmit delay of packets in us")
146516Sgblack@eecs.umich.edu    speed = Param.Tick(100000000, "link speed in bits per second")
156516Sgblack@eecs.umich.edu    dump = Param.EtherDump(NULL, "dump object")
166516Sgblack@eecs.umich.edu
176516Sgblack@eecs.umich.edusimobj EtherBus(SimObject):
186516Sgblack@eecs.umich.edu    type = 'EtherBus'
196516Sgblack@eecs.umich.edu    loopback = Param.Bool(true,
206516Sgblack@eecs.umich.edu        "send packet back to the interface from which it came")
216516Sgblack@eecs.umich.edu    dump = Param.EtherDump(NULL, "dump object")
226516Sgblack@eecs.umich.edu    speed = Param.UInt64(100000000, "bus speed in bits per second")
236516Sgblack@eecs.umich.edu
246516Sgblack@eecs.umich.edusimobj EtherTap(EtherInt):
256516Sgblack@eecs.umich.edu    type = 'EtherTap'
266516Sgblack@eecs.umich.edu    bufsz = Param.Int(10000, "tap buffer size")
276516Sgblack@eecs.umich.edu    dump = Param.EtherDump(NULL, "dump object")
286516Sgblack@eecs.umich.edu    port = Param.UInt16(3500, "tap port")
296516Sgblack@eecs.umich.edu
306516Sgblack@eecs.umich.edusimobj EtherDump(SimObject):
316516Sgblack@eecs.umich.edu    type = 'EtherDump'
326516Sgblack@eecs.umich.edu    file = Param.String("dump file")
336516Sgblack@eecs.umich.edu
346516Sgblack@eecs.umich.edusimobj EtherDev(DmaDevice):
356516Sgblack@eecs.umich.edu    type = 'EtherDev'
366516Sgblack@eecs.umich.edu    hardware_address = Param.EthernetAddr(NextEthernetAddr,
376516Sgblack@eecs.umich.edu        "Ethernet Hardware Address")
386516Sgblack@eecs.umich.edu
396516Sgblack@eecs.umich.edu    dma_data_free = Param.Bool(false, "DMA of Data is free")
406516Sgblack@eecs.umich.edu    dma_desc_free = Param.Bool(false, "DMA of Descriptors is free")
416516Sgblack@eecs.umich.edu    dma_read_delay = Param.Tick(0, "fixed delay for dma reads")
426516Sgblack@eecs.umich.edu    dma_read_factor = Param.Tick(0, "multiplier for dma reads")
436516Sgblack@eecs.umich.edu    dma_write_delay = Param.Tick(0, "fixed delay for dma writes")
446516Sgblack@eecs.umich.edu    dma_write_factor = Param.Tick(0, "multiplier for dma writes")
456516Sgblack@eecs.umich.edu
466516Sgblack@eecs.umich.edu    rx_filter = Param.Bool(true, "Enable Receive Filter")
476516Sgblack@eecs.umich.edu    rx_delay = Param.Tick(1000, "Receive Delay")
486516Sgblack@eecs.umich.edu    tx_delay = Param.Tick(1000, "Transmit Delay")
496516Sgblack@eecs.umich.edu
506516Sgblack@eecs.umich.edu    intr_delay = Param.Tick(0, "Interrupt Delay in microseconds")
516516Sgblack@eecs.umich.edu    payload_bus = Param.Bus(NULL, "The IO Bus to attach to for payload")
526516Sgblack@eecs.umich.edu    physmem = Param.PhysicalMemory(Super, "Physical Memory")
536516Sgblack@eecs.umich.edu    tlaser = Param.Turbolaser(Super, "Turbolaser")
546516Sgblack@eecs.umich.edu
556516Sgblack@eecs.umich.edusimobj NSGigE(PciDevice):
566516Sgblack@eecs.umich.edu    type = 'NSGigE'
576516Sgblack@eecs.umich.edu    hardware_address = Param.EthernetAddr(NextEthernetAddr,
586516Sgblack@eecs.umich.edu        "Ethernet Hardware Address")
596516Sgblack@eecs.umich.edu
606545Sgblack@eecs.umich.edu    dma_data_free = Param.Bool(false, "DMA of Data is free")
616516Sgblack@eecs.umich.edu    dma_desc_free = Param.Bool(false, "DMA of Descriptors is free")
626516Sgblack@eecs.umich.edu    dma_read_delay = Param.Tick(0, "fixed delay for dma reads")
636516Sgblack@eecs.umich.edu    dma_read_factor = Param.Tick(0, "multiplier for dma reads")
646516Sgblack@eecs.umich.edu    dma_write_delay = Param.Tick(0, "fixed delay for dma writes")
656545Sgblack@eecs.umich.edu    dma_write_factor = Param.Tick(0, "multiplier for dma writes")
666516Sgblack@eecs.umich.edu
676516Sgblack@eecs.umich.edu    rx_filter = Param.Bool(true, "Enable Receive Filter")
686516Sgblack@eecs.umich.edu    rx_delay = Param.Tick(1000, "Receive Delay")
696516Sgblack@eecs.umich.edu    tx_delay = Param.Tick(1000, "Transmit Delay")
706516Sgblack@eecs.umich.edu
716516Sgblack@eecs.umich.edu    rx_fifo_size = Param.Int(131072, "max size in bytes of rxFifo")
726516Sgblack@eecs.umich.edu    tx_fifo_size = Param.Int(131072, "max size in bytes of txFifo")
736516Sgblack@eecs.umich.edu
746516Sgblack@eecs.umich.edu    intr_delay = Param.Tick(0, "Interrupt Delay in microseconds")
756516Sgblack@eecs.umich.edu    payload_bus = Param.Bus(NULL, "The IO Bus to attach to for payload")
766516Sgblack@eecs.umich.edu    physmem = Param.PhysicalMemory(Super, "Physical Memory")
776516Sgblack@eecs.umich.edu
786516Sgblack@eecs.umich.edusimobj EtherDevInt(EtherInt):
796516Sgblack@eecs.umich.edu    type = 'EtherDevInt'
806516Sgblack@eecs.umich.edu    device = Param.EtherDev("Ethernet device of this interface")
816516Sgblack@eecs.umich.edu
826516Sgblack@eecs.umich.edusimobj NSGigEInt(EtherInt):
836545Sgblack@eecs.umich.edu    type = 'NSGigEInt'
846516Sgblack@eecs.umich.edu    device = Param.NSGigE("Ethernet device of this interface")
856516Sgblack@eecs.umich.edu
866516Sgblack@eecs.umich.edu
876516Sgblack@eecs.umich.edu