Commit e1cc21b2 authored by Alessandro Rubini's avatar Alessandro Rubini Committed by Aurelio Colosimo

initialization: fix clockId setup

parent 740f97e0
......@@ -209,13 +209,13 @@ int posix_open_ch(struct pp_instance *ppi, char *ifname, int chtype)
return -1;
}
memcpy(NP(ppi)->ch[chtype].addr, ifr.ifr_hwaddr.sa_data, 6);
if (ioctl(sock, SIOCGIFADDR, &ifr) < 0) {
pp_diag_error_str2(ppi, "SIOCGIFADDR", strerror(errno));
return -1;
}
memcpy(NP(ppi)->ch[chtype].addr, ifr.ifr_hwaddr.sa_data, 6);
iface_addr.s_addr =
((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr.s_addr;
......
......@@ -12,6 +12,8 @@
int pp_initializing(struct pp_instance *ppi, unsigned char *pkt, int plen)
{
unsigned char *id, *mac;
pp_net_shutdown(ppi);
if (pp_net_init(ppi) < 0)
......@@ -19,10 +21,18 @@ int pp_initializing(struct pp_instance *ppi, unsigned char *pkt, int plen)
/* Initialize default data set */
DSDEF(ppi)->twoStepFlag = PP_TWO_STEP_FLAG;
pp_memcpy(DSDEF(ppi)->clockIdentity, NP(ppi)->ch[PP_NP_GEN].addr,
PP_CLOCK_IDENTITY_LENGTH);
DSDEF(ppi)->clockIdentity[3] = 0xff;
DSDEF(ppi)->clockIdentity[4] = 0xfe;
/* Clock identity comes from mac address with 0xff:0xfe intermixed */
id = DSDEF(ppi)->clockIdentity;
mac = NP(ppi)->ch[PP_NP_GEN].addr;
id[0] = mac[0];
id[1] = mac[1];
id[2] = mac[2];
id[3] = 0xff;
id[4] = 0xfe;
id[5] = mac[3];
id[6] = mac[4];
id[7] = mac[5];
DSDEF(ppi)->numberPorts = 1;
pp_memcpy(&DSDEF(ppi)->clockQuality, &OPTS(ppi)->clock_quality,
sizeof(ClockQuality));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment