Exemple #1
0
        private static Link_Parameters_Report ReportBuilder(ushort subType, ushort value)
        {
            //Link Identification Information
            Link_Addr linkAddr = new Link_Addr(Link_Addr.Address_Type.MAC_ADDR, Information.GenericInfo.PhysicalAddress.ToString());
            Link_Id linkId = new Link_Id(linkType, linkAddr);
            Link_Tuple_Id linkTuppleId = new Link_Tuple_Id(linkId, linkAddr);
            Link_Tuple_Id nicTupple = new Link_Tuple_Id(linkId, linkAddr);

            //Specified Parameter information and report building
            List<Link_Param_Rpt> paramsList = new List<Link_Param_Rpt>();
            Link_Param_Type linkParamType = new Link_Param_Type(Link_Param_Types.LINK_PARAM_GEN, subType);
            Link_Param linkParam = new Link_Param(linkParamType, value);
            Link_Param_Rpt reportSingle = new Link_Param_Rpt(linkParam, null);
            paramsList.Add(reportSingle);
            return new Link_Parameters_Report(nicTupple, paramsList);
        }
Exemple #2
0
        /// <summary>
        /// Generates a Link_Parameters_Report.Indication message, reporting the specified value of the specified parameter type.
        /// </summary>
        /// <param name="src">The source MIHF ID</param>
        /// <param name="dst">The destination MIHF ID</param>
        /// <param name="APMac">The Physical Address of the Access Point (corresponding to the active link)</param>
        /// <param name="networkSSID">The SSID for the active link</param>
        /// <param name="paramType">The type of parameter to report</param>
        /// <param name="value">The value of the parameter</param>
        /// <returns>A Link_Parameters_Report.Indication message ready to be sent.</returns>
        public static Message Link_Parameters_Report_Indication_MsgBuilder(ID src, ID dst, PhysicalAddress APMac, byte[] networkSSID, Link_Param_Abs_Type paramType, ushort value )
        {
            Message m = new Message();
            m.MIHHeader = new MIHHeader();
            m.MIHHeader.MID = new MessageID(MessageID.ServiceIdentifier.EVENT_SERVICE, MessageID.OperationCode.INDICATION, 5);
            m.MIHHeader.VersionValue = 1;
            Link_Tuple_Id linkIdentifier = new Link_Tuple_Id(
                        new Link_Id(Link_Type.Wireless_IEEE80211, new Link_Addr(Link_Addr.Address_Type.MAC_ADDR, Utilities.PhysicalAddressToString(APMac))),
                        new Link_Addr(Link_Addr.Address_Type.OTHER_L2_ADDR, new String(Encoding.ASCII.GetChars(networkSSID))));

            Link_Param_Rpt lpr = new Link_Param_Rpt(
                                    new Link_Param(
                                        Link_Param_Type.FromAbsType(paramType),
                                        (ushort)value,
                                        0 /*TODO 0=LinkParamVal (choice)*/),
                                    null);
            List<byte[]> lprList = new List<byte[]>();
            lprList.Add(lpr.ByteValue);

            m.Payload = new Payload(src,
                                    dst,
                                    Serialization.SerializeToTLV(TLV_VALUES.TLV_LINK_IDENTIFIER, linkIdentifier.ByteValue),
                                    Serialization.SerializeToTLV(TLV_VALUES.TLV_LINK_PARAM_REPORT_LIST, Serialization.EncodingList(lprList.ToArray())));
            m.MIHHeader.PayloadLength = (ushort)m.Payload.PayloadValue.Length;
            return m;
        }