## 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
`static int` `REPLY_IV_LENGTH` IV length for `getReplyIV()`

Constructor Summary
`HopConfig()`

Method Summary
`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`