mirror of https://github.com/F-Stack/f-stack.git
fix some issue.
This commit is contained in:
parent
ff8fd2bdc7
commit
f7da542ada
|
@ -89,11 +89,6 @@ addr=192.168.1.2
|
|||
netmask=255.255.255.0
|
||||
broadcast=192.168.1.255
|
||||
gateway=192.168.1.1
|
||||
# IPv6 net addr
|
||||
# Optional parameters
|
||||
#addr6=ff::02
|
||||
#prefix_len=64
|
||||
#gateway6=ff::01
|
||||
# set interface name, Optional parameter.
|
||||
#if_name=eno7
|
||||
|
||||
|
|
|
@ -74,16 +74,13 @@ struct ff_port_cfg {
|
|||
char *addr6_str;
|
||||
char *gateway6_str;
|
||||
uint8_t prefix_len;
|
||||
|
||||
char *vip_addr6_str;
|
||||
char **vip_addr6_array;
|
||||
uint32_t nb_vip6;
|
||||
uint8_t vip_prefix_len;
|
||||
#endif
|
||||
|
||||
char *pcap;
|
||||
uint16_t snaplen;
|
||||
uint32_t savelen;
|
||||
|
||||
int nb_lcores;
|
||||
int nb_slaves;
|
||||
uint16_t lcore_list[DPDK_MAX_LCORE];
|
||||
|
|
|
@ -83,7 +83,7 @@ int lo_set_defaultaddr(void)
|
|||
int ret;
|
||||
|
||||
IFNET_WLOCK();
|
||||
TAILQ_FOREACH(ifp, &V_ifnet, if_link)
|
||||
CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link)
|
||||
if ( (ifp->if_flags & IFF_LOOPBACK) != 0 )
|
||||
break;
|
||||
IFNET_WUNLOCK();
|
||||
|
|
|
@ -926,13 +926,10 @@ ff_recvmsg(int s, struct msghdr *msg, int flags)
|
|||
freebsd2linux_sockaddr(linux_msg->msg_name, msg->msg_name);
|
||||
linux_msg->msg_flags = msg->msg_flags;
|
||||
msg->msg_flags = 0;
|
||||
<<<<<<< HEAD
|
||||
=======
|
||||
|
||||
if(msg->msg_control) {
|
||||
freebsd2linux_cmsghdr(linux_msg);
|
||||
}
|
||||
>>>>>>> dev
|
||||
|
||||
return (rc);
|
||||
kern_fail:
|
||||
|
|
110
lib/ff_veth.c
110
lib/ff_veth.c
|
@ -300,65 +300,6 @@ ff_zc_mbuf_read(struct ff_zc_mbuf *m, const char *data, int len)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int ff_zc_mbuf_get(struct ff_zc_mbuf *m, int len) {
|
||||
struct mbuf *mb;
|
||||
|
||||
if (m == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
mb = m_getm2(NULL, max(len, 1), M_WAITOK, MT_DATA, 0);
|
||||
if (mb == NULL) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
m->bsd_mbuf = m->bsd_mbuf_off = mb;
|
||||
m->off = 0;
|
||||
m->len = len;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
ff_zc_mbuf_write(struct ff_zc_mbuf *zm, const char *data, int len)
|
||||
{
|
||||
int ret, length, progress = 0;
|
||||
struct mbuf *m, *mb;
|
||||
|
||||
if (zm == NULL) {
|
||||
return -1;
|
||||
}
|
||||
m = (struct mbuf *)zm->bsd_mbuf_off;
|
||||
|
||||
if (zm->off + len > zm->len) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
for (mb = m; mb != NULL; mb = mb->m_next) {
|
||||
length = min(M_TRAILINGSPACE(mb), len - progress);
|
||||
bcopy(data + progress, mtod(mb, char *) + mb->m_len, length);
|
||||
|
||||
mb->m_len += length;
|
||||
progress += length;
|
||||
if (len == progress) {
|
||||
break;
|
||||
}
|
||||
//if (flags & M_PKTHDR)
|
||||
// m->m_pkthdr.len += length;
|
||||
}
|
||||
zm->off += len;
|
||||
zm->bsd_mbuf_off = mb;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
||||
int
|
||||
ff_zc_mbuf_read(struct ff_zc_mbuf *m, const char *data, int len)
|
||||
{
|
||||
// DOTO: Support read zero copy
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *
|
||||
ff_mbuf_gethdr(void *pkt, uint16_t total, void *data,
|
||||
uint16_t len, uint8_t rx_csum)
|
||||
|
@ -496,57 +437,6 @@ ff_veth_set_gateway(struct ff_veth_softc *sc)
|
|||
return rib_action(RT_DEFAULT_FIB, RTM_ADD, &info, &rci);
|
||||
}
|
||||
|
||||
#ifdef INET6
|
||||
static int
|
||||
ff_veth_setaddr6(struct ff_veth_softc *sc)
|
||||
{
|
||||
struct in6_aliasreq ifr6;
|
||||
bzero(&ifr6, sizeof(ifr6));
|
||||
strcpy(ifr6.ifra_name, sc->ifp->if_dname);
|
||||
|
||||
ifr6.ifra_addr.sin6_len = sizeof ifr6.ifra_addr;
|
||||
ifr6.ifra_addr.sin6_family = AF_INET6;
|
||||
ifr6.ifra_addr.sin6_addr = sc->ip6;
|
||||
|
||||
ifr6.ifra_prefixmask.sin6_len = sizeof ifr6.ifra_prefixmask;
|
||||
memset(&ifr6.ifra_prefixmask.sin6_addr, 0xff, sc->prefix_length / 8);
|
||||
uint8_t mask_size_mod = sc->prefix_length % 8;
|
||||
if (mask_size_mod)
|
||||
{
|
||||
ifr6.ifra_prefixmask.sin6_addr.__u6_addr.__u6_addr8[sc->prefix_length / 8] = ((1 << mask_size_mod) - 1) << (8 - mask_size_mod);
|
||||
}
|
||||
|
||||
ifr6.ifra_lifetime.ia6t_pltime = ifr6.ifra_lifetime.ia6t_vltime = ND6_INFINITE_LIFETIME;
|
||||
|
||||
struct socket *so = NULL;
|
||||
socreate(AF_INET6, &so, SOCK_DGRAM, 0, curthread->td_ucred, curthread);
|
||||
int ret = ifioctl(so, SIOCAIFADDR_IN6, (caddr_t)&ifr6, curthread);
|
||||
|
||||
sofree(so);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int
|
||||
ff_veth_set_gateway6(struct ff_veth_softc *sc)
|
||||
{
|
||||
struct sockaddr_in6 gw, dst, nm;
|
||||
|
||||
bzero(&gw, sizeof(gw));
|
||||
bzero(&dst, sizeof(dst));
|
||||
bzero(&nm, sizeof(nm));
|
||||
|
||||
gw.sin6_len = dst.sin6_len = nm.sin6_len = sizeof(struct sockaddr_in6);
|
||||
gw.sin6_family = dst.sin6_family = AF_INET6;
|
||||
|
||||
gw.sin6_addr = sc->gateway6;
|
||||
//dst.sin6_addr = nm.sin6_addr = 0;
|
||||
|
||||
return rtrequest_fib(RTM_ADD, (struct sockaddr *)&dst, (struct sockaddr *)&gw,
|
||||
(struct sockaddr *)&nm, RTF_GATEWAY, NULL, RT_DEFAULT_FIB);
|
||||
}
|
||||
#endif /* INET6 */
|
||||
|
||||
static int
|
||||
ff_veth_setvaddr(struct ff_veth_softc *sc, struct ff_port_cfg *cfg)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue