亦庄编译通过版本

This commit is contained in:
liuyang
2018-12-01 17:51:39 +08:00
parent b5f68ae7d5
commit af3e60d3e1
5 changed files with 48 additions and 12 deletions

View File

@@ -30,11 +30,13 @@ size_t add_option(char* buff, size_t size, uint16_t opt_type, uint16_t opt_len,
return 0;
}
*((uint16_t*)buff)=opt_type;
*((uint16_t*)(buff+sizeof(uint16_t))=opt_len;
*((uint16_t*)(buff+sizeof(uint16_t)))=opt_len;
memcpy(buff+sizeof(uint16_t)*2, opt_cont, opt_len);
return opt_len+sizeof(uint16_t)*2;
}
int kni_set_tlvinfo(char* buf, int buflen, struct kni_lqueue_datainfo datainfo)
int kni_set_tlvinfo(char* buf, int buflen, struct kni_repaired_fds datainfo)
{
int tlv_len = 0;
@@ -45,10 +47,10 @@ int kni_set_tlvinfo(char* buf, int buflen, struct kni_lqueue_datainfo datainfo)
tlv_len += sizeof(struct kni_tlv_header);
tlv_len+=add_option(buf+tlv_len,buflen-tlv_len, KNI_TLV_TYPE_PROTOCOL, (uint16_t)sizeof(int), &(datainfo.protocol));
tlv_len+=add_option(buf+tlv_len,buflen-tlv_len, KNI_TLV_TYPE_KEYRING_ID, (uint16_t)sizeof(int), &(datainfo.keyring));
tlv_len+=add_option(buf+tlv_len,buflen-tlv_len, KNI_TLV_TYPE_PROTOCOL, (uint16_t)sizeof(int), (char*)&(datainfo.protocol));
tlv_len+=add_option(buf+tlv_len,buflen-tlv_len, KNI_TLV_TYPE_KEYRING_ID, (uint16_t)sizeof(int), (char*)&(datainfo.keyring));
assert(tlv_len=<buflen);
assert(tlv_len<=buflen);
return tlv_len;
@@ -278,6 +280,37 @@ int tun_error(int i,int* fds)
}
int tun_alloc(char *dev)
{
struct ifreq ifr;
int fd, err;
if ((fd = open("/dev/net/tun", O_RDWR)) < 0)
{
printf("open function errno %d is %s\n",errno,strerror(errno));
return -1;
}
memset(&ifr, 0, sizeof(ifr));
ifr.ifr_flags = IFF_TUN | IFF_NO_PI;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>tun<75><6E><EFBFBD><EFBFBD>Ϣ
if (*dev)
{
strncpy(ifr.ifr_name, dev, IFNAMSIZ);
}
if ((err = ioctl(fd, TUNSETIFF, (void *) &ifr)) < 0)
{
printf("ioctl function err is %d,errno %d is %s\n",err,errno,strerror(errno));
close(fd);
return -1;
}
strcpy(dev, ifr.ifr_name);
return fd;
}
/* Flags: IFF_TUN - TUN device (no Ethernet headers)
* IFF_TAP - TAP device
@@ -351,7 +384,6 @@ int tun_alloc_mq(char *dev, int queues, int *fds,char* tun_path)
MESA_load_profile_string_def((char*)KNI_CONF_FILENAME,(char*)KNI_TUN_MODE,(char*)"tun_name",g_kni_comminfo.tun_name,KNI_CONF_MAXLEN,"tun0");
// g_kni_comminfo.tun_threadnum=g_iThreadNum;
if(g_kni_comminfo.tun_threadnum<=0)
{
MESA_handle_runtime_log(g_kni_comminfo.logger, RLOG_LV_FATAL,KNI_MODULE_INIT,"thread_num:%d,action:%s",g_kni_comminfo.thread_num,KNI_ACTION_EXIT);
@@ -359,6 +391,7 @@ int tun_alloc_mq(char *dev, int queues, int *fds,char* tun_path)
}
g_kni_comminfo.fd_tun=ALLOC(int, g_kni_comminfo.tun_threadnum);
ret=tun_alloc_mq(g_kni_comminfo.tun_name,g_kni_comminfo.tun_threadnum,g_kni_comminfo.fd_tun,tun_path);