예제 #1
0
        /// <summary>
        /// Generates an 802.21-encoded message representing a LinkDown Event.
        /// </summary>
        /// <param name="srcID">The local node ID</param>
        /// <param name="dstID">The destination MIHF ID</param>
        /// <param name="ssid">The SSID of the disconnected network</param>
        /// <param name="PoAMac">The Physical Address for the Point of Access</param>
        /// <param name="reason">The reason for the disconnect</param>
        /// <returns>A fully encoded, ready to be sent Message representing a LinkDown</returns>
        public static Message Link_Down_Indication_802_11_MsgBuilder(ID srcID, ID dstID, String ssid, PhysicalAddress PoAMac, Link_Dn_Reason reason)
        {
            Message m = new Message();
            m.MIHHeader = new MIHHeader();
            m.MIHHeader.MID = new MessageID(MessageID.ServiceIdentifier.EVENT_SERVICE, MessageID.OperationCode.INDICATION, 3);
            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.OTHER_L2_ADDR, ssid)),
                        new Link_Addr(Link_Addr.Address_Type.MAC_ADDR, Utilities.PhysicalAddressToString(PoAMac)));
            Link_Dn_Reason downReason = reason;

            m.Payload = new Payload(srcID, dstID,
                TLV_HELPERS.TLVLinkIdentifier(linkIdentifier), TLV_HELPERS.TLVLinkDnReason(downReason));
            m.MIHHeader.PayloadLength = (ushort)m.Payload.PayloadValue.Length;
            return m;
        }
예제 #2
0
 public static byte[] TLVLinkDnReason(Link_Dn_Reason linkDnReason)
 {
     byte[] aux = { IntToByte((int)linkDnReason) };
     return Serialization.SerializeToTLV(TLV_VALUES.TLV_LINK_DOWN_REASON_CODE, aux);
 }
예제 #3
0
 /// <summary>
 /// The Link Down Event Class constructor.
 /// </summary>
 /// <param name="LinkIdentifier">The Link Identifier.</param>
 /// <param name="OldAccessRouter">The Old Access Router Address.</param>
 /// <param name="ReasonCode">The Reason Code, for the link down event.</param>
 public Link_Down(Link_Tuple_Id LinkIdentifier, Link_Addr OldAccessRouter, Link_Dn_Reason ReasonCode)
     : base(LinkIdentifier)
 {
     this.OldAccessRouter = OldAccessRouter;
     this.ReasonCode = ReasonCode;
 }