diff options
Diffstat (limited to 'src/ipcpd/normal')
-rw-r--r-- | src/ipcpd/normal/fmgr.c | 6 | ||||
-rw-r--r-- | src/ipcpd/normal/main.c | 13 | ||||
-rw-r--r-- | src/ipcpd/normal/shm_pci.c | 20 |
3 files changed, 29 insertions, 10 deletions
diff --git a/src/ipcpd/normal/fmgr.c b/src/ipcpd/normal/fmgr.c index f78d390a..5a1bd842 100644 --- a/src/ipcpd/normal/fmgr.c +++ b/src/ipcpd/normal/fmgr.c @@ -296,6 +296,12 @@ int fmgr_init(void) } } + if (shm_pci_init()) { + log_err("Failed to init shm pci."); + fmgr_destroy_flows(); + return -1; + } + memset(&info, 0, sizeof(info)); strcpy(info.ae_name, DT_AE); diff --git a/src/ipcpd/normal/main.c b/src/ipcpd/normal/main.c index 41e0544d..ef7f07cf 100644 --- a/src/ipcpd/normal/main.c +++ b/src/ipcpd/normal/main.c @@ -85,6 +85,7 @@ static int boot_components(void) char buf[256]; ssize_t len; enum pol_addr_auth pa; + char path[RIB_MAX_PATH_LEN + 1]; len = rib_read(DIF_PATH, &buf, 256); if (len < 0) { @@ -108,7 +109,6 @@ static int boot_components(void) if (rib_read(BOOT_PATH "/addr_auth/type", &pa, sizeof(pa)) != sizeof(pa)) { log_err("Failed to read policy for address authority."); - connmgr_fini(); return -1; } @@ -124,6 +124,14 @@ static int boot_components(void) return -1; } + path[0] = '\0'; + rib_path_append(rib_path_append(path, MEMBERS_NAME), ipcpi.name); + if (rib_write(path, &ipcpi.dt_addr, sizeof(&ipcpi.dt_addr))) { + log_err("Failed to write address to member object."); + addr_auth_fini(); + return -1; + } + log_dbg("IPCP got address %" PRIu64 ".", ipcpi.dt_addr); log_dbg("Starting ribmgr."); @@ -342,6 +350,9 @@ static int normal_ipcp_bootstrap(struct dif_config * conf) rib_write(BOOT_PATH "/dt/const/seqno_size", &conf->seqno_size, sizeof(conf->seqno_size)) || + rib_write(BOOT_PATH "/dt/const/pdu_length_size", + &conf->pdu_length_size, + sizeof(conf->pdu_length_size)) || rib_write(BOOT_PATH "/dt/const/has_ttl", &conf->has_ttl, sizeof(conf->has_ttl)) || diff --git a/src/ipcpd/normal/shm_pci.c b/src/ipcpd/normal/shm_pci.c index 001463eb..e6cd1042 100644 --- a/src/ipcpd/normal/shm_pci.c +++ b/src/ipcpd/normal/shm_pci.c @@ -88,30 +88,32 @@ int shm_pci_init(void) /* read dt constants from the RIB */ if (rib_read(BOOT_PATH "/dt/const/addr_size", &pci_info.dtc.addr_size, - sizeof(pci_info.dtc.addr_size)) || + sizeof(pci_info.dtc.addr_size)) < 0 || rib_read(BOOT_PATH "/dt/const/cep_id_size", &pci_info.dtc.cep_id_size, - sizeof(pci_info.dtc.cep_id_size)) || + sizeof(pci_info.dtc.cep_id_size)) < 0 || rib_read(BOOT_PATH "/dt/const/seqno_size", &pci_info.dtc.seqno_size, - sizeof(pci_info.dtc.seqno_size)) || + sizeof(pci_info.dtc.seqno_size)) < 0 || + rib_read(BOOT_PATH "/dt/const/pdu_length_size", + &pci_info.dtc.pdu_length_size, + sizeof(pci_info.dtc.pdu_length_size)) < 0 || rib_read(BOOT_PATH "/dt/const/has_ttl", &pci_info.dtc.has_ttl, - sizeof(pci_info.dtc.has_ttl)) || + sizeof(pci_info.dtc.has_ttl)) < 0 || rib_read(BOOT_PATH "/dt/const/has_chk", &pci_info.dtc.has_chk, - sizeof(pci_info.dtc.has_chk)) || + sizeof(pci_info.dtc.has_chk)) < 0 || rib_read(BOOT_PATH "/dt/const/min_pdu_size", &pci_info.dtc.min_pdu_size, - sizeof(pci_info.dtc.min_pdu_size)) || + sizeof(pci_info.dtc.min_pdu_size)) < 0 || rib_read(BOOT_PATH "/dt/const/max_pdu_size", &pci_info.dtc.max_pdu_size, - sizeof(pci_info.dtc.max_pdu_size))) + sizeof(pci_info.dtc.max_pdu_size)) < 0) return -1; pci_info.dst_addr_o = PDU_TYPE_SIZE; pci_info.src_addr_o = pci_info.dst_addr_o + pci_info.dtc.addr_size; - pci_info.dst_cep_id_o = pci_info.dst_addr_o + pci_info.dtc.addr_size; pci_info.dst_cep_id_o = pci_info.src_addr_o + pci_info.dtc.addr_size; pci_info.src_cep_id_o = pci_info.dst_cep_id_o + pci_info.dtc.cep_id_size; @@ -132,7 +134,7 @@ int shm_pci_init(void) } void shm_pci_fini(void) { - return ; + return; } int shm_pci_ser(struct shm_du_buff * sdb, |