gsup_protocol.hrl: SM-RP-MR IE is mandatory for READY-FOR-SM messages

Change-Id: I09b6b8afb1c0d28d4bf214fb8f01c21c895b8546
diff --git a/include/gsup_protocol.hrl b/include/gsup_protocol.hrl
index e304654..3c867d6 100644
--- a/include/gsup_protocol.hrl
+++ b/include/gsup_protocol.hrl
@@ -198,9 +198,9 @@
   16#28 => #{message_type => mt_forward_sm_req, mandatory => [sm_rp_mr, sm_rp_da, sm_rp_oa, sm_rp_ui], optional => [sm_rp_mms]},
   16#29 => #{message_type => mt_forward_sm_err, mandatory => [sm_rp_mr, sm_rp_cause], optional => [sm_rp_ui]},
   16#2a => #{message_type => mt_forward_sm_res, mandatory => [sm_rp_mr], optional => [sm_rp_ui]},
-  16#2c => #{message_type => ready_for_sm_req, mandatory => [sm_alert_reason]},
-  16#2d => #{message_type => ready_for_sm_err, mandatory => [sm_rp_cause], optional => [sm_rp_ui]},
-  16#2e => #{message_type => ready_for_sm_res, mandatory => []},
+  16#2c => #{message_type => ready_for_sm_req, mandatory => [sm_rp_mr, sm_alert_reason]},
+  16#2d => #{message_type => ready_for_sm_err, mandatory => [sm_rp_mr, sm_rp_cause], optional => [sm_rp_ui]},
+  16#2e => #{message_type => ready_for_sm_res, mandatory => [sm_rp_mr]},
   16#30 => #{message_type => check_imei_req, mandatory => [imei]},
   16#31 => #{message_type => check_imei_err, mandatory => [cause]},
   16#32 => #{message_type => check_imei_res, mandatory => [imei_check_result]},
diff --git a/test/gsup_encode_decode_test.erl b/test/gsup_encode_decode_test.erl
index c0d3a21..65863c7 100644
--- a/test/gsup_encode_decode_test.erl
+++ b/test/gsup_encode_decode_test.erl
@@ -375,9 +375,16 @@
   ?assertEqual(Bin, gsup_protocol:encode(Map)).
 
 ready_for_sm_req_test() ->
-  Bin = <<16#2c, ?TEST_IMSI_IE, 16#46, 16#01, 16#02>>,
+  Bin = <<16#2c, ?TEST_IMSI_IE,
+    16#40, 16#01, %% SM-RP-MR
+      16#41,
+    16#46, 16#01, %% Alert reason
+      16#02
+  >>,
   Map = #{imsi => <<"123456789012345">>,
-                   message_type => ready_for_sm_req,sm_alert_reason => 2},
+                   message_type => ready_for_sm_req,
+                   sm_rp_mr => 65,
+                   sm_alert_reason => 2},
   ?assertEqual(Map, gsup_protocol:decode(Bin)),
   ?assertEqual(Bin, gsup_protocol:encode(Map)).