• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt/router/iproute2-3.x/ip/

Lines Matching refs:filter

115 } filter;
119 if (rtnl_send_check(&rth, filter.flushb, filter.flushp) < 0) {
123 filter.flushp = 0;
142 if (filter.cloned == !(r->rtm_flags&RTM_F_CLONED))
146 if (filter.tb) {
147 if (filter.tb == RT_TABLE_LOCAL) {
150 } else if (filter.tb == RT_TABLE_MAIN) {
158 if (filter.tb > 0 && filter.tb != table)
161 if ((filter.protocol^r->rtm_protocol)&filter.protocolmask)
163 if ((filter.scope^r->rtm_scope)&filter.scopemask)
165 if ((filter.type^r->rtm_type)&filter.typemask)
167 if ((filter.tos^r->rtm_tos)&filter.tosmask)
169 if (filter.rdst.family &&
170 (r->rtm_family != filter.rdst.family || filter.rdst.bitlen > r->rtm_dst_len))
172 if (filter.mdst.family &&
173 (r->rtm_family != filter.mdst.family ||
174 (filter.mdst.bitlen >= 0 && filter.mdst.bitlen < r->rtm_dst_len)))
176 if (filter.rsrc.family &&
177 (r->rtm_family != filter.rsrc.family || filter.rsrc.bitlen > r->rtm_src_len))
179 if (filter.msrc.family &&
180 (r->rtm_family != filter.msrc.family ||
181 (filter.msrc.bitlen >= 0 && filter.msrc.bitlen < r->rtm_src_len)))
183 if (filter.rvia.family && r->rtm_family != filter.rvia.family)
185 if (filter.rprefsrc.family && r->rtm_family != filter.rprefsrc.family)
192 if (filter.rsrc.family || filter.msrc.family) {
198 if (filter.rvia.bitlen>0) {
204 if (filter.rprefsrc.bitlen>0) {
211 if (filter.rdst.family && inet_addr_match(&dst, &filter.rdst, filter.rdst.bitlen))
213 if (filter.mdst.family && filter.mdst.bitlen >= 0 &&
214 inet_addr_match(&dst, &filter.mdst, r->rtm_dst_len))
217 if (filter.rsrc.family && inet_addr_match(&src, &filter.rsrc, filter.rsrc.bitlen))
219 if (filter.msrc.family && filter.msrc.bitlen >= 0 &&
220 inet_addr_match(&src, &filter.msrc, r->rtm_src_len))
223 if (filter.rvia.family && inet_addr_match(&via, &filter.rvia, filter.rvia.bitlen))
225 if (filter.rprefsrc.family && inet_addr_match(&prefsrc, &filter.rprefsrc, filter.rprefsrc.bitlen))
227 if (filter.realmmask) {
231 if ((realms^filter.realm)&filter.realmmask)
234 if (filter.iifmask) {
238 if ((iif^filter.iif)&filter.iifmask)
241 if (filter.oifmask) {
245 if ((oif^filter.oif)&filter.oifmask)
248 if (filter.markmask) {
252 if ((mark ^ filter.mark) & filter.markmask)
255 if (filter.flushb &&
297 if (filter.flushb && n->nlmsg_type != RTM_NEWROUTE)
313 if (filter.flushb) {
315 if (NLMSG_ALIGN(filter.flushp) + n->nlmsg_len > filter.flushe) {
319 fn = (struct nlmsghdr*)(filter.flushb + NLMSG_ALIGN(filter.flushp));
324 filter.flushp = (((char*)fn) + n->nlmsg_len) - filter.flushb;
325 filter.flushed++;
332 if (r->rtm_type != RTN_UNICAST && !filter.type)
373 if (r->rtm_tos && filter.tosmask != -1) {
378 if (tb[RTA_GATEWAY] && filter.rvia.bitlen != host_len) {
385 if (tb[RTA_OIF] && filter.oifmask != -1)
389 if (table != RT_TABLE_MAIN && !filter.tb)
391 if (r->rtm_protocol != RTPROT_BOOT && filter.protocolmask != -1)
393 if (r->rtm_scope != RT_SCOPE_UNIVERSE && filter.scopemask != -1)
396 if (tb[RTA_PREFSRC] && filter.rprefsrc.bitlen != host_len) {
428 if (tb[RTA_FLOW] && filter.realmmask != ~0U) {
565 if (tb[RTA_IIF] && filter.iifmask != -1) {
1116 filter.tb = RT_TABLE_MAIN;
1129 filter.tb = 0;
1131 filter.cloned = 1;
1138 filter.tb = tid;
1141 filter.cloned = 1;
1148 filter.tos = tos;
1149 filter.tosmask = -1;
1153 filter.protocolmask = -1;
1158 filter.protocolmask = 0;
1160 filter.protocol = prot;
1164 filter.scopemask = -1;
1169 filter.scopemask = 0;
1171 filter.scope = scope;
1175 filter.typemask = -1;
1178 filter.type = type;
1189 filter.markmask = -1;
1192 get_prefix(&filter.rvia, *argv, do_ipv6);
1195 get_prefix(&filter.rprefsrc, *argv, do_ipv6);
1201 filter.realm = realm;
1202 filter.realmmask = ~0U;
1203 if ((filter.realm&0xFFFF) == 0 &&
1205 filter.realmmask &= ~0xFFFF;
1206 if ((filter.realm&0xFFFF0000U) == 0 &&
1209 filter.realmmask &= ~0xFFFF0000U;
1214 get_prefix(&filter.rsrc, *argv, do_ipv6);
1217 get_prefix(&filter.msrc, *argv, do_ipv6);
1222 get_prefix(&filter.msrc, *argv, do_ipv6);
1223 filter.rsrc = filter.msrc;
1231 get_prefix(&filter.rdst, *argv, do_ipv6);
1234 get_prefix(&filter.mdst, *argv, do_ipv6);
1239 get_prefix(&filter.mdst, *argv, do_ipv6);
1240 filter.rdst = filter.mdst;
1246 if (do_ipv6 == AF_UNSPEC && filter.tb)
1259 filter.iif = idx;
1260 filter.iifmask = -1;
1267 filter.oif = idx;
1268 filter.oifmask = -1;
1271 filter.mark = mark;
1278 if (filter.cloned) {
1288 filter.flushb = flushb;
1289 filter.flushp = 0;
1290 filter.flushe = sizeof(flushb);
1297 filter.flushed = 0;
1302 if (filter.flushed == 0) {
1304 if (round == 0 && (!filter.cloned || do_ipv6 == AF_INET6))
1318 time(0) - start, filter.flushed);
1323 printf("\n*** Round %d, deleting %d entries ***\n", round, filter.flushed);
1329 if (!filter.cloned) {
1366 filter.cloned = 2;
1537 memset(&filter, 0, sizeof(filter));
1538 filter.mdst.bitlen = -1;
1539 filter.msrc.bitlen = -1;