(dpdk f-stack)-tcp代理访问rser时本地lport选择方法
Posted ygmdream
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(dpdk f-stack)-tcp代理访问rser时本地lport选择方法相关的知识,希望对你有一定的参考价值。
rser:后端真实服务器;
lport:代理访问rser时,选择的本地端口;
nginx作为代理,连接rser时即执行connect函数,最终由FreeBSD中in_pcbconnect_setup选择一个本地未使用的lport与rser端口通信。
in_pcbconnect_setup
...
if (lport == 0)
struct ifaddr *ifa;
struct ifnet *ifp;
struct sockaddr_in ifp_sin;
unsigned loop_count = 0;
bzero(&ifp_sin, sizeof(ifp_sin));
ifp_sin.sin_addr.s_addr = laddr.s_addr;
ifp_sin.sin_family = AF_INET;
ifp_sin.sin_len = sizeof(ifp_sin);
ifa = ifa_ifwithnet((struct sockaddr *)&ifp_sin, 0, RT_ALL_FIBS);
if (ifa == NULL)
ifp_sin.sin_addr.s_addr = faddr.s_addr;
ifa = ifa_ifwithnet((struct s
以上是关于(dpdk f-stack)-tcp代理访问rser时本地lport选择方法的主要内容,如果未能解决你的问题,请参考以下文章