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