Support SlicingConfig for 5G Slicing Configuration

- add new HAL APIs getSlicingConfig() and getSlicingConfigResponse()
- create structs SlicingConfig, UrspRule, RouteSelectionDescriptor,
  RouteSelectionDescriptorParams, Nssais, and RejectedSliceInfo
- add SliceRejectionCause

Bug: 178075054
Test: run "atest VtsHalRadioV1_6TargetTest" and check the result for
      getSlicingConfig is PASSED
[3/13] PerInstance/RadioHidlTest_v1_6#getSlicingConfig/0_slot1: PASSED (15ms)

Change-Id: I5dc97d3c49d0bf4726975a5558360ebf9c09224b
Merged-In: I5dc97d3c49d0bf4726975a5558360ebf9c09224b
diff --git a/radio/1.6/IRadio.hal b/radio/1.6/IRadio.hal
index aa92975..e7267ef 100644
--- a/radio/1.6/IRadio.hal
+++ b/radio/1.6/IRadio.hal
@@ -511,6 +511,19 @@
     oneway getCurrentCalls_1_6(int32_t serial);
 
     /**
+     * Request to get the current slicing configuration including URSP rules and
+     * NSSAIs (configured, allowed and rejected).
+     * URSP stands for UE route selection policy and is defined in 3GPP TS 24.526
+     * Section 4.2.
+     * An NSSAI is a collection of network slices. Each network slice is identified by
+     * an S-NSSAI and is represented by the struct SliceInfo. NSSAI and S-NSSAI
+     * are defined in 3GPP TS 24.501.
+     *
+     * Response function is IRadioResponse.getSlicingConfigResponse()
+     */
+    oneway getSlicingConfig(int32_t serial);
+
+    /**
      * Provide Carrier specific information to the modem that must be used to
      * encrypt the IMSI and IMPI. Sent by the framework during boot, carrier
      * switch and everytime the framework receives a new certificate.