aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2009-12-29 11:26:38 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2009-12-30 04:40:50 +0100
commit086ffa51b4f56eb875e4918a2ee1802581c6cd67 (patch)
treee2069805789d2bc41ea74edd03eb5e78f38c4688 /openbsc/src
parente5198967a6745e36b164fb1d18314c9d1a251719 (diff)
[abis] Add ACK signal and send it on SET NVATTR ACK
* Add the signal definition to signal.h * Dispatch the signal from abis_nm.c * Handle it in ipaccess-config.c and say we are done with work
Diffstat (limited to 'openbsc/src')
-rw-r--r--openbsc/src/abis_nm.c3
-rw-r--r--openbsc/src/ipaccess/ipaccess-config.c13
2 files changed, 16 insertions, 0 deletions
diff --git a/openbsc/src/abis_nm.c b/openbsc/src/abis_nm.c
index 211f70ee4..9dedcaf5d 100644
--- a/openbsc/src/abis_nm.c
+++ b/openbsc/src/abis_nm.c
@@ -2805,6 +2805,9 @@ static int abis_nm_rx_ipacc(struct msgb *msg)
case NM_MT_IPACC_GET_NVATTR_NACK:
dispatch_signal(SS_NM, S_NM_IPACC_NACK, &foh->msg_type);
break;
+ case NM_MT_IPACC_SET_NVATTR_ACK:
+ dispatch_signal(SS_NM, S_NM_IPACC_ACK, &foh->msg_type);
+ break;
default:
break;
}
diff --git a/openbsc/src/ipaccess/ipaccess-config.c b/openbsc/src/ipaccess/ipaccess-config.c
index 016459bdd..3b81c2a38 100644
--- a/openbsc/src/ipaccess/ipaccess-config.c
+++ b/openbsc/src/ipaccess/ipaccess-config.c
@@ -83,6 +83,16 @@ static int ipacc_msg_nack(u_int8_t mt)
return 0;
}
+static int ipacc_msg_ack(u_int8_t mt)
+{
+ if (sw_load_state == 1) {
+ fprintf(stderr, "The new software is activaed.\n");
+ exit(0);
+ }
+
+ return 0;
+}
+
struct ipacc_ferr_elem {
int16_t freq_err;
u_int8_t freq_qual;
@@ -170,6 +180,9 @@ static int nm_sig_cb(unsigned int subsys, unsigned int signal,
case S_NM_IPACC_NACK:
msg_type = signal_data;
return ipacc_msg_nack(*msg_type);
+ case S_NM_IPACC_ACK:
+ msg_type = signal_data;
+ return ipacc_msg_ack(*msg_type);
case S_NM_TEST_REP:
return test_rep(signal_data);
default: