@@ -1070,6 +1070,9 @@ static void ndisc_router_discovery(struct sk_buff *skb)
10701070 optlen = (skb_tail_pointer (skb ) - skb_transport_header (skb )) -
10711071 sizeof (struct ra_msg );
10721072
1073+ ND_PRINTK (2 , info ,
1074+ "RA: %s, dev: %s\n" ,
1075+ __func__ , skb -> dev -> name );
10731076 if (!(ipv6_addr_type (& ipv6_hdr (skb )-> saddr ) & IPV6_ADDR_LINKLOCAL )) {
10741077 ND_PRINTK (2 , warn , "RA: source address is not link-local\n" );
10751078 return ;
@@ -1102,13 +1105,21 @@ static void ndisc_router_discovery(struct sk_buff *skb)
11021105 return ;
11031106 }
11041107
1105- if (!ipv6_accept_ra (in6_dev ))
1108+ if (!ipv6_accept_ra (in6_dev )) {
1109+ ND_PRINTK (2 , info ,
1110+ "RA: %s, did not accept ra for dev: %s\n" ,
1111+ __func__ , skb -> dev -> name );
11061112 goto skip_linkparms ;
1113+ }
11071114
11081115#ifdef CONFIG_IPV6_NDISC_NODETYPE
11091116 /* skip link-specific parameters from interior routers */
1110- if (skb -> ndisc_nodetype == NDISC_NODETYPE_NODEFAULT )
1117+ if (skb -> ndisc_nodetype == NDISC_NODETYPE_NODEFAULT ) {
1118+ ND_PRINTK (2 , info ,
1119+ "RA: %s, nodetype is NODEFAULT, dev: %s\n" ,
1120+ __func__ , skb -> dev -> name );
11111121 goto skip_linkparms ;
1122+ }
11121123#endif
11131124
11141125 if (in6_dev -> if_flags & IF_RS_SENT ) {
@@ -1130,11 +1141,20 @@ static void ndisc_router_discovery(struct sk_buff *skb)
11301141 (ra_msg -> icmph .icmp6_addrconf_other ?
11311142 IF_RA_OTHERCONF : 0 );
11321143
1133- if (!in6_dev -> cnf .accept_ra_defrtr )
1144+ if (!in6_dev -> cnf .accept_ra_defrtr ) {
1145+ ND_PRINTK (2 , info ,
1146+ "RA: %s, defrtr is false for dev: %s\n" ,
1147+ __func__ , skb -> dev -> name );
11341148 goto skip_defrtr ;
1149+ }
11351150
1136- if (ipv6_chk_addr (dev_net (in6_dev -> dev ), & ipv6_hdr (skb )-> saddr , NULL , 0 ))
1151+ if (ipv6_chk_addr (dev_net (in6_dev -> dev ), & ipv6_hdr (skb )-> saddr ,
1152+ NULL , 0 )) {
1153+ ND_PRINTK (2 , info ,
1154+ "RA: %s, chk_addr failed for dev: %s\n" ,
1155+ __func__ , skb -> dev -> name );
11371156 goto skip_defrtr ;
1157+ }
11381158
11391159 lifetime = ntohs (ra_msg -> icmph .icmp6_rt_lifetime );
11401160
@@ -1163,8 +1183,10 @@ static void ndisc_router_discovery(struct sk_buff *skb)
11631183 rt = NULL ;
11641184 }
11651185
1186+ ND_PRINTK (3 , info , "RA: rt: %p lifetime: %d, for dev: %s\n" ,
1187+ rt , lifetime , skb -> dev -> name );
11661188 if (rt == NULL && lifetime ) {
1167- ND_PRINTK (3 , dbg , "RA: adding default router\n" );
1189+ ND_PRINTK (3 , info , "RA: adding default router\n" );
11681190
11691191 rt = rt6_add_dflt_router (& ipv6_hdr (skb )-> saddr , skb -> dev , pref );
11701192 if (rt == NULL ) {
@@ -1260,12 +1282,21 @@ static void ndisc_router_discovery(struct sk_buff *skb)
12601282 NEIGH_UPDATE_F_ISROUTER );
12611283 }
12621284
1263- if (!ipv6_accept_ra (in6_dev ))
1285+ if (!ipv6_accept_ra (in6_dev )) {
1286+ ND_PRINTK (2 , info ,
1287+ "RA: %s, accept_ra is false for dev: %s\n" ,
1288+ __func__ , skb -> dev -> name );
12641289 goto out ;
1290+ }
12651291
12661292#ifdef CONFIG_IPV6_ROUTE_INFO
1267- if (ipv6_chk_addr (dev_net (in6_dev -> dev ), & ipv6_hdr (skb )-> saddr , NULL , 0 ))
1293+ if (ipv6_chk_addr (dev_net (in6_dev -> dev ), & ipv6_hdr (skb )-> saddr ,
1294+ NULL , 0 )) {
1295+ ND_PRINTK (2 , info ,
1296+ "RA: %s, chk-addr (route info) is false for dev: %s\n" ,
1297+ __func__ , skb -> dev -> name );
12681298 goto skip_routeinfo ;
1299+ }
12691300
12701301 if (in6_dev -> cnf .accept_ra_rtr_pref && ndopts .nd_opts_ri ) {
12711302 struct nd_opt_hdr * p ;
@@ -1293,8 +1324,12 @@ static void ndisc_router_discovery(struct sk_buff *skb)
12931324
12941325#ifdef CONFIG_IPV6_NDISC_NODETYPE
12951326 /* skip link-specific ndopts from interior routers */
1296- if (skb -> ndisc_nodetype == NDISC_NODETYPE_NODEFAULT )
1327+ if (skb -> ndisc_nodetype == NDISC_NODETYPE_NODEFAULT ) {
1328+ ND_PRINTK (2 , info ,
1329+ "RA: %s, nodetype is NODEFAULT (interior routes), dev: %s\n" ,
1330+ __func__ , skb -> dev -> name );
12971331 goto out ;
1332+ }
12981333#endif
12991334
13001335 if (in6_dev -> cnf .accept_ra_pinfo && ndopts .nd_opts_pi ) {
0 commit comments