• Home
  • Raw
  • Download

Lines Matching refs:r

977 static int arp_req_set_public(struct net *net, struct arpreq *r,  in arp_req_set_public()  argument
980 __be32 ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr; in arp_req_set_public()
981 __be32 mask = ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr; in arp_req_set_public()
985 if (!dev && (r->arp_flags & ATF_COM)) { in arp_req_set_public()
986 dev = dev_getbyhwaddr_rcu(net, r->arp_ha.sa_family, in arp_req_set_public()
987 r->arp_ha.sa_data); in arp_req_set_public()
1000 static int arp_req_set(struct net *net, struct arpreq *r, in arp_req_set() argument
1007 if (r->arp_flags & ATF_PUBL) in arp_req_set()
1008 return arp_req_set_public(net, r, dev); in arp_req_set()
1010 ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr; in arp_req_set()
1011 if (r->arp_flags & ATF_PERM) in arp_req_set()
1012 r->arp_flags |= ATF_COM; in arp_req_set()
1032 if (r->arp_ha.sa_family != ARPHRD_FDDI && in arp_req_set()
1033 r->arp_ha.sa_family != ARPHRD_ETHER && in arp_req_set()
1034 r->arp_ha.sa_family != ARPHRD_IEEE802) in arp_req_set()
1039 if (r->arp_ha.sa_family != dev->type) in arp_req_set()
1048 if (r->arp_flags & ATF_PERM) in arp_req_set()
1050 err = neigh_update(neigh, (r->arp_flags & ATF_COM) ? in arp_req_set()
1051 r->arp_ha.sa_data : NULL, state, in arp_req_set()
1073 static int arp_req_get(struct arpreq *r, struct net_device *dev) in arp_req_get() argument
1075 __be32 ip = ((struct sockaddr_in *) &r->arp_pa)->sin_addr.s_addr; in arp_req_get()
1083 memcpy(r->arp_ha.sa_data, neigh->ha, dev->addr_len); in arp_req_get()
1084 r->arp_flags = arp_state_to_flags(neigh); in arp_req_get()
1086 r->arp_ha.sa_family = dev->type; in arp_req_get()
1087 strlcpy(r->arp_dev, dev->name, sizeof(r->arp_dev)); in arp_req_get()
1111 static int arp_req_delete_public(struct net *net, struct arpreq *r, in arp_req_delete_public() argument
1114 __be32 ip = ((struct sockaddr_in *) &r->arp_pa)->sin_addr.s_addr; in arp_req_delete_public()
1115 __be32 mask = ((struct sockaddr_in *)&r->arp_netmask)->sin_addr.s_addr; in arp_req_delete_public()
1126 static int arp_req_delete(struct net *net, struct arpreq *r, in arp_req_delete() argument
1131 if (r->arp_flags & ATF_PUBL) in arp_req_delete()
1132 return arp_req_delete_public(net, r, dev); in arp_req_delete()
1134 ip = ((struct sockaddr_in *)&r->arp_pa)->sin_addr.s_addr; in arp_req_delete()
1154 struct arpreq r; in arp_ioctl() local
1163 err = copy_from_user(&r, arg, sizeof(struct arpreq)); in arp_ioctl()
1171 if (r.arp_pa.sa_family != AF_INET) in arp_ioctl()
1174 if (!(r.arp_flags & ATF_PUBL) && in arp_ioctl()
1175 (r.arp_flags & (ATF_NETMASK | ATF_DONTPUB))) in arp_ioctl()
1177 if (!(r.arp_flags & ATF_NETMASK)) in arp_ioctl()
1178 ((struct sockaddr_in *)&r.arp_netmask)->sin_addr.s_addr = in arp_ioctl()
1181 if (r.arp_dev[0]) { in arp_ioctl()
1183 dev = __dev_get_by_name(net, r.arp_dev); in arp_ioctl()
1188 if (!r.arp_ha.sa_family) in arp_ioctl()
1189 r.arp_ha.sa_family = dev->type; in arp_ioctl()
1191 if ((r.arp_flags & ATF_COM) && r.arp_ha.sa_family != dev->type) in arp_ioctl()
1200 err = arp_req_delete(net, &r, dev); in arp_ioctl()
1203 err = arp_req_set(net, &r, dev); in arp_ioctl()
1206 err = arp_req_get(&r, dev); in arp_ioctl()
1211 if (cmd == SIOCGARP && !err && copy_to_user(arg, &r, sizeof(r))) in arp_ioctl()