- ec = mtod(m, struct ec_header *);
- for (i=0; i<6; i++)
- ec->ec_shost[i] = es->es_enaddr[i];
- if ((dest &~ 0xff) == 0)
- for (i=0; i<6; i++)
- ec->ec_dhost[i] = 0xff;
- else {
- if (dest & 0x8000) {
- ec->ec_dhost[0] = ec_iltop[0];
- ec->ec_dhost[1] = ec_iltop[1];
- ec->ec_dhost[2] = ec_iltop[2];
- } else {
- ec->ec_dhost[0] = es->es_enaddr[0];
- ec->ec_dhost[1] = es->es_enaddr[1];
- ec->ec_dhost[2] = es->es_enaddr[2];
- }
- ec->ec_dhost[3] = (dest>>8) & 0x7f;
- ec->ec_dhost[4] = (dest>>16) & 0xff;
- ec->ec_dhost[5] = (dest>>24) & 0xff;
- }
- ec->ec_type = type;
+ ec = mtod(m, struct ether_header *);
+ bcopy((caddr_t)edst, (caddr_t)ec->ether_dhost, sizeof (edst));
+ ec->ether_type = htons((u_short)type);
+ bcopy((caddr_t)es->es_addr, (caddr_t)ec->ether_shost, 6);