Hi - This ports Linux's r8169 driver and fixes a bunch of network and linux_compat issues along the way. For instance, one fun bug was that TSO would only work if we initiated the connection (sent the SYN), but not if we were the server (sent the SYN-ACK). See the commits for details.
If ifconfig hangs, it might be hanging on NIC that is waiting for it's link to come up. If you have multiple NICs, you'll need to select the right one (via the MAC) in a config file in /etc/network/local.d/. Barret The following changes since commit e5d32777b4b9e08aafe9f34178bb1363e1f7c581: linuxemu: fix fcntl GETFL flags (2017-11-01 11:37:43 -0400) are available in the Git repository at: [email protected]:brho/akaros.git rtl8169 for you to fetch changes up to 734fb3e242e2ad6c1079c640525ed6e02f2b9d62: mlx4: Use netif_stats for ifstat (2017-11-16 12:19:59 -0500) ---------------------------------------------------------------- View this online at: https://github.com/brho/akaros/compare/e5d32777b4b9...734fb3e242e2 ---------------------------------------------------------------- Barret Rhoden (47): net: tcp: Don't increment snd.nxt net: Move ip.h to net/ip.h net: tcp: Move TCP's headers into net/tcp.h net: tcp: Lowercase-ify struct names Add Linux's math64.h Port Linux's math64 headers Add IS_ERR_OR_NULL helper Move uninitialized_var() to compiler.h Add variants to I_AM_HERE x86: Rename VPD (XCC) mlx4: bnx2x: Use pci_set_bus_master() Update Linux compatibility shims/coccis ether: Add Linux's MII code ether: Spatch Linux MII files ether: Port the Linux MII code ether: Fix MTU control variables ether: Fix ETHERMAXTU calculations ether: Add Linux-compatible netif_stats pci: Add cacheline and MWI helpers from Linux pci: Update pci_regs.h pci: Add a struct device field Move srch_linux_pci_tbl to linux_compat.h net: tcp: Refactor the tcp header structs net: Change transport_header_end -> tranport_offset net: Add network_offset to blocks net: tcp: Fix TSO for incoming connections net: Add an option for RX checksum offload qio: Don't make extra empty EBDs net: Let ifconfig use NICs other than ether.0 ether: Add a field for the driver_name net: Remove block->checksum net: Clarify transport checksum offload Encapsulate block metadata better net: Split up BCKSUM_FLAGS net: Split hw_features out from feat net: Add a helper to parse netif_stats net: Delay etherbind until the link is up net: Remove mbps from ipifc net: Add rx_mode to ether/netif r8169: Add Linux's RTL 8169 driver r8169: Spatch the driver r8169: Make the driver compile r8169: Port the driver net: Remove 9ns's rtl8169 driver Fix ttcp rate output string Treat jiffies as msec since boot mlx4: Use netif_stats for ifstat kern/arch/x86/apic9.c | 2 +- kern/arch/x86/devarch.c | 2 +- kern/arch/x86/div64.h | 39 + kern/arch/x86/ioapic.c | 2 +- kern/arch/x86/mp.c | 2 +- kern/arch/x86/mpacpi.c | 2 +- kern/arch/x86/msi.c | 2 +- kern/arch/x86/pci.c | 52 + kern/arch/x86/pci.h | 7 + kern/arch/x86/pci_regs.h | 110 +- kern/arch/x86/ros/mmu64.h | 7 +- kern/drivers/dev/acpi.c | 2 +- kern/drivers/dev/capability.c | 2 +- kern/drivers/dev/coreboot.c | 2 +- kern/drivers/dev/ether.c | 23 +- kern/drivers/dev/mnt.c | 2 +- kern/drivers/dev/pci.c | 2 +- kern/drivers/dev/pipe.c | 2 +- kern/drivers/dev/random.c | 2 +- kern/drivers/dev/regress.c | 2 +- kern/drivers/dev/root.c | 2 +- kern/drivers/dev/sd.c | 2 +- kern/drivers/dev/sdiahci.c | 2 +- kern/drivers/dev/sdscsi.c | 2 +- kern/drivers/dev/srv.c | 2 +- kern/drivers/net/Kbuild | 3 +- kern/drivers/net/bnx2x/bnx2x_cmn.c | 10 +- kern/drivers/net/bnx2x/bnx2x_dev.c | 22 +- kern/drivers/net/bnx2x/bnx2x_ethtool.c | 4 +- kern/drivers/net/bnx2x/bnx2x_main.c | 33 +- kern/drivers/net/bnx2x/bnx2x_stats.c | 9 +- kern/drivers/net/bnx2x/bnx2x_vfpf.c | 4 +- kern/drivers/net/ether8139.c | 6 +- kern/drivers/net/ether8169.c | 1239 ----- kern/drivers/net/ether82563.c | 11 +- kern/drivers/net/etherigbe.c | 29 +- kern/drivers/net/linux_mii.c | 651 +++ kern/drivers/net/linux_mii.h | 345 ++ kern/drivers/net/linux_uapi_mii.h | 158 + kern/drivers/net/mlx4/en_netdev.c | 22 +- kern/drivers/net/mlx4/en_port.c | 5 +- kern/drivers/net/mlx4/en_rx.c | 2 +- kern/drivers/net/mlx4/en_tx.c | 6 +- kern/drivers/net/mlx4/main.c | 13 +- kern/drivers/net/mlx4/mlx4_en.h | 4 +- kern/drivers/net/mlx4/mlx4_stats.h | 4 +- kern/drivers/net/r8169.c | 8860 ++++++++++++++++++++++++++++++++ kern/drivers/net/udrvr/compat.h | 1 - kern/include/compiler.h | 10 + kern/include/error.h | 1 + kern/include/linux/compat_todo.h | 102 +- kern/include/linux_compat.h | 280 +- kern/include/math64.h | 271 + kern/include/{ => net}/ip.h | 132 +- kern/include/net/tcp.h | 427 ++ kern/include/ns.h | 23 +- kern/include/rendez.h | 2 + kern/include/stdio.h | 9 +- kern/kfs/ifconfig | 40 +- kern/src/init.c | 2 +- kern/src/ktest/net_ktests.c | 2 +- kern/src/net/arp.c | 2 +- kern/src/net/devip.c | 2 +- kern/src/net/dial.c | 2 +- kern/src/net/eipconv.c | 2 +- kern/src/net/ethermedium.c | 14 +- kern/src/net/icmp.c | 9 +- kern/src/net/icmp6.c | 2 +- kern/src/net/ip.c | 19 +- kern/src/net/ipaux.c | 2 +- kern/src/net/ipifc.c | 2 +- kern/src/net/ipprotoinit.c | 2 +- kern/src/net/iproute.c | 2 +- kern/src/net/iprouter.c | 2 +- kern/src/net/ipv6.c | 5 +- kern/src/net/loopbackmedium.c | 3 +- kern/src/net/netaux.c | 2 +- kern/src/net/netif.c | 124 +- kern/src/net/netlog.c | 2 +- kern/src/net/nullmedium.c | 2 +- kern/src/net/pktmedium.c | 2 +- kern/src/net/plan9.c | 2 +- kern/src/net/ptclbsum.c | 2 +- kern/src/net/tcp.c | 607 +-- kern/src/net/udp.c | 14 +- kern/src/ns/allocb.c | 27 +- kern/src/ns/cache.c | 2 +- kern/src/ns/cleanname.c | 2 +- kern/src/ns/convD2M.c | 2 +- kern/src/ns/convM2D.c | 2 +- kern/src/ns/convM2S.c | 2 +- kern/src/ns/convM2kdirent.c | 2 +- kern/src/ns/convS2M.c | 2 +- kern/src/ns/dev.c | 2 +- kern/src/ns/getfields.c | 2 +- kern/src/ns/parse.c | 2 +- kern/src/ns/pgrp.c | 2 +- kern/src/ns/qio.c | 43 +- kern/src/ns/sysfile.c | 2 +- kern/src/ns/tokenize.c | 2 +- scripts/spatch/linux/funcs.cocci | 20 +- scripts/spatch/linux/scalar.cocci | 50 +- tests/ttcp.c | 8 +- 103 files changed, 11906 insertions(+), 2113 deletions(-) create mode 100644 kern/arch/x86/div64.h delete mode 100644 kern/drivers/net/ether8169.c create mode 100644 kern/drivers/net/linux_mii.c create mode 100644 kern/drivers/net/linux_mii.h create mode 100644 kern/drivers/net/linux_uapi_mii.h create mode 100644 kern/drivers/net/r8169.c create mode 100644 kern/include/math64.h rename kern/include/{ => net}/ip.h (88%) create mode 100644 kern/include/net/tcp.h -- You received this message because you are subscribed to the Google Groups "Akaros" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. For more options, visit https://groups.google.com/d/optout.
