Comments: 1. Please add a white character after "tipc:" in patch subject. 2. Please clearly describe this patch's purpose in patch commit head.
Thanks, Ying On 09/27/2018 05:08 PM, Hoang Le wrote: > Signed-off-by: Hoang Le <hoang.h...@dektech.com.au> > --- > net/tipc/udp_media.c | 18 +++++++++++++++--- > 1 file changed, 15 insertions(+), 3 deletions(-) > > diff --git a/net/tipc/udp_media.c b/net/tipc/udp_media.c > index 9783101bc4a9..ec3d31cdb232 100644 > --- a/net/tipc/udp_media.c > +++ b/net/tipc/udp_media.c > @@ -650,6 +650,7 @@ static int tipc_udp_enable(struct net *net, struct > tipc_bearer *b, > struct udp_tunnel_sock_cfg tuncfg = {NULL}; > struct nlattr *opts[TIPC_NLA_UDP_MAX + 1]; > u8 node_id[NODE_ID_LEN] = {0,}; > + int rmcast = 0; > > ub = kzalloc(sizeof(*ub), GFP_ATOMIC); > if (!ub) > @@ -680,6 +681,9 @@ static int tipc_udp_enable(struct net *net, struct > tipc_bearer *b, > if (err) > goto err; > > + /* Checking remote ip address */ > + rmcast = tipc_udp_is_mcast_addr(&remote); > + > /* Autoconfigure own node identity if needed */ > if (!tipc_own_id(net)) { > memcpy(node_id, local.ipv6.in6_u.u6_addr8, 16); > @@ -705,7 +709,12 @@ static int tipc_udp_enable(struct net *net, struct > tipc_bearer *b, > goto err; > } > udp_conf.family = AF_INET; > - udp_conf.local_ip.s_addr = htonl(INADDR_ANY); > + > + /* Switch to use ANY to recive packets from group */ > + if (rmcast) > + udp_conf.local_ip.s_addr = htonl(INADDR_ANY); > + else > + udp_conf.local_ip.s_addr = local.ipv4.s_addr; > udp_conf.use_udp_checksums = false; > ub->ifindex = dev->ifindex; > if (tipc_mtu_bad(dev, sizeof(struct iphdr) + > @@ -719,7 +728,10 @@ static int tipc_udp_enable(struct net *net, struct > tipc_bearer *b, > udp_conf.family = AF_INET6; > udp_conf.use_udp6_tx_checksums = true; > udp_conf.use_udp6_rx_checksums = true; > - udp_conf.local_ip6 = in6addr_any; > + if (rmcast) > + udp_conf.local_ip6 = in6addr_any; > + else > + udp_conf.local_ip6 = local.ipv6; > b->mtu = 1280; > #endif > } else { > @@ -741,7 +753,7 @@ static int tipc_udp_enable(struct net *net, struct > tipc_bearer *b, > * is used if it's a multicast address. > */ > memcpy(&b->bcast_addr.value, &remote, sizeof(remote)); > - if (tipc_udp_is_mcast_addr(&remote)) > + if (rmcast) > err = enable_mcast(ub, &remote); > else > err = tipc_udp_rcast_add(b, &remote); > _______________________________________________ tipc-discussion mailing list tipc-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tipc-discussion