Fixes TCP drops due to ARP timeouts
[akaros.git] / kern / include / ip.h
index 2cb2c35..523feb9 100644 (file)
@@ -187,6 +187,7 @@ struct Ipifc {
        struct medium *m;                       /* Media pointer */
        int maxtu;                                      /* Maximum transfer unit */
        int mintu;                                      /* Minumum tranfer unit */
+       unsigned int feat;                              /* Offload features */
        int mbps;                                       /* megabits per second */
        void *arg;                                      /* medium specific */
        int reassemble;                         /* reassemble IP packets before forwarding */
@@ -494,11 +495,11 @@ struct arpent {
        struct arpent *hash;
        struct block *hold;
        struct block *last;
-       unsigned int ctime;                     /* time entry was created or refreshed */
-       unsigned int utime;                     /* time entry was last used */
+       uint64_t ctime;                 /* time entry was created or refreshed */
+       uint64_t utime;                 /* time entry was last used */
        uint8_t state;
        struct arpent *nextrxt;         /* re-transmit chain */
-       unsigned int rtime;                     /* time for next retransmission */
+       uint64_t rtime;                 /* time for next retransmission */
        uint8_t rxtsrem;
        struct Ipifc *ifc;
        uint8_t ifcid;                          /* must match ifc->id */
@@ -935,8 +936,9 @@ enum {
        NETF_IPCK = (1 << NS_IPCK_SHIFT),       /* xmit ip checksum */
        NETF_UDPCK = (1 << NS_UDPCK_SHIFT),     /* xmit udp checksum */
        NETF_TCPCK = (1 << NS_TCPCK_SHIFT),     /* xmit tcp checksum */
-       NETF_PADMIN = (1 << NETF_SG_SHIFT),     /* device pads to mintu */
+       NETF_PADMIN = (1 << NETF_PADMIN_SHIFT), /* device pads to mintu */
        NETF_SG = (1 << NETF_SG_SHIFT),         /* device can do scatter/gather */
+       NETF_TSO = (1 << NS_TSO_SHIFT),         /* device can do TSO */
 };
 /*
  *  a network interface