Lines Matching refs:peer

36  * that the clock is actually a peer.  As no packets are exchanged with
39 * refclock_transmit() and refclock_receive() maintain the peer
40 * variables in a state analogous to an actual peer and pass reference
55 * The support routines are passed a pointer to the peer structure,
56 * which is used for all peer-specific processing and contains a
58 * pointer to the unit structure, if used. The peer structure is
73 static void refclock_checkburst(struct peer *, struct refclockproc *);
155 struct peer *peer,
161 pp = peer->procptr;
191 report_event(PEVNT_CLOCK, peer, ceventstr(code));
218 * supports a reference clock in the form of an ordinary NTP peer. A
220 * used. Default peer variables which identify the clock and establish
228 struct peer *peer /* peer structure pointer */
239 if (!ISREFCLOCKADR(&peer->srcadr)) {
242 stoa(&peer->srcadr));
245 clktype = (u_char)REFCLOCKTYPE(&peer->srcadr);
246 unit = REFCLOCKUNIT(&peer->srcadr);
259 peer->procptr = pp;
264 peer->refclktype = clktype;
265 peer->refclkunit = (u_char)unit;
266 peer->flags |= FLAG_REFCLOCK;
267 peer->leap = LEAP_NOTINSYNC;
268 peer->stratum = STRATUM_REFCLOCK;
269 peer->ppoll = peer->maxpoll;
276 * Set peer.pmode based on the hmode. For appearances only.
278 switch (peer->hmode) {
280 peer->pmode = MODE_PASSIVE;
284 peer->pmode = MODE_SERVER;
292 if (!((refclock_conf[clktype]->clock_start)(unit, peer))) {
293 refclock_unpeer(peer);
296 peer->refid = pp->refid;
306 struct peer *peer /* peer structure pointer */
316 if (NULL == peer->procptr)
319 clktype = peer->refclktype;
320 unit = peer->refclkunit;
322 (refclock_conf[clktype]->clock_shutdown)(unit, peer);
323 free(peer->procptr);
324 peer->procptr = NULL;
333 struct peer *p
358 struct peer *peer /* peer structure pointer */
364 clktype = peer->refclktype;
365 unit = peer->refclkunit;
366 peer->sent++;
367 get_systime(&peer->xmt);
370 * This is a ripoff of the peer transmit routine, but
374 if (peer->burst == 0) {
379 current_time, stoa(&(peer->srcadr)));
386 oreach = peer->reach & 0xfe;
387 peer->reach <<= 1;
388 if (!(peer->reach & 0x0f))
389 clock_filter(peer, 0., 0., MAXDISPERSE);
390 peer->outdate = current_time;
391 if (!peer->reach) {
393 report_event(PEVNT_UNREACH, peer, NULL);
394 peer->timereachable = current_time;
397 if (peer->flags & FLAG_BURST)
398 peer->burst = NSTAGE;
401 peer->burst--;
403 peer->procptr->inpoll = TRUE;
405 (refclock_conf[clktype]->clock_poll)(unit, peer);
406 poll_update(peer, peer->hpoll, 0);
662 struct peer *peer /* peer structure pointer */
670 current_time, stoa(&peer->srcadr));
674 * Do a little sanity dance and update the peer structure. Groom
678 pp = peer->procptr;
680 peer->leap = pp->leap;
681 if (peer->leap == LEAP_NOTINSYNC)
684 peer->received++;
685 peer->timereceived = current_time;
686 if (!peer->reach) {
687 report_event(PEVNT_REACH, peer, NULL);
688 peer->timereachable = current_time;
690 peer->reach = (peer->reach << (peer->reach & 1)) | 1;
691 peer->reftime = pp->lastref;
692 peer->aorg = pp->lastrec;
693 peer->rootdisp = pp->disp;
694 get_systime(&peer->dst);
698 clock_filter(peer, pp->offset, 0., pp->jitter);
702 peer->refclktype != REFCLK_ATOM_PPS)
1178 struct peer *peer;
1184 * Check for valid address and running peer
1192 peer = findexistingpeer(srcadr, NULL, NULL, -1, 0, NULL);
1194 if (NULL == peer)
1197 INSIST(peer->procptr != NULL);
1198 pp = peer->procptr;
1209 peer->stratum = pp->stratum = (u_char)in->fudgeval1;
1211 peer->refid = pp->refid = in->fudgeval2;
1276 (refclock_conf[clktype]->clock_control)(unit, in, out, peer);
1293 struct peer *peer;
1300 * Check for valid address and peer structure
1308 peer = findexistingpeer(srcadr, NULL, NULL, -1, 0, NULL);
1310 if (NULL == peer || NULL == peer->procptr)
1313 pp = peer->procptr;
1338 (refclock_conf[clktype]->clock_buginfo)(unit, bug, peer);
1432 struct peer *peer, /* peer structure pointer */
1447 pp = peer->procptr;
1459 refclock_report(peer, CEVNT_FAULT);
1521 refclock_checkburst(peer, pp);
1672 struct peer * peer,
1679 /* Paranoia: stop here if peer and clockproc don't match up.
1684 if (pp->inpoll || (peer->procptr != pp) ||
1685 ((peer->reach == 0xFF) && (peer->disp <= MAXDISTANCE)))
1690 if (peer->nextdate <= limit)
1696 needs = peer->reach;
1708 * (Changing the peer poll is probably in vain, as it will be
1711 peer->hpoll = peer->minpoll;
1712 peer->nextdate = limit;