Ethernet.py revision 1369
14309Sgblack@eecs.umich.edufrom Device import DmaDevice
24309Sgblack@eecs.umich.edufrom Pci import PciDevice
35426Sgblack@eecs.umich.edu
44309Sgblack@eecs.umich.edusimobj EtherInt(SimObject):
54309Sgblack@eecs.umich.edu    type = 'EtherInt'
64309Sgblack@eecs.umich.edu    abstract = True
74309Sgblack@eecs.umich.edu    peer = Param.EtherInt(NULL, "peer interface")
84309Sgblack@eecs.umich.edu
94309Sgblack@eecs.umich.edusimobj EtherLink(SimObject):
104309Sgblack@eecs.umich.edu    type = 'EtherLink'
114309Sgblack@eecs.umich.edu    int1 = Param.EtherInt("interface 1")
124309Sgblack@eecs.umich.edu    int2 = Param.EtherInt("interface 2")
134309Sgblack@eecs.umich.edu    delay = Param.Tick(0, "transmit delay of packets in us")
144309Sgblack@eecs.umich.edu    speed = Param.Tick(100000000, "link speed in bits per second")
154309Sgblack@eecs.umich.edu    dump = Param.EtherDump(NULL, "dump object")
164309Sgblack@eecs.umich.edu
174309Sgblack@eecs.umich.edusimobj EtherBus(SimObject):
184309Sgblack@eecs.umich.edu    type = 'EtherBus'
194309Sgblack@eecs.umich.edu    loopback = Param.Bool(True,
204309Sgblack@eecs.umich.edu        "send packet back to the interface from which it came")
214309Sgblack@eecs.umich.edu    dump = Param.EtherDump(NULL, "dump object")
224309Sgblack@eecs.umich.edu    speed = Param.UInt64(100000000, "bus speed in bits per second")
234309Sgblack@eecs.umich.edu
244309Sgblack@eecs.umich.edusimobj EtherTap(EtherInt):
254309Sgblack@eecs.umich.edu    type = 'EtherTap'
264309Sgblack@eecs.umich.edu    bufsz = Param.Int(10000, "tap buffer size")
274309Sgblack@eecs.umich.edu    dump = Param.EtherDump(NULL, "dump object")
284309Sgblack@eecs.umich.edu    port = Param.UInt16(3500, "tap port")
294309Sgblack@eecs.umich.edu
304309Sgblack@eecs.umich.edusimobj EtherDump(SimObject):
314309Sgblack@eecs.umich.edu    type = 'EtherDump'
324309Sgblack@eecs.umich.edu    file = Param.String("dump file")
334309Sgblack@eecs.umich.edu
344309Sgblack@eecs.umich.edusimobj EtherDev(DmaDevice):
354309Sgblack@eecs.umich.edu    type = 'EtherDev'
364309Sgblack@eecs.umich.edu    hardware_address = Param.EthernetAddr(NextEthernetAddr,
374309Sgblack@eecs.umich.edu        "Ethernet Hardware Address")
384309Sgblack@eecs.umich.edu
394309Sgblack@eecs.umich.edu    dma_data_free = Param.Bool(False, "DMA of Data is free")
404309Sgblack@eecs.umich.edu    dma_desc_free = Param.Bool(False, "DMA of Descriptors is free")
414309Sgblack@eecs.umich.edu    dma_read_delay = Param.Tick(0, "fixed delay for dma reads")
424309Sgblack@eecs.umich.edu    dma_read_factor = Param.Tick(0, "multiplier for dma reads")
434309Sgblack@eecs.umich.edu    dma_write_delay = Param.Tick(0, "fixed delay for dma writes")
444309Sgblack@eecs.umich.edu    dma_write_factor = Param.Tick(0, "multiplier for dma writes")
454309Sgblack@eecs.umich.edu
464309Sgblack@eecs.umich.edu    rx_filter = Param.Bool(True, "Enable Receive Filter")
474309Sgblack@eecs.umich.edu    rx_delay = Param.Tick(1000, "Receive Delay")
484309Sgblack@eecs.umich.edu    tx_delay = Param.Tick(1000, "Transmit Delay")
494309Sgblack@eecs.umich.edu
504309Sgblack@eecs.umich.edu    intr_delay = Param.Tick(0, "Interrupt Delay in microseconds")
514309Sgblack@eecs.umich.edu    payload_bus = Param.Bus(NULL, "The IO Bus to attach to for payload")
524309Sgblack@eecs.umich.edu    physmem = Param.PhysicalMemory(Super, "Physical Memory")
534309Sgblack@eecs.umich.edu    tlaser = Param.Turbolaser(Super, "Turbolaser")
544309Sgblack@eecs.umich.edu
554309Sgblack@eecs.umich.edusimobj NSGigE(PciDevice):
564309Sgblack@eecs.umich.edu    type = 'NSGigE'
574309Sgblack@eecs.umich.edu    hardware_address = Param.EthernetAddr(NextEthernetAddr,
584533Sgblack@eecs.umich.edu        "Ethernet Hardware Address")
594679Sgblack@eecs.umich.edu
604679Sgblack@eecs.umich.edu    dma_data_free = Param.Bool(False, "DMA of Data is free")
614679Sgblack@eecs.umich.edu    dma_desc_free = Param.Bool(False, "DMA of Descriptors is free")
624533Sgblack@eecs.umich.edu    dma_read_delay = Param.Tick(0, "fixed delay for dma reads")
634533Sgblack@eecs.umich.edu    dma_read_factor = Param.Tick(0, "multiplier for dma reads")
644537Sgblack@eecs.umich.edu    dma_write_delay = Param.Tick(0, "fixed delay for dma writes")
654533Sgblack@eecs.umich.edu    dma_write_factor = Param.Tick(0, "multiplier for dma writes")
664528Sgblack@eecs.umich.edu
675666Sgblack@eecs.umich.edu    rx_filter = Param.Bool(True, "Enable Receive Filter")
685666Sgblack@eecs.umich.edu    rx_delay = Param.Tick(1000, "Receive Delay")
695666Sgblack@eecs.umich.edu    tx_delay = Param.Tick(1000, "Transmit Delay")
704528Sgblack@eecs.umich.edu
714528Sgblack@eecs.umich.edu    rx_fifo_size = Param.Int(131072, "max size in bytes of rxFifo")
724528Sgblack@eecs.umich.edu    tx_fifo_size = Param.Int(131072, "max size in bytes of txFifo")
734528Sgblack@eecs.umich.edu
744605Sgblack@eecs.umich.edu    intr_delay = Param.Tick(0, "Interrupt Delay in microseconds")
755666Sgblack@eecs.umich.edu    payload_bus = Param.Bus(NULL, "The IO Bus to attach to for payload")
765666Sgblack@eecs.umich.edu    physmem = Param.PhysicalMemory(Super, "Physical Memory")
774528Sgblack@eecs.umich.edu
786345Sgblack@eecs.umich.edusimobj EtherDevInt(EtherInt):
796345Sgblack@eecs.umich.edu    type = 'EtherDevInt'
806345Sgblack@eecs.umich.edu    device = Param.EtherDev("Ethernet device of this interface")
816345Sgblack@eecs.umich.edu
826345Sgblack@eecs.umich.edusimobj NSGigEInt(EtherInt):
836345Sgblack@eecs.umich.edu    type = 'NSGigEInt'
844615Sgblack@eecs.umich.edu    device = Param.NSGigE("Ethernet device of this interface")
855854Sgblack@eecs.umich.edu
866345Sgblack@eecs.umich.edu
875854Sgblack@eecs.umich.edu