debug changes

This commit is contained in:
Joseph Henry 2015-09-15 15:41:57 -04:00
parent cb277f52e8
commit 735ae9b369
2 changed files with 21 additions and 23 deletions

View file

@ -156,6 +156,8 @@ void NetconEthernetTap::put(const MAC &from,const MAC &to,unsigned int etherType
if (!_enabled) if (!_enabled)
return; return;
fprintf(stderr, "put\n");
/*
if (etherType == ZT_ETHERTYPE_ARP) { if (etherType == ZT_ETHERTYPE_ARP) {
char arpReplyBuf[ZT_ARP_BUF_LENGTH]; char arpReplyBuf[ZT_ARP_BUF_LENGTH];
unsigned int arpReplyLen = 0; unsigned int arpReplyLen = 0;
@ -167,8 +169,7 @@ void NetconEthernetTap::put(const MAC &from,const MAC &to,unsigned int etherType
fprintf(stderr, "ARP reply generated\n"); fprintf(stderr, "ARP reply generated\n");
_handler(_arg,_nwid,_mac,from,ZT_ETHERTYPE_ARP,0,arpReplyBuf,arpReplyLen); _handler(_arg,_nwid,_mac,from,ZT_ETHERTYPE_ARP,0,arpReplyBuf,arpReplyLen);
} }
else if (etherType == ZT_ETHERTYPE_IPV4) { */
// Copy data into a pbuf chain // Copy data into a pbuf chain
struct pbuf *p, *q; struct pbuf *p, *q;
//u16_t len; //u16_t len;
@ -202,10 +203,11 @@ void NetconEthernetTap::put(const MAC &from,const MAC &to,unsigned int etherType
_mac.copyTo(ethhdr->dest.addr, 6); _mac.copyTo(ethhdr->dest.addr, 6);
ethhdr->type = ZT_ETHERTYPE_IPV4; ethhdr->type = ZT_ETHERTYPE_IPV4;
if(interface.input(p, &interface) != ERR_OK) if(interface.input(p, &interface) != ERR_OK) {
{
fprintf(stderr, "IP error (netif->input)\n"); fprintf(stderr, "IP error (netif->input)\n");
} }
else {
fprintf(stderr, "interface.input(...) len = %d\n", len);
} }
} }
@ -342,29 +344,21 @@ void NetconEthernetTap::threadMain()
unsigned long since_etharp; unsigned long since_etharp;
struct timeval tv; struct timeval tv;
fprintf(stderr, "initializing interface\n");
/* set up the faux-netif for LWIP's sake */ /* set up the faux-netif for LWIP's sake */
fprintf(stderr, "netif_add\n"); fprintf(stderr, "netif_add\n");
lwipstack->netif_add(&interface,&ipaddr, &netmask, &gw, NULL, tapif_init, lwipstack->ethernet_input); lwipstack->netif_add(&interface,&ipaddr, &netmask, &gw, NULL, tapif_init, lwipstack->ethernet_input);
fprintf(stderr, "initializing interface\n");
struct tapif *tapif;
tapif = (struct tapif *)mem_malloc(sizeof(struct tapif));
if (!tapif) {
//return ERR_MEM;
}
//interface.state = tapif;
interface.state = this; interface.state = this;
interface.name[0] = 't'; interface.name[0] = 't';
interface.name[1] = 'p'; interface.name[1] = 'p';
interface.output = lwipstack->etharp_output; interface.output = lwipstack->etharp_output;
interface.linkoutput = low_level_output; interface.linkoutput = low_level_output;
interface.mtu = 1500; interface.mtu = 1500;
/* hardware address length */
interface.hwaddr_len = 6; interface.hwaddr_len = 6;
tapif->ethaddr = (struct eth_addr *)&(interface.hwaddr[0]); _mac.copyTo(interface.hwaddr, 6);
interface.flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP; interface.flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_IGMP;
low_level_init(&interface);
fprintf(stderr, "netif_set_default\n"); fprintf(stderr, "netif_set_default\n");
lwipstack->netif_set_default(&interface); lwipstack->netif_set_default(&interface);
@ -383,11 +377,13 @@ void NetconEthernetTap::threadMain()
if(since_tcp > tcp_time) if(since_tcp > tcp_time)
{ {
prev_tcp_time = curr_time+1; prev_tcp_time = curr_time+1;
fprintf(stderr, "tcp_tmr\n");
lwipstack->tcp_tmr(); lwipstack->tcp_tmr();
} }
if(since_etharp > etharp_time) if(since_etharp > etharp_time)
{ {
prev_etharp_time = curr_time; prev_etharp_time = curr_time;
fprintf(stderr, "etharp_tmr\n");
lwipstack->etharp_tmr(); lwipstack->etharp_tmr();
} }
fprintf(stderr, "_run\n"); fprintf(stderr, "_run\n");
@ -660,7 +656,9 @@ void NetconEthernetTap::handle_bind(NetconClient *client, struct bind_st *bind_r
connaddr = (struct sockaddr_in *) &bind_rpc->addr; connaddr = (struct sockaddr_in *) &bind_rpc->addr;
int conn_port = lwipstack->ntohs(connaddr->sin_port); int conn_port = lwipstack->ntohs(connaddr->sin_port);
ip_addr_t conn_addr; ip_addr_t conn_addr;
IP4_ADDR(&conn_addr, 192,168,0,2); //IP4_ADDR(&conn_addr, 192,168,0,2);
conn_addr.addr = *((u32_t *)_ips[0].rawIpData());
/* /*
int ip = connaddr->sin_addr.s_addr; int ip = connaddr->sin_addr.s_addr;
@ -671,6 +669,8 @@ void NetconEthernetTap::handle_bind(NetconClient *client, struct bind_st *bind_r
bytes[3] = (ip >> 24) & 0xFF; bytes[3] = (ip >> 24) & 0xFF;
"binding to: %d.%d.%d.%d", bytes[0], bytes[1], bytes[2], bytes[3] "binding to: %d.%d.%d.%d", bytes[0], bytes[1], bytes[2], bytes[3]
*/ */
fprintf(stderr, "PORT = %d\n", conn_port);
NetconConnection *c = client->getConnectionByTheirFD(bind_rpc->sockfd); NetconConnection *c = client->getConnectionByTheirFD(bind_rpc->sockfd);
if(c) { if(c) {
if(c->pcb->state == CLOSED){ if(c->pcb->state == CLOSED){

View file

@ -188,10 +188,12 @@ private:
static void low_level_init(struct netif *netif) static void low_level_init(struct netif *netif)
{ {
fprintf(stderr, "low_level_init\n");
} }
static err_t tapif_init(struct netif *netif) static err_t tapif_init(struct netif *netif)
{ {
fprintf(stderr, "tapif_init\n");
return ERR_OK; return ERR_OK;
} }
@ -206,12 +208,6 @@ private:
//tapif = (struct tapif *)netif->state; //tapif = (struct tapif *)netif->state;
ZeroTier::NetconEthernetTap *tap = (ZeroTier::NetconEthernetTap*)netif->state; ZeroTier::NetconEthernetTap *tap = (ZeroTier::NetconEthernetTap*)netif->state;
#if 0
if(((double)rand()/(double)RAND_MAX) < 0.2) {
printf("drop output\n");
return ERR_OK;
}
#endif
/* initiate transfer(); */ /* initiate transfer(); */
bufptr = &buf[0]; bufptr = &buf[0];
@ -238,6 +234,8 @@ private:
dest_mac.setTo(ethhdr->dest.addr, 6); dest_mac.setTo(ethhdr->dest.addr, 6);
tap->_handler(tap->_arg,tap->_nwid,src_mac,dest_mac,ZT_ETHERTYPE_IPV4,0,buf,p->tot_len); tap->_handler(tap->_arg,tap->_nwid,src_mac,dest_mac,ZT_ETHERTYPE_IPV4,0,buf,p->tot_len);
fprintf(stderr, "low_level_output(%d)\n", tap->_nwid);
return ERR_OK; return ERR_OK;
} }