diff options
Diffstat (limited to 'src')
| -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, | 
