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:
parent
8c7e4101f8
commit
37fc1cc08e
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=123601
@ -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)
|
||||
|
@ -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_ */
|
||||
|
Loading…
Reference in New Issue
Block a user