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