- hwaddr = smap_get(cfg, "bfd_dst_mac");
- if (hwaddr && eth_addr_from_string(hwaddr, ea) && !eth_addr_is_zero(ea)) {
- memcpy(bfd->eth_dst, ea, ETH_ADDR_LEN);
- bfd->eth_dst_set = true;
- } else if (bfd->eth_dst_set) {
- memcpy(bfd->eth_dst, eth_addr_bfd, ETH_ADDR_LEN);
- bfd->eth_dst_set = false;
+ hwaddr = smap_get(cfg, "bfd_local_src_mac");
+ if (hwaddr && eth_addr_from_string(hwaddr, &ea)) {
+ bfd->local_eth_src = ea;
+ } else {
+ bfd->local_eth_src = eth_addr_zero;
+ }
+
+ hwaddr = smap_get(cfg, "bfd_local_dst_mac");
+ if (hwaddr && eth_addr_from_string(hwaddr, &ea)) {
+ bfd->local_eth_dst = ea;
+ } else {
+ bfd->local_eth_dst = eth_addr_zero;
+ }
+
+ hwaddr = smap_get(cfg, "bfd_remote_dst_mac");
+ if (hwaddr && eth_addr_from_string(hwaddr, &ea)) {
+ bfd->rmt_eth_dst = ea;
+ } else {
+ bfd->rmt_eth_dst = eth_addr_zero;