1753 |
1753 |
net_addr *n = (net_addr *) &net;
|
1754 |
1754 |
|
1755 |
1755 |
int keyAdr = n->data[0] + n->data[1] + n->data[2] + n->data[3];
|
1756 |
|
char *asCKey = calloc(12, sizeof(char));
|
|
1756 |
char asCKey[12];
|
1757 |
1757 |
char local_cKey[12];
|
1758 |
1758 |
sprintf(local_cKey, "%d%d%d%d", n->data[3], n->data[2], n->data[1], n->data[0]);
|
1759 |
1759 |
sprintf(cKey, "%d%d%d%d", n->data[3], n->data[2], n->data[1], n->data[0]);
|
1760 |
1760 |
//sprintf(nhCKey, "%d", nhKey);
|
1761 |
|
snprintf(asCKey, 13, "%d", ASRicezione);
|
|
1761 |
sprintf(asCKey, "%d", ASRicezione);
|
1762 |
1762 |
|
1763 |
1763 |
RTable *objFound;
|
1764 |
1764 |
map_iter_t iter;
|
1765 |
1765 |
const char *key;
|
1766 |
1766 |
int *NHmap;
|
1767 |
|
log(L_INFO "local_cKey: %s, nhCKey: %s, asCKey: %s", local_cKey, nhCKey, *asCKey);
|
|
1767 |
log(L_INFO "local_cKey: %s, nhCKey: %s, asCKey: %s", local_cKey, nhCKey, asCKey);
|
1768 |
1768 |
statoAttualeDellaMappa();
|
1769 |
1769 |
//log(L_INFO "{type: UPDATE_RX, dest: %I4, from: %s, nh: %s}", net.prefix, asCKey, nhCKey);
|
1770 |
1770 |
|
... | ... | |
1834 |
1834 |
objFound = map_get(RTmap, local_cKey);
|
1835 |
1835 |
if(objFound != NULL) {
|
1836 |
1836 |
if (objFound->interno != 0) { //Se io sono origine e NH allora non aggiungo niente, non ho carico in ingresso per le mie stesse destinazioni
|
1837 |
|
float *LoadInmap = map_get(objFound->loadin, *asCKey);
|
|
1837 |
float *LoadInmap = map_get(objFound->loadin, asCKey);
|
1838 |
1838 |
if (LoadInmap) {
|
1839 |
1839 |
snprintf(output, 50, "%f", loadOutRilevato);
|
1840 |
1840 |
log(L_INFO "Aggiorno il valore loadIn per questo NH, loadOutRilevato: %s NNH: %d", output, numeroNHarrivati);
|
... | ... | |
1843 |
1843 |
log(L_INFO "Nuovo valore: %s", output);
|
1844 |
1844 |
} else {
|
1845 |
1845 |
snprintf(output, 50, "%f", loadOutRilevato);
|
1846 |
|
log(L_INFO "LoadIn non trovato nella mappa, lo aggiungo key: %s, loadOutRilevato: %s NNH: %d", *asCKey, output, numeroNHarrivati);
|
|
1846 |
log(L_INFO "LoadIn non trovato nella mappa, lo aggiungo key: %s, loadOutRilevato: %s NNH: %d", asCKey, output, numeroNHarrivati);
|
1847 |
1847 |
float valoreLoadIn = loadOutRilevato / (numeroNHarrivati * 1.0);
|
1848 |
|
if (map_set(objFound->loadin, asCKey, valoreLoadIn) != 0) {
|
|
1848 |
if (map_set(objFound->loadin, &asCKey[0], valoreLoadIn) != 0) {
|
1849 |
1849 |
log(L_INFO "Elemento NON aggiunto alla mappa ERROR");
|
1850 |
1850 |
}
|
1851 |
1851 |
}
|
... | ... | |
1855 |
1855 |
log(L_INFO "Io NON sono tra i NH del mittente, rimuovo leventuale loadin");
|
1856 |
1856 |
objFound = map_get(RTmap, local_cKey);
|
1857 |
1857 |
if(objFound != NULL) {
|
1858 |
|
float *LoadI = map_get(objFound->loadin, *asCKey);
|
|
1858 |
float *LoadI = map_get(objFound->loadin, asCKey);
|
1859 |
1859 |
if(LoadI != NULL) {
|
1860 |
1860 |
char output_tmp[50];
|
1861 |
1861 |
snprintf(output_tmp, 50, "%f", *LoadI);
|
1862 |
1862 |
log(L_INFO
|
1863 |
1863 |
"con local_ckey: %s e asCkey: %s ho un loadin di: %f da rimuovere", output_tmp);
|
1864 |
|
map_remove(objFound->loadin, *asCKey);
|
|
1864 |
map_remove(objFound->loadin, asCKey);
|
1865 |
1865 |
}
|
1866 |
1866 |
}
|
1867 |
1867 |
}
|