net.i2p.router.tunnel

## Class HopConfig

- java.lang.Object
- - net.i2p.router.tunnel.HopConfig

    public class HopConfig
    extends Object

Defines the general configuration for a hop in a tunnel.

### Field Summary

Fields
`static int` `REPLY_IV_LENGTH` IV length for `getReplyIV()`

### Constructor Summary

Constructors
Constructor and Description
`HopConfig()`

### Method Summary

Methods
`long` `getCreation()` when was this tunnel created (in ms since the epoch)?
`long` `getExpiration()` when does this tunnel expire (in ms since the epoch)?
`SessionKey` `getIVKey()` what key should we use to encrypt the preIV before passing it on?
`SessionKey` `getLayerKey()` what key should we use to encrypt the layer before passing it on?
`Map` `getOptions()` what are the configuration options for this tunnel (if any).
`long` `getProcessedMessagesCount()`
`Hash` `getReceiveFrom()` what is the previous peer in the tunnel (if any)?
`TunnelId` `getReceiveTunnel()`
`byte[]` `getReceiveTunnelId()` what tunnel ID are we receiving on?
`long` `getRecentMessagesCount()`
`long` `getRecentSentMessagesCount()`
`ByteArray` `getReplyIV()` iv used to encrypt the reply sent for the new tunnel creation crypto
`SessionKey` `getReplyKey()` key to encrypt the reply sent for the new tunnel creation crypto
`Hash` `getSendTo()` what is the next peer in the tunnel (if any)?
`TunnelId` `getSendTunnel()`
`byte[]` `getSendTunnelId()` what is the next tunnel ID we are sending to?
`long` `getSentMessagesCount()`
`void` `incrementProcessedMessages()` "processed" is for incoming and "sent" is for outgoing (could be dropped in between)
`void` `incrementSentMessages()`
`void` `setCreation(long when)`
`void` `setExpiration(long when)`
`void` `setIVKey(SessionKey key)`
`void` `setLayerKey(SessionKey key)`
`void` `setOptions(Map options)`
`void` `setReceiveFrom(Hash from)`
`void` `setReceiveTunnelId(byte[] id)`
`void` `setReceiveTunnelId(TunnelId id)`
`void` `setReplyIV(ByteArray iv)`
`void` `setReplyKey(SessionKey key)`
`void` `setSendTo(Hash to)`
`void` `setSendTunnelId(byte[] id)`
`String` `toString()`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Field Detail

#### REPLY_IV_LENGTH

    public static final int REPLY_IV_LENGTH

IV length for `getReplyIV()`

See Also:
  Constant Field Values

### Constructor Detail

#### HopConfig

    public HopConfig()

### Method Detail

#### getReceiveTunnelId

    public byte[] getReceiveTunnelId()

what tunnel ID are we receiving on?

#### getReceiveTunnel

    public TunnelId getReceiveTunnel()

#### setReceiveTunnelId

    public void setReceiveTunnelId(byte[] id)

#### setReceiveTunnelId

    public void setReceiveTunnelId(TunnelId id)

#### getReceiveFrom

    public Hash getReceiveFrom()

what is the previous peer in the tunnel (if any)?

#### setReceiveFrom

    public void setReceiveFrom(Hash from)

#### getSendTunnelId

    public byte[] getSendTunnelId()

what is the next tunnel ID we are sending to?

#### getSendTunnel

    public TunnelId getSendTunnel()

#### setSendTunnelId

    public void setSendTunnelId(byte[] id)

#### getSendTo

    public Hash getSendTo()

what is the next peer in the tunnel (if any)?

#### setSendTo

    public void setSendTo(Hash to)

#### getLayerKey

    public SessionKey getLayerKey()

what key should we use to encrypt the layer before passing it on?

#### setLayerKey

    public void setLayerKey(SessionKey key)

#### getIVKey

    public SessionKey getIVKey()

what key should we use to encrypt the preIV before passing it on?

#### setIVKey

    public void setIVKey(SessionKey key)

#### getReplyKey

    public SessionKey getReplyKey()

key to encrypt the reply sent for the new tunnel creation crypto

#### setReplyKey

    public void setReplyKey(SessionKey key)

#### getReplyIV

    public ByteArray getReplyIV()

iv used to encrypt the reply sent for the new tunnel creation crypto

#### setReplyIV

    public void setReplyIV(ByteArray iv)

#### getExpiration

    public long getExpiration()

when does this tunnel expire (in ms since the epoch)?

#### setExpiration

    public void setExpiration(long when)

#### getCreation

    public long getCreation()

when was this tunnel created (in ms since the epoch)?

#### setCreation

    public void setCreation(long when)

#### getOptions

    public Map getOptions()

what are the configuration options for this tunnel (if any). keys to this map should be strings and values should be Objects of an option-specific type (e.g. "maxMessages" would be an Integer, "shouldPad" would be a Boolean, etc).

#### setOptions

    public void setOptions(Map options)

#### incrementProcessedMessages

    public void incrementProcessedMessages()

"processed" is for incoming and "sent" is for outgoing (could be dropped in between)

#### getProcessedMessagesCount

    public long getProcessedMessagesCount()

#### getRecentMessagesCount

    public long getRecentMessagesCount()

#### incrementSentMessages

    public void incrementSentMessages()

#### getSentMessagesCount

    public long getSentMessagesCount()

#### getRecentSentMessagesCount

    public long getRecentSentMessagesCount()

#### toString

    public String toString()

Overrides:
  `toString` in class `Object`