fix some issue.

This commit is contained in:
fengbojiang 2022-09-02 19:41:14 +08:00
parent ff8fd2bdc7
commit f7da542ada
5 changed files with 2 additions and 123 deletions

View File

@ -89,11 +89,6 @@ addr=192.168.1.2
netmask=255.255.255.0 netmask=255.255.255.0
broadcast=192.168.1.255 broadcast=192.168.1.255
gateway=192.168.1.1 gateway=192.168.1.1
# IPv6 net addr
# Optional parameters
#addr6=ff::02
#prefix_len=64
#gateway6=ff::01
# set interface name, Optional parameter. # set interface name, Optional parameter.
#if_name=eno7 #if_name=eno7

View File

@ -74,16 +74,13 @@ struct ff_port_cfg {
char *addr6_str; char *addr6_str;
char *gateway6_str; char *gateway6_str;
uint8_t prefix_len; uint8_t prefix_len;
char *vip_addr6_str; char *vip_addr6_str;
char **vip_addr6_array; char **vip_addr6_array;
uint32_t nb_vip6; uint32_t nb_vip6;
uint8_t vip_prefix_len; uint8_t vip_prefix_len;
#endif #endif
char *pcap;
uint16_t snaplen;
uint32_t savelen;
int nb_lcores; int nb_lcores;
int nb_slaves; int nb_slaves;
uint16_t lcore_list[DPDK_MAX_LCORE]; uint16_t lcore_list[DPDK_MAX_LCORE];

View File

@ -83,7 +83,7 @@ int lo_set_defaultaddr(void)
int ret; int ret;
IFNET_WLOCK(); IFNET_WLOCK();
TAILQ_FOREACH(ifp, &V_ifnet, if_link) CK_STAILQ_FOREACH(ifp, &V_ifnet, if_link)
if ( (ifp->if_flags & IFF_LOOPBACK) != 0 ) if ( (ifp->if_flags & IFF_LOOPBACK) != 0 )
break; break;
IFNET_WUNLOCK(); IFNET_WUNLOCK();

View File

@ -926,13 +926,10 @@ ff_recvmsg(int s, struct msghdr *msg, int flags)
freebsd2linux_sockaddr(linux_msg->msg_name, msg->msg_name); freebsd2linux_sockaddr(linux_msg->msg_name, msg->msg_name);
linux_msg->msg_flags = msg->msg_flags; linux_msg->msg_flags = msg->msg_flags;
msg->msg_flags = 0; msg->msg_flags = 0;
<<<<<<< HEAD
=======
if(msg->msg_control) { if(msg->msg_control) {
freebsd2linux_cmsghdr(linux_msg); freebsd2linux_cmsghdr(linux_msg);
} }
>>>>>>> dev
return (rc); return (rc);
kern_fail: kern_fail:

View File

@ -300,65 +300,6 @@ ff_zc_mbuf_read(struct ff_zc_mbuf *m, const char *data, int len)
return 0; 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 * void *
ff_mbuf_gethdr(void *pkt, uint16_t total, void *data, ff_mbuf_gethdr(void *pkt, uint16_t total, void *data,
uint16_t len, uint8_t rx_csum) 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); 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 static int
ff_veth_setvaddr(struct ff_veth_softc *sc, struct ff_port_cfg *cfg) ff_veth_setvaddr(struct ff_veth_softc *sc, struct ff_port_cfg *cfg)
{ {