From 68368dd99a2c98a4e8761f222f6174855d38bdd8 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 10 Jan 2012 22:39:07 +0100 Subject: nat: Implement clearing of TP-SRR flags from TPDUs Match IMSI and destination address against a set of entries, if it is matching the header will be modified and no sender report will be requested. Change the test case to request the sender report and then verify that this bit is reset to 0. --- openbsc/src/osmo-bsc_nat/bsc_nat_vty.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'openbsc/src/osmo-bsc_nat/bsc_nat_vty.c') diff --git a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c index 55b3958c0..81f70de75 100644 --- a/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c +++ b/openbsc/src/osmo-bsc_nat/bsc_nat_vty.c @@ -127,6 +127,9 @@ static int config_write_nat(struct vty *vty) if (_nat->tpdest_match_name) vty_out(vty, " rewrite-smsc tp-dest-match %s%s", _nat->tpdest_match_name, VTY_NEWLINE); + if (_nat->sms_clear_tp_srr_name) + vty_out(vty, " sms-clear-tp-srr %s%s", + _nat->sms_clear_tp_srr_name, VTY_NEWLINE); llist_for_each_entry(lst, &_nat->access_lists, list) write_acc_lst(vty, lst); @@ -512,6 +515,29 @@ DEFUN(cfg_nat_smsc_tpdest, &_nat->tpdest_match, argv[0]); } +DEFUN(cfg_nat_sms_clear_tpsrr, + cfg_nat_sms_clear_tpsrr_cmd, + "sms-clear-tp-srr FILENAME", + "SMS TPDU Sender Report Request clearing\n" + "Files with rules for matching MSISDN\n") +{ + return replace_rules(_nat, &_nat->sms_clear_tp_srr_name, + &_nat->sms_clear_tp_srr, argv[0]); +} + +DEFUN(cfg_nat_no_sms_clear_tpsrr, + cfg_nat_no_sms_clear_tpsrr_cmd, + "sms-clear-tp-srr", + NO_STR + "SMS TPDU Sender Report Request clearing\n") +{ + talloc_free(_nat->sms_clear_tp_srr_name); + _nat->sms_clear_tp_srr_name = NULL; + + bsc_nat_num_rewr_entry_adapt(NULL, &_nat->sms_clear_tp_srr, NULL); + return CMD_SUCCESS; +} + DEFUN(cfg_nat_ussd_lst_name, cfg_nat_ussd_lst_name_cmd, "ussd-list-name NAME", @@ -958,6 +984,8 @@ int bsc_nat_vty_init(struct bsc_nat *nat) install_element(NAT_NODE, &cfg_nat_number_rewrite_cmd); install_element(NAT_NODE, &cfg_nat_smsc_addr_cmd); install_element(NAT_NODE, &cfg_nat_smsc_tpdest_cmd); + install_element(NAT_NODE, &cfg_nat_sms_clear_tpsrr_cmd); + install_element(NAT_NODE, &cfg_nat_no_sms_clear_tpsrr_cmd); install_element(NAT_NODE, &cfg_nat_pgroup_cmd); install_element(NAT_NODE, &cfg_nat_no_pgroup_cmd); -- cgit v1.2.3