Class TxCoordination
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.kernel.InstantiableNamedObj
-
- ptolemy.kernel.Entity<T>
-
- ptolemy.kernel.ComponentEntity<T>
-
- ptolemy.actor.AtomicActor<TypedIOPort>
-
- ptolemy.actor.TypedAtomicActor
-
- ptolemy.domains.wireless.lib.network.NetworkActorBase
-
- ptolemy.domains.wireless.lib.network.mac.MACActorBase
-
- ptolemy.domains.wireless.lib.network.mac.TxCoordination
-
- All Implemented Interfaces:
java.lang.Cloneable
,Actor
,Executable
,FiringsRecordable
,Initializable
,TypedActor
,Changeable
,Debuggable
,DebugListener
,Derivable
,Instantiable
,ModelErrorHandler
,MoMLExportable
,Moveable
,Nameable
public class TxCoordination extends MACActorBase
TXCoordination class is responsible for initiating a session. After a packet arrives from the network layer, TXCoordination will generate RTS if the packet is long enough. It will send RTS to the destination and wait for CTS. If CTS is received within a specified interval, data will be sent after SIFS seconds. If ACK is received within a given time after the data is sent, the session is complete. TXCoordination will go to backoff before handling the next packet in the queue.If the network packet is not long enough, RTS/CTS will not be used to reduce overhead. In either case, Carrier sense is only done for the first message in the sequence, which is RTS, retransmitted data or data if RTS is not used. TXCoordination gets the channel status by sending a backoff signal with count 0 to the Backoff process in the Transmission block.If the channel turns to be busy, TXCoordination will send another backoff signal with count -1 to start the real backoff. If CTS or ACK is not received in time, the corresponding RTS or data will neeed to be retransmitted. TXCoordination will increase the corresponding retry counters. The backoff window size is also exponentially increased Retransmission will not start until another backoff is completed to avoid congestion.- Since:
- Ptolemy II 4.0
- Version:
- TxCoordination.java,v 1.13 2004/04/22 19:46:17 ellen_zh Exp
- Author:
- Charlie Zhong, Yang Zhao
- Pt.AcceptedRating:
- Red (reviewmoderator)
- Pt.ProposedRating:
- Red (czhong)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.domains.wireless.lib.network.NetworkActorBase
NetworkActorBase.Timer
-
Nested classes/interfaces inherited from class ptolemy.kernel.Entity
Entity.ContainedObjectsIterator
-
-
Field Summary
Fields Modifier and Type Field Description TypedIOPort
BkDone
Port receiving backoff complete notification from the Backoff processTypedIOPort
fromPowerControl
Port receiving messages from the PowerControl blockTypedIOPort
getBackoff
Port sending the backoff request to the Backoff processTypedIOPort
GotAck
Port receiving the notification of the receipt of either Ack or Cts from the RxCoordination processTypedIOPort
overhead
Port sending overhead of handling a pdu request.TypedIOPort
PduRequest
Port receiving messages from the network layerTypedIOPort
TXTXConfirm
Port receiving confirmation from the Transmission blockTypedIOPort
TXTXRequest
Port sending the TX request to the Transmission block-
Fields inherited from class ptolemy.domains.wireless.lib.network.mac.MACActorBase
_aCWmax, _aCWmin, _aPlcpHeaderLength, _aPreambleLength, _aRxPlcpDelay, _aRxRfDelay, _aRxTxTurnaroundTime, _aSifsTime, _aSlotTime, _dot11LongRetryLimit, _dot11ShortRetryLimit, _dotllRTSThreshold, _mBkIP, _mBrate, _sAckCtsLng, _tNavEnd, aCWmax, aCWmin, aPlcpHeaderLength, aPreambleLength, aRxPlcpDelay, aRxRfDelay, aRxTxTurnaroundTime, aSifsTime, aSlotTime, Backoff, BackoffDoneMsgFields, Cancel, ClearNav, ControlCh, ControlType, CSMsgFields, DataCh, DataType, dot11LongRetryLimit, dot11ShortRetryLimit, dotllRTSThreshold, getBackoffMsgFields, GotAckMsg, GotCts, GotCtsMsgFields, mac_broadcast_addr, mBrate, misc, NeedAck, NeedAckMessageFields, nosrc, PCcheck, PCmax, PCmin, PCremove, PCremove2, PCrequest, PCresponse, RtsTimeout, RtsTimeoutMsgFields, RxIndicate, RxIndicateMessageFields, RxMpdu, RxMpduMsgFields, sAckCtsLng, SetNav, SetNavMessageFields, Slot, startRsp, TxConfirm, TxConfirmMsgFields, TxDataMsgFields, TxRequest, TxRequestMsgFields, TxStartMsgFields, UseDifs, UseEifs, UseIfsMsgFields
-
Fields inherited from class ptolemy.domains.wireless.lib.network.NetworkActorBase
_timersSet, Ack, AckPacket, appl_data_msg, appl_interest_msg, Busy, cNetwDataMessageFields, cNetwInterestMessageFields, Cts, Data, DataPacket, Error, Gilbert, Idle, netw_data_msg, netw_interest_msg, NoError, PCRequestMsgFields, PCResponseMsgFields, Rts, RtsPacket, RxData, Rxdelay, RxEnd, RxStart, StartRspMsgFields, Turnaround, TxData, TxEnd, TxStart, TxStartConfirm, UNKNOWN
-
Fields inherited from class ptolemy.actor.TypedAtomicActor
_typesValid
-
Fields inherited from class ptolemy.actor.AtomicActor
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
Fields inherited from interface ptolemy.actor.Executable
COMPLETED, NOT_READY, STOP_ITERATING
-
-
Constructor Summary
Constructors Constructor Description TxCoordination(CompositeEntity container, java.lang.String name)
Construct an actor with the specified name and container.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
fire()
Do nothing.void
initialize()
Initialize the private variables.-
Methods inherited from class ptolemy.domains.wireless.lib.network.mac.MACActorBase
_setAttribute, attributeChanged, getID
-
Methods inherited from class ptolemy.domains.wireless.lib.network.NetworkActorBase
cancelTimer, setTimer, whoTimeout
-
Methods inherited from class ptolemy.actor.TypedAtomicActor
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
-
Methods inherited from class ptolemy.actor.AtomicActor
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup
-
Methods inherited from class ptolemy.kernel.ComponentEntity
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
-
Methods inherited from class ptolemy.kernel.Entity
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
-
Methods inherited from class ptolemy.kernel.InstantiableNamedObj
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface ptolemy.actor.Actor
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
-
Methods inherited from interface ptolemy.kernel.util.Derivable
getDerivedLevel, getDerivedList, propagateValue
-
Methods inherited from interface ptolemy.actor.Executable
isFireFunctional, isStrict, iterate, postfire, prefire, stop, stopFire, terminate
-
Methods inherited from interface ptolemy.actor.Initializable
addInitializable, preinitialize, removeInitializable, wrapup
-
Methods inherited from interface ptolemy.kernel.util.Nameable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
-
-
-
-
Field Detail
-
PduRequest
public TypedIOPort PduRequest
Port receiving messages from the network layer
-
TXTXConfirm
public TypedIOPort TXTXConfirm
Port receiving confirmation from the Transmission block
-
BkDone
public TypedIOPort BkDone
Port receiving backoff complete notification from the Backoff process
-
GotAck
public TypedIOPort GotAck
Port receiving the notification of the receipt of either Ack or Cts from the RxCoordination process
-
fromPowerControl
public TypedIOPort fromPowerControl
Port receiving messages from the PowerControl block
-
getBackoff
public TypedIOPort getBackoff
Port sending the backoff request to the Backoff process
-
TXTXRequest
public TypedIOPort TXTXRequest
Port sending the TX request to the Transmission block
-
overhead
public TypedIOPort overhead
Port sending overhead of handling a pdu request.
-
-
Constructor Detail
-
TxCoordination
public TxCoordination(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
Construct an actor with the specified name and container. The container argument must not be null, or a NullPointerException will be thrown. If the name argument is null, then the name is set to the empty = string. This constructor write-synchronizes on the workspace.- Parameters:
container
- The container.name
- The name of the actor.- Throws:
IllegalActionException
- If the container is incompatib= le with this actor.NameDuplicationException
- If the name coincides with an actor already in the container.
-
-
Method Detail
-
fire
public void fire() throws IllegalActionException
Description copied from class:AtomicActor
Do nothing. Derived classes override this method to define their primary run-time action.- Specified by:
fire
in interfaceExecutable
- Overrides:
fire
in classAtomicActor<TypedIOPort>
- Throws:
IllegalActionException
- Not thrown in this base class.
-
initialize
public void initialize() throws IllegalActionException
Initialize the private variables.- Specified by:
initialize
in interfaceInitializable
- Overrides:
initialize
in classNetworkActorBase
- Throws:
IllegalActionException
- If thrown by the base class.
-
-