summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Burnicki <martin.burnicki@meinberg.de>2022-08-26 13:33:44 +0200
committerMartin Burnicki <martin.burnicki@meinberg.de>2022-08-26 13:33:44 +0200
commiteaa66d56becdcf0e671f1b2e3dc2a5edb68b30cb (patch)
treeaf4578fe1332214c135fc51fc9967dedea88391f
parentde28b56bc098c165648bd472105824ee8eeb1017 (diff)
downloadmbgtools-lx-eaa66d56becdcf0e671f1b2e3dc2a5edb68b30cb.tar.gz
mbgtools-lx-eaa66d56becdcf0e671f1b2e3dc2a5edb68b30cb.zip
Update some mbglib files
-rw-r--r--mbglib/common/lan_util.c50
-rw-r--r--mbglib/common/usbdefs.h43
2 files changed, 90 insertions, 3 deletions
diff --git a/mbglib/common/lan_util.c b/mbglib/common/lan_util.c
index 84b5ef5..666b4c3 100644
--- a/mbglib/common/lan_util.c
+++ b/mbglib/common/lan_util.c
@@ -1,7 +1,7 @@
/**************************************************************************
*
- * $Id: lan_util.c 1.22 2021/05/18 14:13:48 daniel REL_M $
+ * $Id: lan_util.c 1.23 2021/07/20 10:27:30 daniel REL_M $
*
* Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
*
@@ -10,6 +10,8 @@
*
* -----------------------------------------------------------------------
* $Log: lan_util.c $
+ * Revision 1.23 2021/07/20 10:27:30 daniel
+ * On SOC platforms use alternative method via proc interface to retrieve current IP address of the IPv4 default gateway.
* Revision 1.22 2021/05/18 14:13:48 daniel
* Fixed NUM_WORDS bug again
* Revision 1.21 2021/05/17 13:23:22 daniel
@@ -1490,6 +1492,8 @@ int get_port_ip4_broad_addr( const char *if_name, IP4_ADDR *p_addr )
#if defined( MBG_TGT_LINUX )
+#if !defined( USE_MBG_SOC)
+
static /*HDR*/
/**
* @brief Read a requested message from the netlink socket.
@@ -1563,6 +1567,7 @@ int nl_read( int sock_fd, char *buf_ptr, size_t buf_size, uint32_t seq_num, uint
} // nl_read
+#endif
#if DEBUG_NETLINK
@@ -1585,6 +1590,7 @@ void nl_log_bytes( const char *fnc, const char *info, const void *p, int n_byte
#endif
+#if !defined( USE_MBG_SOC)
static /*HDR*/
int nl_parse_routes( struct nlmsghdr *nl_hdr, struct route_info *rt_info )
@@ -1690,6 +1696,8 @@ int nl_parse_routes( struct nlmsghdr *nl_hdr, struct route_info *rt_info )
} // nl_parse_routes
+#endif // !defined( USE_MBG_SOC )
+
#endif // defined( MBG_TGT_LINUX )
@@ -1708,6 +1716,8 @@ int get_ip4_gateway( IP4_ADDR *p_addr )
int rc = MBG_ERR_NOT_SUPP_ON_OS;
#if defined( MBG_TGT_LINUX )
+
+#if !defined( USE_MBG_SOC)
struct nlmsghdr *nlmsg;
struct route_info route_info;
char msg_buf[8192]; // TODO Pretty large buffer, why 8192 ?
@@ -1820,6 +1830,44 @@ out:
if ( sock_fd >= 0 )
close( sock_fd );
+#else
+
+ IP4_ADDR dest, gateway, mask;
+ unsigned int flags, refcnt, use, metric, mtu, window, irtt;
+ int fret = 0;
+
+ char name[ IFNAMSIZ ];
+
+ FILE* f = fopen( "/proc/net/route", "r" );
+
+ if( !f )
+ {
+ rc = MBG_ERR_IO;
+ goto out;
+ }
+
+ while (fret != EOF)
+ {
+ fret = fscanf( f, "%s %08X %08X %04X %u %u %u %08X %u %u %u ",
+ name, (uint32_t*) &dest, (uint32_t*) &gateway, &flags, &refcnt, &use, &metric,(uint32_t*) &mask, &mtu, &window, &irtt );
+
+ if ( fret == 11 )
+ {
+ if (dest == 0 && gateway != 0)
+ {
+ *p_addr = ntohl(gateway);
+ rc = MBG_SUCCESS;
+ break;
+ }
+ }
+ }
+
+ fclose(f);
+
+out:
+
+#endif
+
#endif // defined( MBG_TGT_LINUX )
if ( mbg_rc_is_error( rc ) )
diff --git a/mbglib/common/usbdefs.h b/mbglib/common/usbdefs.h
index 6991599..c2f4a82 100644
--- a/mbglib/common/usbdefs.h
+++ b/mbglib/common/usbdefs.h
@@ -1,7 +1,7 @@
/**************************************************************************
*
- * $Id: usbdefs.h 1.57 2021/09/02 12:55:48 torben.mueller REL_M $
+ * $Id: usbdefs.h 1.62 2022/06/09 10:21:00 torben.mueller TRASH $
*
* Copyright (c) Meinberg Funkuhren, Bad Pyrmont, Germany
*
@@ -10,7 +10,17 @@
*
* -----------------------------------------------------------------------
* $Log: usbdefs.h $
- * Revision 1.57 2021/09/02 12:55:48 torben.mueller
+ * Revision 1.62 2022/06/09 10:21:00 torben.mueller
+ * added definitons for BPE8NNN
+ * Revision 1.61 2022/05/23 11:22:10Z paul.kretz
+ * added definitons for CPE182, FDM182 and FDM182M
+ * Revision 1.60 2022/02/21 11:08:30Z daniel
+ * Added definitions for PSX210
+ * Revision 1.59 2022/01/20 11:38:43 andre.hartmann
+ * added definitions for GNS182 and GNS182_UC
+ * Revision 1.58 2021/10/14 06:25:53Z isa.wegmann
+ * Add USB Device GPS182
+ * Revision 1.57 2021/09/02 12:55:48Z torben.mueller
* added VMX180 model code and name
* Revision 1.56 2021/08/31 10:52:41Z paul.kretz
* added VSG181H model code and name
@@ -221,6 +231,9 @@ enum MBG_USB_CLASS_CODES
MBG_USB_CLASS_RCG, ///< Radio Carrier Generator
MBG_USB_CLASS_VMX, ///< Video Matrix
+ MBG_USB_CLASS_PSX, ///< PSX Multi-Port PTP card
+
+
N_MBG_USB_CLASS ///< number of known Meinberg USB device class codes
};
@@ -272,9 +285,11 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_FCU200 ( ( MBG_USB_CLASS_FCU << 8 ) | 0x02 ) // Fan (and power supply) Control Unit, supports FCU API.
#define USB_DEV_CPE_01 ( ( MBG_USB_CLASS_CPE << 8 ) | 0x01 )
+#define USB_DEV_CPE182 ( ( MBG_USB_CLASS_CPE << 8 ) | 0x02 ) ///< Variant of CPE180 with EP4CE15 FPGA
#define USB_DEV_GPS180 ( ( MBG_USB_CLASS_GPS << 8 ) | 0x01 )
#define USB_DEV_GPS190 ( ( MBG_USB_CLASS_GPS << 8 ) | 0x02 )
+#define USB_DEV_GPS182 ( ( MBG_USB_CLASS_GPS << 8 ) | 0x03 )
#define USB_DEV_LNO180 ( ( MBG_USB_CLASS_LNO << 8 ) | 0x01 )
@@ -292,6 +307,7 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_BPE2352 ( ( MBG_USB_CLASS_BPE << 8 ) | 0x04 ) // Formerly BPE_STM, time code AM and DCLS, plus 1 relay output
#define USB_DEV_BPE8XXX ( ( MBG_USB_CLASS_BPE << 8 ) | 0x05 ) // Formerly BPE, port extender via multiplexer
#define USB_DEV_BPE6042 ( ( MBG_USB_CLASS_BPE << 8 ) | 0x06 ) // Formerly BPE, isolated outputs via multiplexer
+#define USB_DEV_BPE8NNN ( ( MBG_USB_CLASS_BPE << 8 ) | 0x07 ) // port extender via multiplexer used with the BPE8000 and BPE8008 PCBs
#define USB_DEV_RSC_01 ( ( MBG_USB_CLASS_RSC << 8 ) | 0x01 ) // RSC used with M1000 / M3000 / IMS
#define USB_DEV_RSC_02 ( ( MBG_USB_CLASS_RSC << 8 ) | 0x02 ) // RSC used with M2000
@@ -311,6 +327,8 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_FDM180 ( ( MBG_USB_CLASS_FDM << 8 ) | 0x01 ) ///< FDM for IMS Systems
#define USB_DEV_FDM180M ( ( MBG_USB_CLASS_FDM << 8 ) | 0x02 ) ///< FDM for old Lantime Systems (M300/M600/M900)
#define USB_DEV_PMU190 ( ( MBG_USB_CLASS_FDM << 8 ) | 0x03 ) ///< Phasor Measurement Unit (IEEE C37.118), Phasor and Frequency Measurement
+#define USB_DEV_FDM182 ( ( MBG_USB_CLASS_FDM << 8 ) | 0x04 ) ///< Variant of FDM180 with EP4CE15 FPGA
+#define USB_DEV_FDM182M ( ( MBG_USB_CLASS_FDM << 8 ) | 0x05 ) ///< Variant of FDM180M with EP4CE15 FPGA
#define USB_DEV_MDU300 ( ( MBG_USB_CLASS_MDU << 8 ) | 0x01 )
#define USB_DEV_MDU312 ( ( MBG_USB_CLASS_MDU << 8 ) | 0x02 )
@@ -336,6 +354,8 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_GNS190 ( ( MBG_USB_CLASS_GNS << 8 ) | 0x06 )
#define USB_DEV_GNS190_UC ( ( MBG_USB_CLASS_GNS << 8 ) | 0x07 )
#define USB_DEV_GNS191 ( ( MBG_USB_CLASS_GNS << 8 ) | 0x08 ) ///< Receiver Modul: Septentrio mosaic-T
+#define USB_DEV_GNS182 ( ( MBG_USB_CLASS_GNS << 8 ) | 0x09 ) ///< FPGA 4CE15
+#define USB_DEV_GNS182_UC ( ( MBG_USB_CLASS_GNS << 8 ) | 0x0A ) ///< FPGA 4CE15
#define USB_DEV_N2X180 ( ( MBG_USB_CLASS_N2X << 8 ) | 0x01 )
@@ -349,6 +369,8 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_VMX180 ( ( MBG_USB_CLASS_VMX << 8 ) | 0x01 ) ///< Video Matrix
+#define USB_DEV_PSX210 ( ( MBG_USB_CLASS_PSX << 8 ) | 0x01 ) ///< PSX210
+
// If new devices are defined here, appropriate definitions should also
// be added to MBG_USB_DEVICE_NAMES and DEFAULT_MBG_USB_DEVICE_NAMES.
@@ -396,9 +418,11 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_NAME_FCU200 "FCU200"
#define USB_DEV_NAME_CPE_01 "CPE_01"
+#define USB_DEV_NAME_CPE182 "CPE182"
#define USB_DEV_NAME_GPS180 "GPS180"
#define USB_DEV_NAME_GPS190 "GPS190"
+#define USB_DEV_NAME_GPS182 "GPS182"
#define USB_DEV_NAME_LNO180 "LNO180"
@@ -416,6 +440,7 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_NAME_BPE2352 "BPE2352"
#define USB_DEV_NAME_BPE8XXX "BPE8XXX"
#define USB_DEV_NAME_BPE6042 "BPE6042"
+#define USB_DEV_NAME_BPE8NNN "BPE8NNN"
#define USB_DEV_NAME_RSC_01 "RSC_01"
#define USB_DEV_NAME_RSC_02 "RSC_02"
@@ -434,6 +459,8 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_NAME_FDM180 "FDM180"
#define USB_DEV_NAME_FDM180M "FDM180M"
#define USB_DEV_NAME_PMU190 "PMU190"
+#define USB_DEV_NAME_FDM182 "FDM182"
+#define USB_DEV_NAME_FDM182M "FDM182M"
#define USB_DEV_NAME_MDU300 "MDU300"
#define USB_DEV_NAME_MDU312 "MDU312"
@@ -458,6 +485,8 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_NAME_GNS190 "GNS190"
#define USB_DEV_NAME_GNS190_UC "GNS190_UC"
#define USB_DEV_NAME_GNS191 "GNS191"
+#define USB_DEV_NAME_GNS182 "GNS182"
+#define USB_DEV_NAME_GNS182_UC "GNS182_UC"
#define USB_DEV_NAME_N2X180 "N2X180"
@@ -471,6 +500,8 @@ enum MBG_USB_CLASS_CODES
#define USB_DEV_NAME_VMX180 "VMX180"
+#define USB_DEV_NAME_PSX210 "PSX210"
+
/** @} anchor MBG_USB_DEVICE_NAMES */
@@ -555,6 +586,14 @@ enum MBG_USB_CLASS_CODES
{ USB_DEV_GNS191, USB_DEV_NAME_GNS191 }, \
{ USB_DEV_VSG181H, USB_DEV_NAME_VSG181H }, \
{ USB_DEV_VMX180, USB_DEV_NAME_VMX180 }, \
+ { USB_DEV_GPS182, USB_DEV_NAME_GPS182 }, \
+ { USB_DEV_GNS182, USB_DEV_NAME_GNS182 }, \
+ { USB_DEV_GNS182_UC, USB_DEV_NAME_GNS182_UC }, \
+ { USB_DEV_PSX210, USB_DEV_NAME_PSX210 }, \
+ { USB_DEV_CPE182, USB_DEV_NAME_CPE182 }, \
+ { USB_DEV_FDM182, USB_DEV_NAME_FDM182 }, \
+ { USB_DEV_FDM182M, USB_DEV_NAME_FDM182M }, \
+ { USB_DEV_BPE8NNN, USB_DEV_NAME_BPE8NNN }, \
{ 0, /* end of table */ NULL } \
}