summaryrefslogtreecommitdiff
path: root/cleopatre/application/eoc/onlined/src/onlined_mme.c
diff options
context:
space:
mode:
Diffstat (limited to 'cleopatre/application/eoc/onlined/src/onlined_mme.c')
-rw-r--r--cleopatre/application/eoc/onlined/src/onlined_mme.c226
1 files changed, 0 insertions, 226 deletions
diff --git a/cleopatre/application/eoc/onlined/src/onlined_mme.c b/cleopatre/application/eoc/onlined/src/onlined_mme.c
deleted file mode 100644
index fbef767cee..0000000000
--- a/cleopatre/application/eoc/onlined/src/onlined_mme.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/* SPC300 project {{{
- *
- * Copyright (C) 2009 Spidcom
- *
- * <<<Licence>>>
- *
- * }}} */
-/**
- * \file application/eoc/onlined/src/onlined_mme.c
- * \brief communication with HP AV stack
- * \ingroup onlined
- *
- * All communication functions with the HP AV stack
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <stdio.h>
-#include <syslog.h>
-#include <linux/if_ether.h>
-#include <errno.h>
-#include <assert.h>
-#include <arpa/inet.h> /* for htons() */
-#include "onlined_mme.h"
-#include "onlined.h"
-#include "../../../../application/spidlib/inc/path.h"
-
-#ifdef __UTESTS__
- #include "../../../../devkit/tests/onlined/utests/override/inc/spidlib_stub.h"
- #include "../../../../devkit/tests/onlined/utests/override/inc/libmme_stub.h"
-#else
- #include "spidlib.h"
- #include "libmme.h"
-#endif
-
-int snd_rcv_mmes (onlined_ctx_t *ctx)
-{
- const char delimiter = ';';
- unsigned char snd_buffer[ETH_DATA_LEN];
- unsigned char rcv_buffer[ETH_DATA_LEN];
- mme_ctx_t mme_request_ctx, mme_confirm_ctx;
- char result, number_of_mac_addr;
- unsigned int result_len, number_of_mac_addr_len;
- unsigned char mac_addr_bin[ETH_ALEN];
- char mac_addr_str[MAC_STRING_MAX_LEN];
- unsigned int mac_addr_bin_len;
- char mac_plc0_str[MAC_STRING_MAX_LEN];
- unsigned char mac_plc0_bin[ETH_ALEN];
- int ret, j;
- char i;
- char *line[10];
- char model_number[64] = "SPiDCOMmodem1";
- char port_amount = 0x04;
- char port_amount_str[4];
- char authorisation;
- char authorisation_str[2];
- unsigned int authorisation_len;
- char software_version[64] = "eoc-alpha0-1";
- char downstream_attenuation = 0x0A;
- char downstream_attenuation_str[4];
- char upstream_attenuation;
- char upstream_attenuation_str[4];
- unsigned int upstream_attenuation_len;
- char downstream_quality = 0x1E;
- char downstream_quality_str[4];
- char upstream_quality = 0x28;
- char upstream_quality_str[4];
- char phy_downstream_quality = 0x32;
- char phy_downstream_quality_str[4];
- char phy_upstream_quality = 0x3C;
- char phy_upstream_quality_str[4];
- char *iface = IFACE;
-
- assert (NULL != ctx);
-
- /* init mme */
- ret = mme_init (&mme_request_ctx, MME_TYPE_VS_EOC_GET_TOPO | MME_TYPE_REQ, snd_buffer, (unsigned int)ETH_DATA_LEN);
- if (ret != MME_SUCCESS)
- {
- return ret;
- }
-
- ret = mme_init (&mme_confirm_ctx, MME_TYPE_VS_EOC_GET_TOPO | MME_TYPE_CNF, rcv_buffer, (unsigned int)ETH_DATA_LEN);
- if (ret != MME_SUCCESS)
- {
- return ret;
- }
-
- /* get the PLC MAC address */
- //ret = spidlib_network_get_mac (iface, (unsigned char *)mac_plc0_str);
- sprintf(mac_plc0_str, "%s", "aa:bb:cc:dd:ee:ff");
- if (ret != SPIDLIB_SUCCESS)
- {
- return ret;
- }
-
- /* ...and convert it to binary format */
- ret = spidlib_mac_str_to_bin(mac_plc0_str, mac_plc0_bin);
- if (ret != SPIDLIB_SUCCESS)
- {
- return ONLINED_SPIDLIB_BIN_STR_CONVERSION;
- }
-
- //mme_request_ctx.tail = 1;
-
- ret = mme_send (&mme_request_ctx, MME_SEND_REQ_CNF, (unsigned char *)iface, mac_plc0_bin, &mme_confirm_ctx);
- if (MME_SUCCESS != ret)
- {
- return ret;
- }
-
- ret = mme_pull (&mme_confirm_ctx, (void *)&result, 1, &result_len);
- if (MME_SUCCESS != ret)
- {
- return ret;
- }
-
- if (result != 0 )
- {
- return ONLINED_MME_WRONG_RESULT;
- }
-
- /* get the number of received MAC addresses */
- ret = mme_pull (&mme_confirm_ctx, (void *)&number_of_mac_addr, 1, &number_of_mac_addr_len);
- if (MME_SUCCESS != ret)
- {
- return ret;
- }
-
- for (i = 0; i < number_of_mac_addr; i++)
- {
- // get MAC address from MME
- ret = mme_pull (&mme_confirm_ctx, (void *)mac_addr_bin, ETH_ALEN, &mac_addr_bin_len);
- if (MME_SUCCESS != ret)
- {
- return ret;
- }
-
- ret = spidlib_mac_bin_to_str(mac_addr_bin, mac_addr_str);
- if (SPIDLIB_SUCCESS != ret)
- {
- return ONLINED_SPIDLIB_BIN_STR_CONVERSION;
- }
-
- if (strcmp(mac_addr_str, "00:00:00:00:00:00") == 0)
- {
- return ONLINED_MME_MAC_ADDR_NOT_AVAILABLE;
- }
-
- // get STA allowed / not allowed from MME
- ret = mme_pull (&mme_confirm_ctx, (void *)&authorisation, 1, &authorisation_len);
- if (MME_SUCCESS != ret)
- {
- return ret;
- }
-
- if ((authorisation != 0) && (authorisation != 1))
- {
- return ONLINED_MME_AUTHORISATION_WRONG_VALUE;
- }
-
- sprintf(authorisation_str, "%d", authorisation);
-
- // get attenuation from MME
- ret = mme_pull (&mme_confirm_ctx, (void *)&upstream_attenuation, 1, &upstream_attenuation_len);
- if (MME_SUCCESS != ret)
- {
- return ret;
- }
-
- sprintf(upstream_attenuation_str, "%d", upstream_attenuation);
-
- line[0] = model_number;
-
- sprintf(port_amount_str, "%d", port_amount);
- line[1] = port_amount_str;
-
- line[2] = authorisation_str;
-
- line[3] = software_version;
-
- sprintf(downstream_attenuation_str, "%d", downstream_attenuation);
- line[4] = downstream_attenuation_str;
-
- line[5] = upstream_attenuation_str;
-
- sprintf(downstream_quality_str, "%d", downstream_quality);
- line[6] = downstream_quality_str;
-
- sprintf(upstream_quality_str, "%d", upstream_quality);
- line[7] = upstream_quality_str;
-
- sprintf(phy_downstream_quality_str, "%d", phy_downstream_quality);
- line[8] = phy_downstream_quality_str;
-
- sprintf(phy_upstream_quality_str, "%d", phy_upstream_quality);
- line[9] = phy_upstream_quality_str;
-
- //write line to file
- ret = spidlib_config_write_line(SPIDLIB_EOC_ONLINE_INFO_PATH, delimiter, mac_addr_str, 10, line);
- if (SPIDLIB_SUCCESS != ret)
- {
- return ret;
- }
- }
-
- // there should be no more data left in MME. If there are, it is an error.
- ret = mme_pull (&mme_confirm_ctx, (void *)mac_addr_bin, ETH_ALEN, &mac_addr_bin_len);
- if (MME_SUCCESS != ret)
- {
- return ret;
- }
-
- for (j = 0; j < ETH_ALEN; j++)
- {
- if ( mac_addr_bin[j] != '\0' )
- {
- return ONLINED_MME_NOT_EMPTY;
- }
- }
-
- return ONLINED_SUCCESS;
-}
-
-
-