summaryrefslogtreecommitdiffstats
path: root/sys/dev/pci/if_vmx.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* bump the ring sizes up.dlg2013-11-111-3/+3
| | | | ok yasuoka@
* advertise the ring sizes through the stack. specifically:dlg2013-11-081-9/+9
| | | | | | | | | | | | | | - set the sndq size to the tx ring size so tx mitigation can hopefully kick in - advertise the size of the rx ring to mclgeti - only uses jumbo clusters. mtu is about what the ip stack will do for transmitted packets, we should happily receive packets up to the size the hardware supports. the point of mclgeti was to make it possible to do so without wasting too much memory. ok yasuoka@ uebayasi@
* Unbreak vmx(4) on i386. The right shift of 32 bits for the DSHreyk2013-09-081-2/+2
| | | | | | register (driver shared address high) exceeded the width of the 32bit bus address; casting the address to a 64bit type will correctly result in a zero value on i386 and the high bits on amd64.
* vmx(4) uses 4 different types of 128bit descriptors in little-endianreyk2013-08-281-39/+51
| | | | | | | | | | | format for Rx and Tx. Replace the bit fields in the descriptor structs with 32bit words to access them with traditional bit operations using shifts and masks. We try to avoid bit fields in OpenBSD. For consistence with other drivers, this change also uses letoh32/htole32 endianess conversions even if it is very unlikely that vmx will ever run on a big-endian VM/host. discussed with uebayasi@ and deraadt@
* Prefix all functions. Pointed out by brad@.uebayasi2013-06-221-10/+10
|
* De-static.uebayasi2013-06-211-7/+12
|
* Don't rely on __attribute__((__aligned__(x))) GCC extension. Explicitly pad descriptors.uebayasi2013-06-121-2/+2
| | | | No binary change.
* Consistenly use bpf_mtap_ether(). From tsubai@.uebayasi2013-06-121-2/+2
|
* Almost identical diffs from brad@ and dlg@:uebayasi2013-06-121-43/+33
| | | | | | | | | | | | | | o OpenBSD'ify the vmx(4) receive filter handling code o IFF_ALLMULTI is like hte OACTIVE flag in that its only ever set and cleared by an interface driver. with that in mind, this reorders the config to do that and take advantage of it to conditionally configure the multicast filtering. o It also makes the code check if any multicast ranges have been configured, which every other driver interprets as "set ALLMULTI", so we do too now. o Add the usual ifdef INET guard to the ioctl code. OK yasuoka@ dlg@
* Make use of pci_matchbyid().brad2013-06-101-8/+6
| | | | ok yasuoka@
* Remove redundant code setting PCI_COMMAND_MASTER_ENABLE as this is alreadybrad2013-06-081-6/+2
| | | | | | taken care of by pci_mapreg_map(). Ok yasuoka@ uebayasi@
* tweak vmxnet3_load_mbuf to use m_pulldown to safely reach into the mbuf fordlg2013-06-051-47/+37
| | | | | | | | | | the tcp/udp headers and to make theyre contiguous for the hypervisors offload to work correctly. use m_defrag instead of handrolling a copy of a heavily fragmented mbuf into a single mbuf or cluster. ok reyk@ yasuoka@
* vmxnet3_load_mbuf() could replace the mbuf but did not return the newreyk2013-06-031-6/+6
| | | | | | | | | | one which caused the following Tx bpf call to panic. Instead of moving the bpf hook in front of the vmxnet3_load_mbuf() function, we return the updated mbuf because we want don't want to see packets that don't go on the wire/chipset. Analyzed and discussed with yasuoka@ uebayasi@ OK yasuoka@ uebayasi@
* Use IF_POLL to check for available transmit descriptors before IF_DEQUEUE.reyk2013-06-031-2/+5
| | | | ok uebayasi@ yasuoka@ dlg@
* Add vmx(4), driver for VMware's VMXNET3 ethernet controller, written for IIJ.uebayasi2013-05-311-0/+1232
Tested by reyk@, yasuoka@ OK'ed by reyk@, deraadt@