in calnex/config/config.go [58:130]
func (c *config) measureConfig(s *ini.Section, cc CalnexConfig) {
channelEnabled := make(map[api.Channel]bool)
for ch, m := range cc {
channelEnabled[ch] = true
probe := ""
switch m.Probe {
case api.ProbeNTP:
probe = fmt.Sprintf("%s\\ptp_synce\\mode\\probe_type", ch.CalnexAPI())
c.set(s, fmt.Sprintf("%s\\protocol_enabled", ch.CalnexAPI()), api.ON)
// Set Virtual Port to use Physical channel 1
c.set(s, fmt.Sprintf("%s\\ptp_synce\\physical_packet_channel", ch.CalnexAPI()), "Channel 1")
// Set target we measure
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ntp\\server_ip", ch.CalnexAPI()), m.Target)
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ntp\\server_ip_ipv6", ch.CalnexAPI()), m.Target)
// show raw metrics
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ntp\\normalize_delays", ch.CalnexAPI()), api.OFF)
// use ipv6
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ntp\\protocol_level", ch.CalnexAPI()), "UDP/IPv6")
// ntp 1 packet per 64 second
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ntp\\poll_log_interval", ch.CalnexAPI()), "1 packet/16 s")
case api.ProbePTP:
probe = fmt.Sprintf("%s\\ptp_synce\\mode\\probe_type", ch.CalnexAPI())
c.set(s, fmt.Sprintf("%s\\protocol_enabled", ch.CalnexAPI()), api.ON)
// Set Virtual Port to use Physical channel 1
c.set(s, fmt.Sprintf("%s\\ptp_synce\\physical_packet_channel", ch.CalnexAPI()), "Channel 1")
// Set target we measure
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\master_ip", ch.CalnexAPI()), m.Target)
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\master_ip_ipv6", ch.CalnexAPI()), m.Target)
// use ipv6
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\protocol_level", ch.CalnexAPI()), "UDP/IPv6")
// ptp 1 packet per 1 second
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\log_announce_int", ch.CalnexAPI()), "1 packet/16 s")
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\log_delay_req_int", ch.CalnexAPI()), "1 packet/16 s")
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\log_sync_int", ch.CalnexAPI()), "1 packet/16 s")
// ptp unicast mode
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\stack_mode", ch.CalnexAPI()), "Unicast")
// ptp domain
c.set(s, fmt.Sprintf("%s\\ptp_synce\\ptp\\domain", ch.CalnexAPI()), "0")
case api.ProbePPS:
probe = fmt.Sprintf("%s\\signal_type", ch.CalnexAPI())
c.set(s, fmt.Sprintf("%s\\server_ip", ch.CalnexAPI()), m.Target)
c.set(s, fmt.Sprintf("%s\\trig_level", ch.CalnexAPI()), "500 mV")
c.set(s, fmt.Sprintf("%s\\freq", ch.CalnexAPI()), "1 Hz")
}
// enable PTP/NTP channels
c.set(s, fmt.Sprintf("%s\\used", ch.CalnexAPI()), api.YES)
c.set(s, probe, m.Probe.CalnexName())
}
// Disable unused channels and enable used
for ch, datatype := range api.MeasureChannelDatatypeMap {
if !channelEnabled[ch] {
c.set(s, fmt.Sprintf("%s\\used", ch.CalnexAPI()), api.NO)
if datatype == api.TWOWAYTE {
c.set(s, fmt.Sprintf("%s\\protocol_enabled", ch.CalnexAPI()), api.OFF)
c.set(s, fmt.Sprintf("%s\\ptp_synce\\mode\\probe_type", ch.CalnexAPI()), api.DISABLED)
}
}
}
}