All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mobius.software.telco.protocols.diameter.commands.rfc4004.AAMobileNodeRequest Maven / Gradle / Ivy

package com.mobius.software.telco.protocols.diameter.commands.rfc4004;
/*
 * Mobius Software LTD
 * Copyright 2023, Mobius Software LTD and individual contributors
 * by the @authors tag.
 *
 * This program is free software: you can redistribute it and/or modify
 * under the terms of the GNU Affero General Public License as
 * published by the Free Software Foundation; either version 3 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see 
 */

import com.mobius.software.telco.protocols.diameter.ApplicationIDs;
import com.mobius.software.telco.protocols.diameter.CommandCodes;
import com.mobius.software.telco.protocols.diameter.annotations.DiameterCommandDefinition;
import com.mobius.software.telco.protocols.diameter.exceptions.MissingAvpException;
import com.mobius.software.telco.protocols.diameter.primitives.rfc4004.MIPHomeAgentHost;
import com.mobius.software.telco.protocols.diameter.primitives.rfc4004.MIPMNAAAAuth;

import io.netty.buffer.ByteBuf;

/**
*
* @author yulian oifa
*
*/

/*
 * 	5.1.  AA-Mobile-Node-Request

   	The AA-Mobile-Node-Request (AMR), indicated by the Command-Code field
   	set to 260 and the 'R' bit set in the Command Flags field, is sent by
   	an attendant (i.e., the Foreign Agent), acting as a Diameter client,
   	to an AAAF in order to request the authentication and authorization
   	of a mobile node.  The foreign agent (or home agent in the case of a
   	co-located Mobile Node) uses information found in the Registration
   	Request to construct the following AVPs, to be included as part of
   	the AMR:

             Home Address (MIP-Mobile-Node-Address AVP)
             Home Agent Address (MIP-Home-Agent-Address AVP)
             Mobile Node NAI (User-Name AVP [DIAMBASE])
             MN-HA Key Request (MIP-Feature-Vector AVP)
             MN-FA Key Request (MIP-Feature-Vector AVP)
             MN-AAA Authentication Extension (MIP-MN-AAA-Auth AVP)
             Foreign Agent Challenge Extension (MIP-FA-Challenge AVP)
             Home Agent NAI (MIP-Home-Agent-Host AVP)
             Home AAA server NAI (Destination-Host AVP [DIAMBASE])
             Home Agent to Foreign Agent SPI (MIP-HA-to-FA-SPI AVP)

   	If the mobile node's home address is zero, the foreign or home agent
   	MUST NOT include a MIP-Mobile-Node-Address AVP in the AMR.  If the
   	home agent address is zero or all ones, the MIP-Home-Agent-Address
   	AVP MUST NOT be present in the AMR.

   	If a home agent is used in a visited network, the AAAF MAY set the
   	Foreign-Home-Agent-Available flag in the MIP-Feature-Vector AVP in
   	the AMR message to indicate that it is willing to assign a Home Agent
   	in the visited realm.
   	
   	If the mobile node's home address is all ones, the foreign or home
   	agent MUST include a MIP-Mobile-Node-Address AVP, set to all ones.

   	If the mobile node includes the home agent NAI and the home AAA
   	server NAI [AAANAI], the foreign agent MUST include the MIP-Home-
   	Agent-Host AVP and the Destination-Host AVP in the AMR.

    Message Format

     ::= < Diameter Header: 260, REQ, PXY >
                                      < Session-ID >
                                      { Auth-Application-Id }
                                      { User-Name }
                                      { Destination-Realm }
                                      { Origin-Host }
                                      { Origin-Realm }
                                      { MIP-Reg-Request }
                                      { MIP-MN-AAA-Auth }
                                      [ Acct-Multi-Session-Id ]
                                      [ Destination-Host ]
                                      [ Origin-State-Id ]
                                      [ MIP-Mobile-Node-Address ]
                                      [ MIP-Home-Agent-Address ]
                                      [ MIP-Feature-Vector ]
                                      [ MIP-Originating-Foreign-AAA ]
                                      [ Authorization-Lifetime ]
                                      [ Auth-Session-State ]
                                      [ MIP-FA-Challenge ]
                                      [ MIP-Candidate-Home-Agent-Host ]
                                      [ MIP-Home-Agent-Host ]
                                      [ MIP-HA-to-FA-SPI ]
                                    * [ Proxy-Info ]
                                    * [ Route-Record ]
                                    * [ AVP ]
 */
@DiameterCommandDefinition(applicationId = ApplicationIDs.MOBILE_IPV4, commandCode = CommandCodes.AA_MOBILE_NODE, request = true, proxyable = true, name="AA-Mobile-Node-Request")
public interface AAMobileNodeRequest extends Rfc4004Request
{
	MIPMNAAAAuth getMIPMNAAAAuth();
	
	void setMIPMNAAAAuth(MIPMNAAAAuth value) throws MissingAvpException;
	
	public String getAcctMultiSessionId();
	
	void setAcctMultiSessionId(String value);

	ByteBuf getMIPFAChallenge();
	
	void setMIPFAChallenge(ByteBuf value);	
	
	String getMIPCandidateHomeAgentHost();
	
	void setMIPCandidateHomeAgentHost(String value);	
	
	MIPHomeAgentHost getMIPHomeAgentHost();
	
	void setMIPHomeAgentHost(MIPHomeAgentHost value);	
	
	Long getMIPHAtoFASPI();
	
	void setMIPHAtoFASPI(Long value);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy