PERFORCE change 128170 for review
Kip Macy
kmacy at FreeBSD.org
Fri Oct 26 20:42:36 PDT 2007
http://perforce.freebsd.org/chv.cgi?CH=128170
Change 128170 by kmacy at kmacy:storage:toestack on 2007/10/27 03:42:01
basic infrastructure for TOE connection setup
Affected files ...
.. //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.c#4 edit
.. //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.h#4 edit
.. //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.c#7 edit
.. //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.h#5 edit
.. //depot/projects/toestack/sys/dev/cxgb/sys/mvec.h#5 edit
.. //depot/projects/toestack/sys/dev/cxgb/t3cdev.h#2 edit
.. //depot/projects/toestack/sys/dev/cxgb/ulp/toecore/toedev.c#3 edit
.. //depot/projects/toestack/sys/dev/cxgb/ulp/toecore/toedev.h#5 edit
.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_io.c#1 add
.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_cpl_socket.c#1 add
.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_listen.c#1 add
.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.c#1 add
.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom.h#1 add
.. //depot/projects/toestack/sys/dev/cxgb/ulp/tom/cxgb_tom_sysctl.c#1 add
.. //depot/projects/toestack/sys/modules/cxgb/Makefile#8 edit
.. //depot/projects/toestack/sys/modules/cxgb/cxgb/Makefile#4 edit
.. //depot/projects/toestack/sys/modules/cxgb/toecore/Makefile#2 edit
.. //depot/projects/toestack/sys/netinet/tcp_var.h#5 edit
.. //depot/projects/toestack/sys/sys/socket.h#4 edit
Differences ...
==== //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.c#4 (text+ko) ====
==== //depot/projects/toestack/sys/dev/cxgb/cxgb_l2t.h#4 (text+ko) ====
@@ -108,12 +108,10 @@
#define L2T_MBUF_CB(skb) ((struct l2t_mbuf_cb *)(skb)->cb)
-static __inline void set_arp_failure_handler(struct mbuf *m,
+static __inline void set_arp_failure_handler(struct toe_mbuf *m,
arp_failure_handler_func hnd)
{
-#if 0
- L2T_SKB_CB(skb)->arp_failure_handler = hnd;
-#endif
+ m->m_toe.mt_arp_fail = hnd;
panic("implement me");
}
@@ -146,8 +144,8 @@
struct l2t_entry *e)
{
if (__predict_true(e->state == L2T_STATE_VALID))
- return cxgb_ofld_send(dev, m);
- return t3_l2t_send_slow(dev, m, e);
+ return cxgb_ofld_send(dev, (struct mbuf *)m);
+ return t3_l2t_send_slow(dev, (struct mbuf *)m, e);
}
static inline void l2t_release(struct l2t_data *d, struct l2t_entry *e)
==== //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.c#7 (text+ko) ====
@@ -1641,3 +1641,4 @@
#endif
+MODULE_VERSION(if_cxgb, 1);
==== //depot/projects/toestack/sys/dev/cxgb/cxgb_offload.h#5 (text+ko) ====
@@ -256,5 +256,5 @@
int attach_t3cdev(struct t3cdev *dev);
void detach_t3cdev(struct t3cdev *dev);
-
+#define UNIMPLEMENTED() panic("IMPLEMENT: %s:%s:%d", __FUNCTION__, __FILE__, __LINE__)
#endif
==== //depot/projects/toestack/sys/dev/cxgb/sys/mvec.h#5 (text+ko) ====
@@ -77,6 +77,7 @@
#define MAX_MBUF_IOV ((MHLEN-8)/sizeof(struct mbuf_iovec))
#define MAX_MIOVEC_IOV ((MIOVBYTES-sizeof(struct m_hdr)-sizeof(struct pkthdr)-8)/sizeof(struct mbuf_iovec))
#define MAX_CL_IOV ((MCLBYTES-sizeof(struct m_hdr)-sizeof(struct pkthdr)-8)/sizeof(struct mbuf_iovec))
+#define MAX_PAGE_IOV ((MJUMPAGESIZE-sizeof(struct m_hdr)-sizeof(struct pkthdr)-8)/sizeof(struct mbuf_iovec))
struct mbuf_vec {
uint16_t mv_first; /* first valid cluster */
==== //depot/projects/toestack/sys/dev/cxgb/t3cdev.h#2 (text+ko) ====
@@ -16,13 +16,13 @@
struct t3cdev {
char name[T3CNAMSIZ]; /* T3C device name */
enum t3ctype type;
- TAILQ_ENTRY(t3cdev) ofld_entry; /* for list linking */
+ TAILQ_ENTRY(t3cdev) entry; /* for list linking */
struct ifnet *lldev; /* LL dev associated with T3C messages */
struct adapter *adapter;
int (*send)(struct t3cdev *dev, struct mbuf *m);
int (*recv)(struct t3cdev *dev, struct mbuf **m, int n);
int (*ctl)(struct t3cdev *dev, unsigned int req, void *data);
- void (*neigh_update)(struct t3cdev *dev, struct rtentry *neigh);
+ void (*arp_update)(struct t3cdev *dev, struct rtentry *neigh);
void *priv; /* driver private data */
void *l2opt; /* optional layer 2 data */
void *l3opt; /* optional layer 3 data */
==== //depot/projects/toestack/sys/dev/cxgb/ulp/toecore/toedev.c#3 (text+ko) ====
@@ -380,7 +380,7 @@
}
static int
-toedev_load(module_t mod, int cmd, void *arg)
+toecore_load(module_t mod, int cmd, void *arg)
{
int err = 0;
@@ -415,9 +415,10 @@
static moduledata_t mod_data= {
- "toedev",
- toedev_load,
+ "toecore",
+ toecore_load,
0
};
-DECLARE_MODULE(toedev, mod_data, SI_SUB_EXEC, SI_ORDER_ANY);
+MODULE_VERSION(toecore, 1);
+DECLARE_MODULE(toecore, mod_data, SI_SUB_EXEC, SI_ORDER_ANY);
==== //depot/projects/toestack/sys/dev/cxgb/ulp/toecore/toedev.h#5 (text+ko) ====
@@ -163,10 +163,13 @@
}
#endif /* CONFIG_TCP_OFFLOAD */
+struct toepcb;
struct m_toe_ {
- void (*mt_arp_fail)(struct toedev *, struct mbuf *);
- struct socket *mt_so;
+ void (*mt_arp_fail)(struct t3cdev *, struct mbuf *);
+ void (*mt_backlog_rcv)(struct toepcb *, struct mbuf *);
+ int priority;
+ struct toepcb *mt_toepcb;
};
#define TMLEN (MLEN - sizeof(struct m_toe_))
@@ -186,5 +189,6 @@
} M_dat;
};
+#define m_toe M_dat.MH.MH_toe
#endif /* _OFFLOAD_DEV_H_ */
==== //depot/projects/toestack/sys/modules/cxgb/Makefile#8 (text+ko) ====
@@ -2,5 +2,6 @@
SUBDIR= cxgb
SUBDIR+= iw_cxgb
SUBDIR+= toecore
+SUBDIR+= tom
.include <bsd.subdir.mk>
==== //depot/projects/toestack/sys/modules/cxgb/cxgb/Makefile#4 (text+ko) ====
@@ -7,7 +7,7 @@
SRCS= cxgb_mc5.c cxgb_vsc8211.c cxgb_ael1002.c cxgb_mv88e1xxx.c
SRCS+= cxgb_xgmac.c cxgb_vsc7323.c cxgb_t3_hw.c cxgb_main.c
SRCS+= cxgb_sge.c cxgb_lro.c cxgb_offload.c cxgb_l2t.c
-SRCS+= device_if.h bus_if.h pci_if.h opt_zero.h
+SRCS+= device_if.h bus_if.h pci_if.h opt_zero.h opt_sched.h
SRCS+= uipc_mvec.c cxgb_multiq.c cxgb_support.c
CFLAGS+= -DCONFIG_CHELSIO_T3_CORE -g -DCONFIG_DEFINED -DDEFAULT_JUMBO -I${CXGB} -DSMP
==== //depot/projects/toestack/sys/modules/cxgb/toecore/Makefile#2 (text+ko) ====
@@ -3,5 +3,5 @@
KMOD= toecore
SRCS= toedev.c
-SRCS+= device_if.h bus_if.h pci_if.h
+SRCS+= device_if.h bus_if.h pci_if.h opt_sched.h
.include <bsd.kmod.mk>
==== //depot/projects/toestack/sys/netinet/tcp_var.h#5 (text+ko) ====
@@ -208,7 +208,7 @@
u_int32_t rfbuf_ts; /* recv buffer autoscaling timestamp */
int rfbuf_cnt; /* recv buffer autoscaling byte count */
struct toe_usrreqs *t_tu; /* offload operations vector */
- void *t_toe_priv;
+ void *t_toe;
};
#define IN_FASTRECOVERY(tp) (tp->t_flags & TF_FASTRECOVERY)
==== //depot/projects/toestack/sys/sys/socket.h#4 (text+ko) ====
@@ -119,6 +119,7 @@
#define SO_BINTIME 0x2000 /* timestamp received dgram traffic */
#endif
#define SO_NOOFFLOAD 0x4000 /* socket cannot be offloaded */
+#define SO_NO_DDP 0x8000
/*
* Additional options, not kept in so_options.
More information about the p4-projects
mailing list