* working with libnetfilter_queue and linbetfilter_contrack
@ 2019-06-17 9:42 Mojtaba
2019-06-18 9:46 ` Mojtaba
2019-06-18 9:50 ` Florian Westphal
0 siblings, 2 replies; 10+ messages in thread
From: Mojtaba @ 2019-06-17 9:42 UTC (permalink / raw)
To: netfilter-devel
Hello Everyone,
I am working for a while on two projects (libnetfilter_queue and
linbetfilter_contrack) to get the decision of destined of packets that
arrived in our project. It greats to get the control of all packets.
But I confused a little.
In my solution i just want to forward all packets that are in the same
conditions (for example: all packets are received from specific
IP:PORT address) to another destination. I could add simply add new
rule in llinbetfilter_contrack list (like the samples that are exist
in linbetfilter_contrack/utility project).
But actually i want to use NFQUEUE to get all packets in my user-space
and then add new rule in linbetfilter_contrack list. In other words,
the verdict in my sulotions is not ACCEPT or DROP the packet, it
should add new rule in linbetfilter_contrack list if it is not exist.
Is it possible?
I am thinking about this, But I am not sure it is correct or not?
For example:
static int cb(struct nfq_q_handle *qh, struct nfgenmsg *nfmsg,
struct nfq_data *nfa, void *data)
{
uint32_t id = print_pkt(nfa);
printf("entering callback\n");
if (not exist in list){
ct = nfct_new();
if (ct == NULL) {
perror("nfct_new");
return 0;
}
Add_to_list();
}
return;
}
--
--Mojtaba Esfandiari.S
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: working with libnetfilter_queue and linbetfilter_contrack 2019-06-17 9:42 working with libnetfilter_queue and linbetfilter_contrack Mojtaba @ 2019-06-18 9:46 ` Mojtaba 2019-06-18 9:50 ` Florian Westphal 1 sibling, 0 replies; 10+ messages in thread From: Mojtaba @ 2019-06-18 9:46 UTC (permalink / raw) To: netfilter-devel Hello Everyone, Any idea? On Mon, Jun 17, 2019 at 2:12 PM Mojtaba <mespio@gmail.com> wrote: > > Hello Everyone, > I am working for a while on two projects (libnetfilter_queue and > linbetfilter_contrack) to get the decision of destined of packets that > arrived in our project. It greats to get the control of all packets. > But I confused a little. > In my solution i just want to forward all packets that are in the same > conditions (for example: all packets are received from specific > IP:PORT address) to another destination. I could add simply add new > rule in llinbetfilter_contrack list (like the samples that are exist > in linbetfilter_contrack/utility project). > But actually i want to use NFQUEUE to get all packets in my user-space > and then add new rule in linbetfilter_contrack list. In other words, > the verdict in my sulotions is not ACCEPT or DROP the packet, it > should add new rule in linbetfilter_contrack list if it is not exist. > Is it possible? > I am thinking about this, But I am not sure it is correct or not? > For example: > > static int cb(struct nfq_q_handle *qh, struct nfgenmsg *nfmsg, > struct nfq_data *nfa, void *data) > { > uint32_t id = print_pkt(nfa); > printf("entering callback\n"); > if (not exist in list){ > ct = nfct_new(); > if (ct == NULL) { > perror("nfct_new"); > return 0; > } > Add_to_list(); > } > return; > } > > > > -- > --Mojtaba Esfandiari.S -- --Mojtaba Esfandiari.S ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: working with libnetfilter_queue and linbetfilter_contrack 2019-06-17 9:42 working with libnetfilter_queue and linbetfilter_contrack Mojtaba 2019-06-18 9:46 ` Mojtaba @ 2019-06-18 9:50 ` Florian Westphal 2019-06-18 10:24 ` Mojtaba [not found] ` <CABVi_EyyV6jmB8SxuiUKpHzL9NwMLUA1TPk3X=SOq58BFdG9vA@mail.gmail.com> 1 sibling, 2 replies; 10+ messages in thread From: Florian Westphal @ 2019-06-18 9:50 UTC (permalink / raw) To: Mojtaba; +Cc: netfilter-devel Mojtaba <mespio@gmail.com> wrote: > I am working for a while on two projects (libnetfilter_queue and > linbetfilter_contrack) to get the decision of destined of packets that > arrived in our project. It greats to get the control of all packets. > But I confused a little. > In my solution i just want to forward all packets that are in the same > conditions (for example: all packets are received from specific > IP:PORT address) to another destination. I could add simply add new > rule in llinbetfilter_contrack list (like the samples that are exist > in linbetfilter_contrack/utility project). > But actually i want to use NFQUEUE to get all packets in my user-space > and then add new rule in linbetfilter_contrack list. In other words, > the verdict in my sulotions is not ACCEPT or DROP the packet, it > should add new rule in linbetfilter_contrack list if it is not exist. > Is it possible? Yes, but that doesn't make sense because the kernel will add a conntrack entry itself if no entry existed. Or are you dropping packets in NEW state? Or are you talking about conntrack expectations? A conntrack entry itself doesn't accept or forward a packet. It just means that next packet of same flow will find the entry and rules like iptables ... -m conntrack --ctstate NEW/ESTABLISHED etc. will match. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: working with libnetfilter_queue and linbetfilter_contrack 2019-06-18 9:50 ` Florian Westphal @ 2019-06-18 10:24 ` Mojtaba [not found] ` <CABVi_EyyV6jmB8SxuiUKpHzL9NwMLUA1TPk3X=SOq58BFdG9vA@mail.gmail.com> 1 sibling, 0 replies; 10+ messages in thread From: Mojtaba @ 2019-06-18 10:24 UTC (permalink / raw) To: Florian Westphal; +Cc: netfilter-devel Yes, For this reason, i should add conntrack entry before the kernel do in my userspace project. Because i have to forward the packet to another destination, i used --src-nat and --dst-nat options while adding new conntrack entry. Just like as obvious in below code: nfct_set_attr_u8(ct, ATTR_L3PROTO, AF_INET); nfct_set_attr_u32(ct, ATTR_IPV4_SRC, inet_addr("192.168.133.140")); nfct_set_attr_u32(ct, ATTR_IPV4_DST, inet_addr("192.168.133.108")); nfct_set_attr_u8(ct, ATTR_L4PROTO, IPPROTO_UDP); nfct_set_attr_u16(ct, ATTR_PORT_SRC, htons(6000)); nfct_set_attr_u16(ct, ATTR_PORT_DST, htons(5005)); nfct_setobjopt(ct, NFCT_SOPT_SETUP_REPLY); nfct_set_attr_u32(ct, ATTR_TIMEOUT, 60); nfct_set_attr_u32(ct, ATTR_SNAT_IPV4, inet_addr("192.168.133.108")); nfct_set_attr_u32(ct, ATTR_DNAT_IPV4, inet_addr("192.168.133.150")); nfct_set_attr_u16(ct, ATTR_SNAT_PORT, htons(5070)); nfct_set_attr_u16(ct, ATTR_DNAT_PORT, htons(6000)); As far as i know, it is possible to delegate verdict of packets to user-space, Here is the main point that is deriving me confused. Suppose i used this rule in IPTABLE: iptables -A INPUT -p udp --dport 5005 -j NQUEUE --queue-num 0 Then how we could make verdict to forward the packet to another destination? Do i could implement my solution in this way or i have to use libnetfilter_contrack like as above sample code? WIth Best Regards.Mojtaba On Tue, Jun 18, 2019 at 2:20 PM Florian Westphal <fw@strlen.de> wrote: > > Mojtaba <mespio@gmail.com> wrote: > > I am working for a while on two projects (libnetfilter_queue and > > linbetfilter_contrack) to get the decision of destined of packets that > > arrived in our project. It greats to get the control of all packets. > > But I confused a little. > > In my solution i just want to forward all packets that are in the same > > conditions (for example: all packets are received from specific > > IP:PORT address) to another destination. I could add simply add new > > rule in llinbetfilter_contrack list (like the samples that are exist > > in linbetfilter_contrack/utility project). > > But actually i want to use NFQUEUE to get all packets in my user-space > > and then add new rule in linbetfilter_contrack list. In other words, > > the verdict in my sulotions is not ACCEPT or DROP the packet, it > > should add new rule in linbetfilter_contrack list if it is not exist. > > Is it possible? > > Yes, but that doesn't make sense because the kernel will add a conntrack > entry itself if no entry existed. > Or are you dropping packets in NEW state? > Or are you talking about conntrack expectations? > > A conntrack entry itself doesn't accept or forward a packet. > > It just means that next packet of same flow will find the entry and > rules like iptables ... -m conntrack --ctstate NEW/ESTABLISHED etc. > will match. -- --Mojtaba Esfandiari.S ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <CABVi_EyyV6jmB8SxuiUKpHzL9NwMLUA1TPk3X=SOq58BFdG9vA@mail.gmail.com>]
* Re: working with libnetfilter_queue and linbetfilter_contrack [not found] ` <CABVi_EyyV6jmB8SxuiUKpHzL9NwMLUA1TPk3X=SOq58BFdG9vA@mail.gmail.com> @ 2019-06-18 10:56 ` Florian Westphal [not found] ` <CABVi_ExMpOnaau6sroSXd=Zzc4=F6t0Hv5iCm16q0jxqp5Tjkg@mail.gmail.com> 0 siblings, 1 reply; 10+ messages in thread From: Florian Westphal @ 2019-06-18 10:56 UTC (permalink / raw) To: Mojtaba; +Cc: Florian Westphal, netfilter-devel Mojtaba <mespio@gmail.com> wrote: > Yes, For this reason, i should add conntrack entry before the kernel do in > my userspace project. Because i have to forward the packet to another > destination, i used --src-nat and --dst-nat options while adding new > conntrack entry. Just like as obvious in below code: > nfct_set_attr_u8(ct, ATTR_L3PROTO, AF_INET); > nfct_set_attr_u32(ct, ATTR_IPV4_SRC, inet_addr("192.168.133.140")); > nfct_set_attr_u32(ct, ATTR_IPV4_DST, inet_addr("192.168.133.108")); > nfct_set_attr_u8(ct, ATTR_L4PROTO, IPPROTO_UDP); > nfct_set_attr_u16(ct, ATTR_PORT_SRC, htons(6000)); > nfct_set_attr_u16(ct, ATTR_PORT_DST, htons(5005)); > nfct_setobjopt(ct, NFCT_SOPT_SETUP_REPLY); > nfct_set_attr_u32(ct, ATTR_TIMEOUT, 60); > > *nfct_set_attr_u32(ct, ATTR_SNAT_IPV4, > inet_addr("192.168.133.108"));nfct_set_attr_u32(ct, ATTR_DNAT_IPV4, > inet_addr("192.168.133.150"));nfct_set_attr_u16(ct, ATTR_SNAT_PORT, > htons(5070));* > > *nfct_set_attr_u16(ct, ATTR_DNAT_PORT, htons(6000));* > > As far as i know, it is possible to delegate verdict of packets to > user-space, Here is the main point that is deriving me confused. Suppose i > used this rule in IPTABLE: > iptables -A INPUT -p udp --dport 5005 -j NQUEUE --queue-num 0 > Then how we could make verdict to forward the packet to another > destination? You can't, INPUT is too late and NFQUEUE can't tell kernel to do nat. You could do what you want by placing NFQUEUE in raw PREROUTING, but in that case all packets would get queued to userspace because no conntrack information is available yet. But if you create the conntrack entry, then after accept verdict the kernel would find the conntrack entry in place and perform nat for it. It would be possible to extend nfnetlink_queue to also allow changing NAT properties of a conntrack entry provided the conntrack has not been confirmed yet but it would require kernel changes. So, best option afaics is to use libnetfilter_conntrack to insert a new conntrack entry from the nfq callback. ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <CABVi_ExMpOnaau6sroSXd=Zzc4=F6t0Hv5iCm16q0jxqp5Tjkg@mail.gmail.com>]
* Re: working with libnetfilter_queue and linbetfilter_contrack [not found] ` <CABVi_ExMpOnaau6sroSXd=Zzc4=F6t0Hv5iCm16q0jxqp5Tjkg@mail.gmail.com> @ 2019-06-18 13:23 ` Florian Westphal 2019-06-18 13:39 ` Mojtaba 0 siblings, 1 reply; 10+ messages in thread From: Florian Westphal @ 2019-06-18 13:23 UTC (permalink / raw) To: Mojtaba; +Cc: Florian Westphal, netfilter-devel Mojtaba <mespio@gmail.com> wrote: > Thanks Florian so much. > According the last paragraf of email i get the best way is i should use > libnetfilter_conntrack to insert a new conntrack entry in my userspace that > is called from raw PREROUTING table as NQUEUE callback queue. > Is it right underestanding? Yes, but since you did not exactly say what you're trying to do there might be better ways (ipvs, nft maps, etc). Nfqueue is slow. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: working with libnetfilter_queue and linbetfilter_contrack 2019-06-18 13:23 ` Florian Westphal @ 2019-06-18 13:39 ` Mojtaba 2019-06-18 14:00 ` Florian Westphal 0 siblings, 1 reply; 10+ messages in thread From: Mojtaba @ 2019-06-18 13:39 UTC (permalink / raw) To: Florian Westphal; +Cc: netfilter-devel Thanks a lot. Then let me describe what i am doing. In VoIP networks, One of the ways to solve the one-way audio issue is TURN. In this case both endpoint have to send their media (voice as RTP) to server. In this conditions the server works as B2BUA. Because of the server is processing the media (get media from one hand and relay it to another hand), It usages a lot of resource of server. So I am implementing a new module to do this in kernel level. I test this idea in my laboratory by adding conntrack entry manually in server and all things works great. But i need to get more idea to do this project in best way and high performance, because the QoS very importance in VoIP networks. What is the best way? Let me know more about this. With Best Regards.Mojtaba On Tue, Jun 18, 2019 at 5:53 PM Florian Westphal <fw@strlen.de> wrote: > > Mojtaba <mespio@gmail.com> wrote: > > Thanks Florian so much. > > According the last paragraf of email i get the best way is i should use > > libnetfilter_conntrack to insert a new conntrack entry in my userspace that > > is called from raw PREROUTING table as NQUEUE callback queue. > > Is it right underestanding? > > Yes, but since you did not exactly say what you're trying to do > there might be better ways (ipvs, nft maps, etc). > > Nfqueue is slow. -- --Mojtaba Esfandiari.S ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: working with libnetfilter_queue and linbetfilter_contrack 2019-06-18 13:39 ` Mojtaba @ 2019-06-18 14:00 ` Florian Westphal 2019-06-19 6:50 ` Mojtaba 0 siblings, 1 reply; 10+ messages in thread From: Florian Westphal @ 2019-06-18 14:00 UTC (permalink / raw) To: Mojtaba; +Cc: Florian Westphal, netfilter-devel Mojtaba <mespio@gmail.com> wrote: > Then let me describe what i am doing. > In VoIP networks, One of the ways to solve the one-way audio issue is > TURN. In this case both endpoint have to send their media (voice as > RTP) to server. In this conditions the server works as B2BUA. Because > of the server is processing the media (get media from one hand and > relay it to another hand), It usages a lot of resource of server. So I > am implementing a new module to do this in kernel level. I test this > idea in my laboratory by adding conntrack entry manually in server and > all things works great. But i need to get more idea to do this > project in best way and high performance, because the QoS very > importance in VoIP networks. What is the best way? Let me know more > about this. In that case I wonder why you need nfqueue at all. Isn't it enough for the proxy to inject a conntrack entry with the expected endpoint addresses of the media stream? I would expect that your proxy consumes/reads the sdp messages from the client already, or are you doing that via nfqueue? I would probably use tproxy+normal socket api for the signalling packets and insert conntrack entries for the rtp/media streams via libnetfilter_conntrack, this way, the media streams stay in kernel. ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: working with libnetfilter_queue and linbetfilter_contrack 2019-06-18 14:00 ` Florian Westphal @ 2019-06-19 6:50 ` Mojtaba 2019-06-24 8:30 ` Mojtaba 0 siblings, 1 reply; 10+ messages in thread From: Mojtaba @ 2019-06-19 6:50 UTC (permalink / raw) To: Florian Westphal; +Cc: netfilter-devel Hello, Absolutely of course, i used exactly the same way in my test-case. I added 200 entry in libnetfilter_conntrack for 200 concurrent call. In reality i have to extract the address of media stream for both endpoints in SIP-Proxy server then send them to user-space project in another machine over TCP connection. Here is what i do in test-case project. I have to change conntrack_create_nat.c like below: int i = 10000; int end = 30000 int MAX_CALL = 200; int j = 10000 + (MAX_CALL*4-4); while(i<=j) { nfct_set_attr_u8(ct, ATTR_L3PROTO, AF_INET); nfct_set_attr_u32(ct, ATTR_IPV4_SRC, inet_addr("192.168.133.140")); //endpoint A nfct_set_attr_u32(ct, ATTR_IPV4_DST, inet_addr("192.168.133.108")); //nfct_set_attr_u8(ct, ATTR_L4PROTO, IPPROTO_TCP); nfct_set_attr_u8(ct, ATTR_L4PROTO, IPPROTO_UDP); nfct_set_attr_u16(ct, ATTR_PORT_SRC, htons(6000)); nfct_set_attr_u16(ct, ATTR_PORT_DST, htons(i)); nfct_setobjopt(ct, NFCT_SOPT_SETUP_REPLY); //nfct_set_attr_u8(ct, ATTR_TCP_STATE, TCP_CONNTRACK_SYN_SENT); nfct_set_attr_u32(ct, ATTR_TIMEOUT, 200); nfct_set_attr_u32(ct, ATTR_SNAT_IPV4, inet_addr("192.168.133.108")); nfct_set_attr_u32(ct, ATTR_DNAT_IPV4, inet_addr("192.168.133.150")); //endpoint B nfct_set_attr_u16(ct, ATTR_SNAT_PORT, htons(i+2)); nfct_set_attr_u16(ct, ATTR_DNAT_PORT, htons(6000)); ret = nfct_query(h, NFCT_Q_CREATE, ct); i+=4; printf("TEST: create conntrack "); if (ret == -1) printf("(%d)(%s)\n", ret, strerror(errno)); else printf("(OK)\n"); } But I have to add a rule in IPTABLE to not add any conntrack entry by kernel, because as soos as the callee answer the call(received 200OK SIP MESSAGE), it will start to send it's media (RTP).In this regards it would create conntrack entry sooner than user-space. iptables -A INPUT -p udp --dport 10000:30000 -j DROP Is it right table to deny adding any conntrack entry or not? Anyway i appreciate your guide. I was in dilemma to used libnetfilter_conntrack or libnetfilter_queue. Thanks WIth Best Regards.Mojtaba On Tue, Jun 18, 2019 at 6:30 PM Florian Westphal <fw@strlen.de> wrote: > > Mojtaba <mespio@gmail.com> wrote: > > Then let me describe what i am doing. > > In VoIP networks, One of the ways to solve the one-way audio issue is > > TURN. In this case both endpoint have to send their media (voice as > > RTP) to server. In this conditions the server works as B2BUA. Because > > of the server is processing the media (get media from one hand and > > relay it to another hand), It usages a lot of resource of server. So I > > am implementing a new module to do this in kernel level. I test this > > idea in my laboratory by adding conntrack entry manually in server and > > all things works great. But i need to get more idea to do this > > project in best way and high performance, because the QoS very > > importance in VoIP networks. What is the best way? Let me know more > > about this. > > In that case I wonder why you need nfqueue at all. > > Isn't it enough for the proxy to inject a conntrack entry with the > expected endpoint addresses of the media stream? > > I would expect that your proxy consumes/reads the sdp messages from > the client already, or are you doing that via nfqueue? > > I would probably use tproxy+normal socket api for the signalling > packets and insert conntrack entries for the rtp/media streams > via libnetfilter_conntrack, this way, the media streams stay in kernel. -- --Mojtaba Esfandiari.S ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: working with libnetfilter_queue and linbetfilter_contrack 2019-06-19 6:50 ` Mojtaba @ 2019-06-24 8:30 ` Mojtaba 0 siblings, 0 replies; 10+ messages in thread From: Mojtaba @ 2019-06-24 8:30 UTC (permalink / raw) To: Florian Westphal; +Cc: netfilter-devel Hello, I appreciate your guide again, That works great. It would be a creative method to out of concern of one-way issue in VoIP networks. The new module based on this method would be released in Kamailio project as soon. Keeping an eye out for it. Thanks. With regards.Mojtaba On Wed, Jun 19, 2019 at 11:20 AM Mojtaba <mespio@gmail.com> wrote: > > Hello, > Absolutely of course, i used exactly the same way in my test-case. I > added 200 entry in libnetfilter_conntrack for 200 concurrent call. In > reality i have to extract the address of media stream for both > endpoints in SIP-Proxy server then send them to user-space project in > another machine over TCP connection. Here is what i do in test-case > project. I have to change conntrack_create_nat.c like below: > > int i = 10000; > int end = 30000 > int MAX_CALL = 200; > int j = 10000 + (MAX_CALL*4-4); > while(i<=j) { > > nfct_set_attr_u8(ct, ATTR_L3PROTO, AF_INET); > nfct_set_attr_u32(ct, ATTR_IPV4_SRC, inet_addr("192.168.133.140")); > //endpoint A > nfct_set_attr_u32(ct, ATTR_IPV4_DST, inet_addr("192.168.133.108")); > > //nfct_set_attr_u8(ct, ATTR_L4PROTO, IPPROTO_TCP); > nfct_set_attr_u8(ct, ATTR_L4PROTO, IPPROTO_UDP); > nfct_set_attr_u16(ct, ATTR_PORT_SRC, htons(6000)); > nfct_set_attr_u16(ct, ATTR_PORT_DST, htons(i)); > > nfct_setobjopt(ct, NFCT_SOPT_SETUP_REPLY); > > //nfct_set_attr_u8(ct, ATTR_TCP_STATE, TCP_CONNTRACK_SYN_SENT); > nfct_set_attr_u32(ct, ATTR_TIMEOUT, 200); > > nfct_set_attr_u32(ct, ATTR_SNAT_IPV4, inet_addr("192.168.133.108")); > nfct_set_attr_u32(ct, ATTR_DNAT_IPV4, > inet_addr("192.168.133.150")); //endpoint B > > nfct_set_attr_u16(ct, ATTR_SNAT_PORT, htons(i+2)); > nfct_set_attr_u16(ct, ATTR_DNAT_PORT, htons(6000)); > > ret = nfct_query(h, NFCT_Q_CREATE, ct); > i+=4; > printf("TEST: create conntrack "); > if (ret == -1) > printf("(%d)(%s)\n", ret, strerror(errno)); > else > printf("(OK)\n"); > } > > But I have to add a rule in IPTABLE to not add any conntrack entry by > kernel, because as soos as the callee answer the call(received 200OK > SIP MESSAGE), it will start to send it's media (RTP).In this regards > it would create conntrack entry sooner than user-space. > iptables -A INPUT -p udp --dport 10000:30000 -j DROP > Is it right table to deny adding any conntrack entry or not? > Anyway i appreciate your guide. I was in dilemma to used > libnetfilter_conntrack or libnetfilter_queue. Thanks > WIth Best Regards.Mojtaba > > > > On Tue, Jun 18, 2019 at 6:30 PM Florian Westphal <fw@strlen.de> wrote: > > > > Mojtaba <mespio@gmail.com> wrote: > > > Then let me describe what i am doing. > > > In VoIP networks, One of the ways to solve the one-way audio issue is > > > TURN. In this case both endpoint have to send their media (voice as > > > RTP) to server. In this conditions the server works as B2BUA. Because > > > of the server is processing the media (get media from one hand and > > > relay it to another hand), It usages a lot of resource of server. So I > > > am implementing a new module to do this in kernel level. I test this > > > idea in my laboratory by adding conntrack entry manually in server and > > > all things works great. But i need to get more idea to do this > > > project in best way and high performance, because the QoS very > > > importance in VoIP networks. What is the best way? Let me know more > > > about this. > > > > In that case I wonder why you need nfqueue at all. > > > > Isn't it enough for the proxy to inject a conntrack entry with the > > expected endpoint addresses of the media stream? > > > > I would expect that your proxy consumes/reads the sdp messages from > > the client already, or are you doing that via nfqueue? > > > > I would probably use tproxy+normal socket api for the signalling > > packets and insert conntrack entries for the rtp/media streams > > via libnetfilter_conntrack, this way, the media streams stay in kernel. > > > > -- > --Mojtaba Esfandiari.S -- --Mojtaba Esfandiari.S ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2019-06-24 8:31 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-06-17 9:42 working with libnetfilter_queue and linbetfilter_contrack Mojtaba
2019-06-18 9:46 ` Mojtaba
2019-06-18 9:50 ` Florian Westphal
2019-06-18 10:24 ` Mojtaba
[not found] ` <CABVi_EyyV6jmB8SxuiUKpHzL9NwMLUA1TPk3X=SOq58BFdG9vA@mail.gmail.com>
2019-06-18 10:56 ` Florian Westphal
[not found] ` <CABVi_ExMpOnaau6sroSXd=Zzc4=F6t0Hv5iCm16q0jxqp5Tjkg@mail.gmail.com>
2019-06-18 13:23 ` Florian Westphal
2019-06-18 13:39 ` Mojtaba
2019-06-18 14:00 ` Florian Westphal
2019-06-19 6:50 ` Mojtaba
2019-06-24 8:30 ` Mojtaba
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).