mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 08:36:24 +08:00
Merge remote-tracking branch 'origin/master' into ieee802154
This commit is contained in:
+2
-2
@@ -124,8 +124,8 @@ void arp_arpin(FAR struct net_driver_s *dev)
|
||||
|
||||
arp->ah_opcode = HTONS(ARP_REPLY);
|
||||
memcpy(arp->ah_dhwaddr, arp->ah_shwaddr, ETHER_ADDR_LEN);
|
||||
memcpy(arp->ah_shwaddr, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(arp->ah_shwaddr, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->dest, arp->ah_dhwaddr, ETHER_ADDR_LEN);
|
||||
|
||||
arp->ah_dipaddr[0] = arp->ah_sipaddr[0];
|
||||
|
||||
@@ -90,8 +90,8 @@ void arp_format(FAR struct net_driver_s *dev, in_addr_t ipaddr)
|
||||
|
||||
memset(eth->dest, 0xff, ETHER_ADDR_LEN);
|
||||
memset(arp->ah_dhwaddr, 0x00, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(arp->ah_shwaddr, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(arp->ah_shwaddr, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
|
||||
net_ipv4addr_hdrcopy(arp->ah_dipaddr, &ipaddr);
|
||||
net_ipv4addr_hdrcopy(arp->ah_sipaddr, &dev->d_ipaddr);
|
||||
|
||||
+1
-1
@@ -249,7 +249,7 @@ void arp_out(FAR struct net_driver_s *dev)
|
||||
|
||||
/* Finish populating the Ethernet header */
|
||||
|
||||
memcpy(peth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(peth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
peth->type = HTONS(ETHTYPE_IP);
|
||||
dev->d_len += ETH_HDRLEN;
|
||||
}
|
||||
|
||||
@@ -139,7 +139,7 @@ void icmpv6_advertise(FAR struct net_driver_s *dev,
|
||||
* REVISIT: What if the link layer is not Ethernet?
|
||||
*/
|
||||
|
||||
memcpy(adv->tgtlladdr, &dev->d_mac, IFHWADDRLEN);
|
||||
memcpy(adv->tgtlladdr, &dev->d_mac.ether, IFHWADDRLEN);
|
||||
|
||||
/* Calculate the checksum over both the ICMP header and payload */
|
||||
|
||||
@@ -166,7 +166,7 @@ void icmpv6_advertise(FAR struct net_driver_s *dev,
|
||||
FAR struct eth_hdr_s *eth = ETHBUF;
|
||||
|
||||
memcpy(eth->dest, eth->src, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
|
||||
/* Set the IPv6 Ethernet type */
|
||||
|
||||
|
||||
@@ -402,7 +402,7 @@ int icmpv6_autoconfig(FAR struct net_driver_s *dev)
|
||||
|
||||
lladdr[0] = HTONS(0xfe80); /* 10-bit address + 6 zeroes */
|
||||
memset(&lladdr[1], 0, 4 * sizeof(uint16_t)); /* 64 more zeroes */
|
||||
memcpy(&lladdr[5], dev->d_mac.ether_addr_octet,
|
||||
memcpy(&lladdr[5], dev->d_mac.ether.ether_addr_octet,
|
||||
sizeof(struct ether_addr)); /* 48-bit Ethernet address */
|
||||
|
||||
ninfo("lladdr=%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x\n",
|
||||
|
||||
@@ -176,7 +176,7 @@ void icmpv6_radvertise(FAR struct net_driver_s *dev)
|
||||
srcaddr = &adv->srcaddr;
|
||||
srcaddr->opttype = ICMPv6_OPT_SRCLLADDR;
|
||||
srcaddr->optlen = 1;
|
||||
memcpy(srcaddr->srclladdr, &dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(srcaddr->srclladdr, &dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
|
||||
/* Set up the MTU option */
|
||||
|
||||
@@ -228,7 +228,7 @@ void icmpv6_radvertise(FAR struct net_driver_s *dev)
|
||||
FAR struct eth_hdr_s *eth = ETHBUF;
|
||||
|
||||
memcpy(eth->dest, g_ipv6_ethallnodes.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
|
||||
/* Set the IPv6 Ethernet type */
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ void icmpv6_rsolicit(FAR struct net_driver_s *dev)
|
||||
* REVISIT: What if the link layer is not Ethernet?
|
||||
*/
|
||||
|
||||
memcpy(sol->srclladdr, dev->d_mac.ether_addr_octet, sizeof(net_ipv6addr_t));
|
||||
memcpy(sol->srclladdr, dev->d_mac.ether.ether_addr_octet, sizeof(net_ipv6addr_t));
|
||||
|
||||
/* Calculate the checksum over both the ICMP header and payload */
|
||||
|
||||
@@ -162,7 +162,7 @@ void icmpv6_rsolicit(FAR struct net_driver_s *dev)
|
||||
|
||||
/* Move our source Ethernet addresses into the Ethernet header */
|
||||
|
||||
memcpy(eth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
|
||||
/* Set the IPv6 Ethernet type */
|
||||
|
||||
|
||||
@@ -152,7 +152,7 @@ void icmpv6_solicit(FAR struct net_driver_s *dev,
|
||||
* REVISIT: What if the link layer is not Ethernet?
|
||||
*/
|
||||
|
||||
memcpy(sol->srclladdr, &dev->d_mac, IFHWADDRLEN);
|
||||
memcpy(sol->srclladdr, &dev->d_mac.ether, IFHWADDRLEN);
|
||||
|
||||
/* Calculate the checksum over both the ICMP header and payload */
|
||||
|
||||
@@ -190,7 +190,7 @@ void icmpv6_solicit(FAR struct net_driver_s *dev,
|
||||
|
||||
/* Move our source Ethernet addresses into the Ethernet header */
|
||||
|
||||
memcpy(eth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
|
||||
/* Set the IPv6 Ethernet type */
|
||||
|
||||
|
||||
@@ -245,7 +245,7 @@ void neighbor_out(FAR struct net_driver_s *dev)
|
||||
|
||||
/* Finish populating the Ethernet header */
|
||||
|
||||
memcpy(eth->src, dev->d_mac.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
memcpy(eth->src, dev->d_mac.ether.ether_addr_octet, ETHER_ADDR_LEN);
|
||||
eth->type = HTONS(ETHTYPE_IP6);
|
||||
|
||||
/* Add the size of the layer layer header to the total size of the
|
||||
|
||||
@@ -775,7 +775,7 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
{
|
||||
req->ifr_hwaddr.sa_family = AF_INETX;
|
||||
memcpy(req->ifr_hwaddr.sa_data,
|
||||
dev->d_mac.ether_addr_octet, IFHWADDRLEN);
|
||||
dev->d_mac.ether.ether_addr_octet, IFHWADDRLEN);
|
||||
ret = OK;
|
||||
}
|
||||
else
|
||||
@@ -788,13 +788,9 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
if (true)
|
||||
#endif
|
||||
{
|
||||
FAR struct ieee802154_driver_s *ieee =
|
||||
(FAR struct ieee802154_driver_s *)dev;
|
||||
|
||||
req->ifr_hwaddr.sa_family = AF_INETX;
|
||||
memcpy(req->ifr_hwaddr.sa_data, ieee->i_nodeaddr.u8,
|
||||
NET_6LOWPAN_RIMEADDR_SIZE);
|
||||
ret = OK;
|
||||
memcpy(req->ifr_hwaddr.sa_data,
|
||||
dev->d_mac.ieee802154.u8, NET_6LOWPAN_RIMEADDR_SIZE);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
@@ -817,7 +813,7 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
if (true)
|
||||
#endif
|
||||
{
|
||||
memcpy(dev->d_mac.ether_addr_octet,
|
||||
memcpy(dev->d_mac.ether.ether_addr_octet,
|
||||
req->ifr_hwaddr.sa_data, IFHWADDRLEN);
|
||||
ret = OK;
|
||||
}
|
||||
@@ -831,13 +827,9 @@ static int netdev_ifr_ioctl(FAR struct socket *psock, int cmd,
|
||||
if (true)
|
||||
#endif
|
||||
{
|
||||
FAR struct ieee802154_driver_s *ieee =
|
||||
(FAR struct ieee802154_driver_s *)dev;
|
||||
|
||||
req->ifr_hwaddr.sa_family = AF_INETX;
|
||||
memcpy(ieee->i_nodeaddr.u8, req->ifr_hwaddr.sa_data,
|
||||
NET_6LOWPAN_RIMEADDR_SIZE);
|
||||
ret = OK;
|
||||
memcpy(dev->d_mac.ieee802154.u8,
|
||||
req->ifr_hwaddr.sa_data, NET_6LOWPAN_RIMEADDR_SIZE);
|
||||
ret = OK;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
|
||||
@@ -334,9 +334,9 @@ int netdev_register(FAR struct net_driver_s *dev, enum net_lltype_e lltype)
|
||||
|
||||
#ifdef CONFIG_NET_ETHERNET
|
||||
ninfo("Registered MAC: %02x:%02x:%02x:%02x:%02x:%02x as dev: %s\n",
|
||||
dev->d_mac.ether_addr_octet[0], dev->d_mac.ether_addr_octet[1],
|
||||
dev->d_mac.ether_addr_octet[2], dev->d_mac.ether_addr_octet[3],
|
||||
dev->d_mac.ether_addr_octet[4], dev->d_mac.ether_addr_octet[5],
|
||||
dev->d_mac.ether.ether_addr_octet[0], dev->d_mac.ether.ether_addr_octet[1],
|
||||
dev->d_mac.ether.ether_addr_octet[2], dev->d_mac.ether.ether_addr_octet[3],
|
||||
dev->d_mac.ether.ether_addr_octet[4], dev->d_mac.ether.ether_addr_octet[5],
|
||||
dev->d_ifname);
|
||||
#else
|
||||
ninfo("Registered dev: %s\n", dev->d_ifname);
|
||||
|
||||
@@ -112,9 +112,6 @@ static const linegen_t g_linegen[] =
|
||||
static int netprocfs_linklayer(FAR struct netprocfs_file_s *netfile)
|
||||
{
|
||||
FAR struct net_driver_s *dev;
|
||||
#ifdef CONFIG_NET_6LOWPAN
|
||||
FAR struct ieee802154_driver_s *ieee;
|
||||
#endif
|
||||
FAR const char *status;
|
||||
int len = 0;
|
||||
|
||||
@@ -147,29 +144,27 @@ static int netprocfs_linklayer(FAR struct netprocfs_file_s *netfile)
|
||||
case NET_LL_ETHERNET:
|
||||
len += snprintf(&netfile->line[len], NET_LINELEN - len,
|
||||
"%s\tLink encap:Ethernet HWaddr %s",
|
||||
dev->d_ifname, ether_ntoa(&dev->d_mac));
|
||||
dev->d_ifname, ether_ntoa(&dev->d_mac.ether));
|
||||
break;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_NET_6LOWPAN
|
||||
case NET_LL_IEEE802154:
|
||||
{
|
||||
ieee = (FAR struct ieee802154_driver_s *)dev;
|
||||
|
||||
#ifdef CONFIG_NET_6LOWPAN_RIMEADDR_EXTENDED
|
||||
len += snprintf(&netfile->line[len], NET_LINELEN - len,
|
||||
"%s\tLink encap:6loWPAN HWaddr "
|
||||
"%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x",
|
||||
dev->d_ifname,
|
||||
ieee->i_nodeaddr.u8[0], ieee->i_nodeaddr.u8[1],
|
||||
ieee->i_nodeaddr.u8[2], ieee->i_nodeaddr.u8[3],
|
||||
ieee->i_nodeaddr.u8[4], ieee->i_nodeaddr.u8[5],
|
||||
ieee->i_nodeaddr.u8[6], ieee->i_nodeaddr.u8[7]);
|
||||
dev->d_mac.ieee802154.u8[0], dev->d_mac.ieee802154.u8[1],
|
||||
dev->d_mac.ieee802154.u8[2], dev->d_mac.ieee802154.u8[3],
|
||||
dev->d_mac.ieee802154.u8[4], dev->d_mac.ieee802154.u8[5],
|
||||
dev->d_mac.ieee802154.u8[6], dev->d_mac.ieee802154.u8[7]);
|
||||
#else
|
||||
len += snprintf(&netfile->line[len], NET_LINELEN - len,
|
||||
"%s\tLink encap:6loWPAN HWaddr %02x:%02x",
|
||||
dev->d_ifname,
|
||||
ieee->i_nodeaddr.u8[0], ieee->i_nodeaddr.u8[1]);
|
||||
dev->d_mac.ieee802154.u8[0], dev->d_mac.ieee802154.u8[1]);
|
||||
#endif
|
||||
}
|
||||
break;
|
||||
@@ -215,26 +210,24 @@ static int netprocfs_linklayer(FAR struct netprocfs_file_s *netfile)
|
||||
#elif defined(CONFIG_NET_ETHERNET)
|
||||
len += snprintf(&netfile->line[len], NET_LINELEN - len,
|
||||
"%s\tLink encap:Ethernet HWaddr %s at %s\n",
|
||||
dev->d_ifname, ether_ntoa(&dev->d_mac), status);
|
||||
dev->d_ifname, ether_ntoa(&dev->d_mac.ether), status);
|
||||
|
||||
#elif defined(CONFIG_NET_6LOWPAN)
|
||||
ieee = (FAR struct ieee802154_driver_s *)dev;
|
||||
|
||||
#ifdef CONFIG_NET_6LOWPAN_RIMEADDR_EXTENDED
|
||||
len += snprintf(&netfile->line[len], NET_LINELEN - len,
|
||||
"%s\tLink encap:6loWPAN HWaddr "
|
||||
"%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x at %s\n",
|
||||
dev->d_ifname,
|
||||
ieee->i_nodeaddr.u8[0], ieee->i_nodeaddr.u8[1],
|
||||
ieee->i_nodeaddr.u8[2], ieee->i_nodeaddr.u8[3],
|
||||
ieee->i_nodeaddr.u8[4], ieee->i_nodeaddr.u8[5],
|
||||
ieee->i_nodeaddr.u8[6], ieee->i_nodeaddr.u8[7],
|
||||
dev->d_mac.ieee802154.u8[0], dev->d_mac.ieee802154.u8[1],
|
||||
dev->d_mac.ieee802154.u8[2], dev->d_mac.ieee802154.u8[3],
|
||||
dev->d_mac.ieee802154.u8[4], dev->d_mac.ieee802154.u8[5],
|
||||
dev->d_mac.ieee802154.u8[6], dev->d_mac.ieee802154.u8[7],
|
||||
status);
|
||||
#else
|
||||
len += snprintf(&netfile->line[len], NET_LINELEN - len,
|
||||
"%s\tLink encap:6loWPAN HWaddr %02x:%02x at %s\n",
|
||||
dev->d_ifname,
|
||||
ieee->i_nodeaddr.u8[0], ieee->i_nodeaddr.u8[1],
|
||||
dev->d_mac.ieee802154.u8[0], dev->d_mac.ieee802154.u8[1],
|
||||
status);
|
||||
#endif
|
||||
#elif defined(CONFIG_NET_LOOPBACK)
|
||||
|
||||
@@ -284,7 +284,8 @@ int sixlowpan_queue_frames(FAR struct ieee802154_driver_s *ieee,
|
||||
|
||||
/* Set the source and destinatino address */
|
||||
|
||||
rimeaddr_copy(&g_pktaddrs[PACKETBUF_ADDR_SENDER], &ieee->i_nodeaddr);
|
||||
rimeaddr_copy(&g_pktaddrs[PACKETBUF_ADDR_SENDER],
|
||||
&ieee->i_dev.d_mac.ieee802154);
|
||||
rimeaddr_copy(&g_pktaddrs[PACKETBUF_ADDR_RECEIVER], destmac);
|
||||
|
||||
/* Get the destination PAN ID.
|
||||
|
||||
@@ -372,7 +372,8 @@ static void sixlowpan_setup_params(FAR struct ieee802154_driver_s *ieee,
|
||||
|
||||
/* Set the source address to the node address assigned to the device */
|
||||
|
||||
rimeaddr_copy((struct rimeaddr_s *)¶ms->src_addr, &ieee->i_nodeaddr);
|
||||
rimeaddr_copy((struct rimeaddr_s *)¶ms->src_addr,
|
||||
&ieee->i_dev.d_mac.ieee802154);
|
||||
|
||||
/* Use short soruce address mode if so configured */
|
||||
|
||||
|
||||
@@ -614,7 +614,8 @@ void sixlowpan_compresshdr_hc06(FAR struct ieee802154_driver_s *ieee,
|
||||
|
||||
/* Compression compare with this nodes address (source) */
|
||||
|
||||
iphc1 |= compress_addr_64(ipv6->srcipaddr, &ieee->i_nodeaddr,
|
||||
iphc1 |= compress_addr_64(ipv6->srcipaddr,
|
||||
&ieee->i_dev.d_mac.ieee802154,
|
||||
SIXLOWPAN_IPHC_SAM_BIT);
|
||||
}
|
||||
|
||||
@@ -624,7 +625,8 @@ void sixlowpan_compresshdr_hc06(FAR struct ieee802154_driver_s *ieee,
|
||||
ipv6->destipaddr[1] == 0 && ipv6->destipaddr[2] == 0 &&
|
||||
ipv6->destipaddr[3] == 0)
|
||||
{
|
||||
iphc1 |= compress_addr_64(ipv6->srcipaddr, &ieee->i_nodeaddr,
|
||||
iphc1 |= compress_addr_64(ipv6->srcipaddr,
|
||||
&ieee->i_dev.d_mac.ieee802154,
|
||||
SIXLOWPAN_IPHC_SAM_BIT);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -129,7 +129,7 @@ void sixlowpan_compresshdr_hc1(FAR struct ieee802154_driver_s *ieee,
|
||||
|
||||
if (ipv6->vtc != 0x60 || ipv6->tcf != 0 || ipv6->flow != 0 ||
|
||||
!sixlowpan_islinklocal(ipv6->srcipaddr) ||
|
||||
!sixlowpan_ismacbased(ipv6->srcipaddr, &ieee->i_nodeaddr) ||
|
||||
!sixlowpan_ismacbased(ipv6->srcipaddr, &ieee->i_dev.d_mac.ieee802154) ||
|
||||
!sixlowpan_islinklocal(ipv6->destipaddr) ||
|
||||
!sixlowpan_ismacbased(ipv6->destipaddr, destmac) ||
|
||||
(ipv6->proto != IP_PROTO_ICMP6 && ipv6->proto != IP_PROTO_UDP &&
|
||||
|
||||
+1
-1
@@ -105,7 +105,7 @@ static int pkt_bind(FAR struct pkt_conn_s *conn,
|
||||
#if 0
|
||||
/* Get the MAC address of that interface */
|
||||
|
||||
memcpy(hwaddr, g_netdevices->d_mac, 6);
|
||||
memcpy(hwaddr, g_netdevices->d_mac.ether, 6);
|
||||
#endif
|
||||
|
||||
/* Put ifindex and mac address into connection */
|
||||
|
||||
Reference in New Issue
Block a user