summaryrefslogtreecommitdiff
path: root/polux/application/agent/inc/underlayer.h
diff options
context:
space:
mode:
Diffstat (limited to 'polux/application/agent/inc/underlayer.h')
-rwxr-xr-xpolux/application/agent/inc/underlayer.h257
1 files changed, 257 insertions, 0 deletions
diff --git a/polux/application/agent/inc/underlayer.h b/polux/application/agent/inc/underlayer.h
new file mode 100755
index 0000000000..eb67985e71
--- /dev/null
+++ b/polux/application/agent/inc/underlayer.h
@@ -0,0 +1,257 @@
+#ifndef __UNDERLAYER_H__
+#define __UNDERLAYER_H__
+
+#include "mib-interface.h"
+#include "mib-common.h"
+#include "snmp_pp/log.h"
+
+#include "smmlib.h"
+
+#include <iostream>
+
+// this class provides the default implementation for the Snmp agent
+// underlayer, that is to say, to call the kernel.
+
+#define SMM_MAX_RETRIES 0
+
+class SystemManager;
+
+class Underlayer {
+
+public:
+ virtual ~Underlayer() { };
+
+ virtual void setIsInit(bool enabled);
+
+ /*
+ * GET/SET METHODS
+ */
+
+ /* SARFT MIB */
+
+ // PROPERTY-MIB
+ virtual int getConfFileParam ( char* get_value, const char* param, const char* file, int length );
+ virtual int writeConfFileParam ( const char* get_value, const char* param, const char* file );
+
+ // AnalogPropertyTable
+ // TODO
+
+ // DiscretePropertyTable
+ // TODO
+
+ // CurrentAlarmTable
+ // TODO
+
+ // ALARM-MIB
+
+ virtual int getAlarmLogNumberOfEntries ( int *get_value );
+ virtual int getAlarmLogLastIndex ( int *get_value );
+
+ // AlarmLogTable
+ // TODO
+
+ // GENERAL-MIB
+
+ // MasterAdminGroup
+ virtual int getAdminLogicalId ( char *get_value );
+ virtual int setAdminLogicalId ( const char *set_value );
+ virtual int getAdminManufactoryInfo ( char *get_value );
+ virtual int getAdminHardwareVersion ( char *get_value );
+ virtual int getAdminModelNumber ( char *get_value );
+ virtual int getAdminSerialNumber ( char *get_value );
+ virtual int getAdminSoftwareVersion ( char *get_value );
+ virtual int getAdminVendorSpecialInfo ( char *get_value );
+ virtual int getAdminIpData ( const char *iface, char *address, char *netmask, char *broadcast, char *gateway );
+ virtual int setAdminIpData ( const char *iface, char *address, char *netmask, char *broadcast, char *gateway );
+ virtual int getAdminEmsIpAddress ( char *get_value );
+ virtual int setAdminEmsIpAddress ( const char *set_value );
+ virtual int getAdminResetCause ( admin_reset_cause_t *get_value );
+ virtual int getAdminStatus ( unsigned char *get_value );
+ virtual int saveConfiguration ( );
+
+ // RfGroup
+ virtual int getRfMasterOutputLevel ( int *get_value );
+ virtual int setRfMasterOutputLevel ( int set_value );
+
+ // MacGroup
+ virtual int getMacVlanEnable ( spidlib_boolean_t *get_value );
+ virtual int setMacVlanEnable ( spidlib_boolean_t set_value );
+ virtual int getMacVlanIdLimitation ( int *get_value );
+ virtual int setMacVlanIdLimitation ( int set_value );
+ virtual int getMacVlan ( spidlib_vlan_link_t vlan_direction, spidlib_vlan_rule_t *get_value );
+ virtual int getMacVlanCommon ( spidlib_vlan_common_rule_t *get_value );
+ virtual int getMacVlanAll ( spidlib_vlan_link_t vlan_direction, spidlib_vlan_rule_t *get_value, int *nb_rules );
+ virtual int getMacVlanCommonAll ( spidlib_vlan_common_rule_t *get_value, int *nb_rules );
+ virtual int setMacVlan ( spidlib_vlan_link_t vlan_direction, const spidlib_vlan_rule_t *set_value );
+ virtual int setMacVlanCommon ( const spidlib_vlan_common_rule_t *set_value );
+ virtual int getMacBroadcastRestrictionEn ( spidlib_boolean_t *get_value );
+ virtual int setMacBroadcastRestrictionEn ( spidlib_boolean_t set_value );
+ virtual int getMacUnknownRestrictionEn ( spidlib_boolean_t *get_value );
+ virtual int setMacUnknownRestrictionEn ( spidlib_boolean_t set_value );
+ virtual int getMacBroadcastRestriction ( int *get_value );
+ virtual int setMacBroadcastRestriction ( int set_value );
+ virtual int getMacUnknownRestriction ( int *get_value );
+ virtual int setMacUnknownRestriction ( int set_value );
+ virtual int getMacPortIsolation ( spidlib_boolean_t *get_value );
+ virtual int setMacPortIsolation ( spidlib_boolean_t set_value );
+
+ // commonSoftwareGroup
+ virtual enum mib_softUpgRc softwareMasterUpload ( char *ftp_ip, uint16_t ftp_port, char *login, char *passwd, char *master_file);
+ virtual enum mib_softUpgRc softwareSlaveUpload ( char *ftp_ip, uint16_t ftp_port, char *login, char *passwd, char *slave_file);
+
+ // commonSlaveGroup
+ //virtual int getWhiteList ( spidlib_white_list_register_t *get_value );
+ //virtual int getWhiteListAll ( spidlib_white_list_register_t *get_value, int *nb_registered );
+ //virtual int setWhiteList ( const spidlib_white_list_register_t *set_value );
+ virtual int onlineAllReset ( );
+ virtual int getMacLimit ( unsigned int* get_value ); // for all slaves (commonOnlineAllExtMACLimitation)
+ virtual int setMacLimit ( unsigned int set_value ); // for all slaves (commonOnlineAllExtMACLimitation)
+ virtual int getMacLimit ( const unsigned char *mac_address, unsigned int *get_value ); // for one slave (commonOnlineExtPCLimitation)
+ virtual int setMacLimit ( const unsigned char *mac_address, unsigned int set_value ); // for one slave (commonOnlineExtPCLimitation)
+ virtual int getOnlineAllRfOutputLevel ( int *get_value );
+ virtual int setOnlineAllRfOutputLevel ( int set_value );
+ virtual int getOnlineIp ( const unsigned char *mac_address, struct online_ip* ip );
+ virtual int setOnlineIp ( const unsigned char *mac_address, const struct online_ip* ip );
+ virtual int getOnlineModelNumber ( const unsigned char *mac_address, char *online_model_number, size_t len );
+ virtual int getOnlinePortAmount ( const unsigned char *mac_address, spidcom_nvram_t *nvram);
+
+ virtual int getOnlineInfo ( const unsigned char *mac_address, unsigned int* current_image, unsigned int* archi, unsigned int* eth_port, smm_image_info_t* info );
+ virtual int getOnlinePlcStatus (const unsigned char * mac_address, unsigned int* bssid, unsigned int* tei, unsigned int* nb_hosts, spidlib_plc_mode_t* mode, int* gain, int* attenuation);
+ virtual int onlineReset ( const unsigned char *mac_address );
+ virtual int getOnlineOutputLevel ( const unsigned char *mac_address, int *get_value );
+ virtual int setOnlineOutputLevel ( const unsigned char *mac_address, int set_value );
+
+ virtual int mib_getPlcSystem(struct plc_system * plcSystem);
+ virtual int mib_getSysname(char *sysname);
+ virtual int mib_setSysname(char *sysname);
+
+
+ virtual int mib_getBridgeMac(struct bridge_mac * bridgeMac);
+ virtual int mib_setBridgeMac(struct bridge_mac * bridgeMac);
+
+
+ virtual int mib_getPlcAnalyser(struct plc_analyser * plcAnalyser);
+ virtual int mib_setPlcAnalyser(struct plc_analyser * plcAnalyser);
+
+
+ virtual int mib_setAgcAnalyser(struct agc_analyser * agcAnalyser);
+ virtual int mib_getAgcAnalyser(struct agc_analyser * agcAnalyser);
+
+
+ virtual int mib_getEthMac(struct eth_mac * ethMac);
+ virtual int mib_setEthMac(struct eth_mac * ethMac);
+
+
+ virtual int mib_getPlcMac(struct plc_mac * plcMac);
+ virtual int mib_setPlcMac(struct plc_mac * plcMac);
+
+
+ virtual int mib_getHostNb(void);
+ virtual int mib_getPlcHost(int hostNb, struct plc_host * plcHost);
+ virtual int mib_setPlcHost(int hostNb, struct plc_host * plcHost);
+
+ virtual int mib_getPlcLightHost(int hostNb, struct plc_host * plcHost);
+ virtual int mib_getIndexByMac(const unsigned char iMacAddress[6]);
+ virtual int mib_getPlcBasePortByIndex(int hostNb, struct plc_base_port * plcBasePort);
+
+
+ /* No context for the system_carrier_tab, as the system is unique */
+ virtual int mib_getSystemCarrier(struct system_carrier_tab * systemCarrierTab);
+
+ virtual int mib_setSystemCarrier(struct system_carrier_tab * systemCarrierTab);
+
+ virtual int mib_setFlatAdapt(void);
+
+ virtual void mib_commit(void);
+
+ virtual void mib_boardReset(void);
+
+#ifdef __LINUX__
+ virtual int init_socket(void);
+
+ virtual void close_socket(void);
+
+#endif /*__LINUX__*/
+
+ virtual enum mib_softUpgRc mib_openFTP(char ftpServerIp[16], uint16_t ftpServerPort, char* login, char* passwd);
+ virtual enum mib_softUpgRc mib_closeFTP(void);
+ virtual enum mib_softUpgRc mib_upgradeSoftware(char *ftpIp, uint16_t ftp_port, char* login, char* passwd, char* remoteFile);
+ virtual enum mib_softUpgRc mib_getLastUploadStatus(void);
+ virtual enum mib_softUpgRc mib_getSoftwareRelease(char releaseName[10][32]);
+ virtual enum mib_softUpgRc mib_commitSoftwareUpgrade(char* softwareName);
+ virtual enum mib_softUpgRc mib_eraseRelease(char *releaseName);
+ virtual void mib_get_bootstats(int *boot, int *manual_reset, int *failure_reset);
+
+
+ // STP: spanning tree
+ virtual bool mib_get_stp_enabled(unsigned char Interface );
+ virtual void mib_set_stp_enabled(bool enabled,unsigned char Interface);
+
+
+ // ETH config values: current values
+ virtual int mib_getEthCurrentMode(enumDuplex_t& oMode);
+ virtual int mib_getEthCurrentSpeed(enumSpeed_t& oSpeed);
+
+ // wished values
+ virtual enumSpeed_t mib_getWishedEthSpeed();
+ virtual int mib_setWishedEthSpeed(long speed);
+ virtual enumDuplex_t mib_getWishedEthMode();
+ virtual int mib_setWishedEthMode(int mode);
+
+ // Auto mode
+/* virtual bool mib_get_eth_auto_mode();
+ virtual void mib_set_eth_auto_mode(bool enabled);
+
+ virtual bool mib_get_eth_auto_speed();
+ virtual void mib_set_eth_auto_speed(bool enabled); */
+
+
+ // Bridge status
+ virtual int mib_get_bridge_admin_status();
+ virtual void mib_set_bridge_admin_status(int status);
+
+
+ // PLC options
+ virtual bool mib_get_plc_is_spy_dynamic();
+ virtual void mib_set_plc_is_spy_dynamic(bool enabled);
+ virtual unsigned int mib_get_plc_static_spy_synch_band_nb();
+ virtual void mib_set_plc_static_spy_synch_band_nb(unsigned int bandNb);
+
+ virtual bool mib_get_plc_segmentation_and_reassembly();
+ virtual void mib_set_plc_segmentation_and_reassembly(bool enabled);
+ virtual bool mib_get_plc_power_equalization();
+ virtual void mib_set_plc_power_equalization(bool enabled);
+
+ //BSSID
+ virtual unsigned int mib_get_plc_bss_id();
+ virtual void mib_set_plc_bss_id(unsigned int bssId);
+ virtual unsigned int mib_get_plc_preferred_bss_id();
+ virtual void mib_set_plc_preferred_bss_id(unsigned int bssId);
+
+ // RADIUS
+ virtual unsigned long int mib_get_radius_auth_ip();
+ virtual int mib_get_radius_auth_port();
+ virtual char *mib_get_radius_auth_password();
+ virtual int mib_get_radius_auth_method();
+ virtual char* mib_get_radius_auth_username();
+ virtual bool mib_set_radius_master_authentication(int authMethod,
+ unsigned long radiusAuthServerAddressInt,
+ long radiusAuthClientServerPortNumber,
+ const char *radiusPassword);
+
+ virtual bool mib_set_radius_slave_authentication(const char *radiusUserName,
+ const char *radiusPassword);
+
+
+ // DHCP
+ virtual void mib_set_is_ip_dynamic(bool isDynamic);
+ virtual bool mib_get_is_ip_dynamic();
+
+ // IpAddress display
+ //virtual void mib_mac_add_to_str_ip(char* strIp,const unsigned char macAdd[],const char* dev);
+
+ // SNMP Community
+ virtual bool mib_get_SNMP_community(char * pSnmp_GET_community_name, char * pSnmp_SET_community_name); //---- FD01: SNMP community
+};
+
+#endif /*UNDERLAYER_H_*/