1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-10-19 02:29:40 +00:00

Use the (now standard) Ethernet address parse type.

This commit is contained in:
Ruslan Ermilov 2003-12-17 13:03:32 +00:00
parent 8c7e4101f8
commit 37fc1cc08e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=123601
2 changed files with 5 additions and 39 deletions

View File

@ -57,20 +57,12 @@
#include <net/ethernet.h>
#include <net/if_arp.h>
static const struct ng_parse_struct_field ng_eiface_par_fields[]
= NG_EIFACE_PAR_FIELDS;
static const struct ng_parse_type ng_eiface_par_type = {
&ng_parse_struct_type,
&ng_eiface_par_fields
};
static const struct ng_cmdlist ng_eiface_cmdlist[] = {
{
NGM_EIFACE_COOKIE,
NGM_EIFACE_SET,
"set",
&ng_eiface_par_type,
&ng_parse_enaddr_type,
NULL
},
{ 0 }
@ -496,22 +488,16 @@ ng_eiface_rcvmsg(node_p node, item_p item, hook_p lasthook)
switch (msg->header.cmd) {
case NGM_EIFACE_SET:
{
struct ng_eiface_par *eaddr;
struct ether_addr *eaddr;
struct ifaddr *ifa;
struct sockaddr_dl *sdl;
if (msg->header.arglen != sizeof(struct ng_eiface_par)){
if (msg->header.arglen != sizeof(struct ether_addr)){
error = EINVAL;
break;
}
eaddr = (struct ng_eiface_par *)(msg->data);
priv->arpcom.ac_enaddr[0] = eaddr->oct0;
priv->arpcom.ac_enaddr[1] = eaddr->oct1;
priv->arpcom.ac_enaddr[2] = eaddr->oct2;
priv->arpcom.ac_enaddr[3] = eaddr->oct3;
priv->arpcom.ac_enaddr[4] = eaddr->oct4;
priv->arpcom.ac_enaddr[5] = eaddr->oct5;
eaddr = (struct ether_addr *)(msg->data);
bcopy(eaddr, priv->arpcom.ac_enaddr, ETHER_ADDR_LEN);
/* And put it in the ifaddr list */
#define IFP2AC(IFP) ((struct arpcom *)IFP)

View File

@ -59,24 +59,4 @@ struct ng_eiface_ifname {
char ngif_name[NG_EIFACE_EIFACE_NAME_MAX + 1];
};
struct ng_eiface_par {
u_char oct0;
u_char oct1;
u_char oct2;
u_char oct3;
u_char oct4;
u_char oct5;
};
/* Keep this in sync with the above structure definition */
#define NG_EIFACE_PAR_FIELDS { \
{ "oct0", &ng_parse_int8_type }, \
{ "oct1", &ng_parse_int8_type }, \
{ "oct2", &ng_parse_int8_type }, \
{ "oct3", &ng_parse_int8_type }, \
{ "oct4", &ng_parse_int8_type }, \
{ "oct5", &ng_parse_int8_type }, \
{ NULL } \
}
#endif /* _NETGRAPH_NG_EIFACE_H_ */