TNAP v1.1.4: Difference between revisions

From Alteeve Wiki
Jump to navigation Jump to search
(Created page with '{{na_v1.1.4_header}} TNAP; The Node Assassin Protocol is the protocol that defines how commands are to be passed to a Node Assassin device and what output to expect in return. G…')
 
 
(One intermediate revision by one other user not shown)
Line 5: Line 5:
= TNAP v1.1.4 =
= TNAP v1.1.4 =


TNAP works by listening for a connection on [[TCP]] port <span class="code">238</span> on [[IP]] <span class="code">192.168.1.66</span> by default. Both the port and the IP are configurable). Once connected, it uses a very simple protocol.
TNAP works by listening for a connection on [[TCP]] port <span class="code">238</span> on [[IP]] <span class="code">192.168.1.66</span> by default. Both the port and the IP are configurable. Once connected, it uses a very simple protocol.


There are two types of calls:
There are two types of calls:
Line 14: Line 14:


Any message starting with <span class="code">00:x</span> are '''query commands'''. That is, the integer represented by '''x''' is interpreted to be a specific information request. Currently, two queries are supported:
Any message starting with <span class="code">00:x</span> are '''query commands'''. That is, the integer represented by '''x''' is interpreted to be a specific information request. Currently, two queries are supported:
* [[#00:0|00:0]] - Node states query
* [[#00:0 - Node Status|00:0]] - Node states query
* [[#00:1|00:1]] - Node Assassin query
* [[#00:1 - NA Information|00:1]] - Node Assassin query


All queries and commands terminate with a final <span class="code">EOM</span> on a new line. Any programs accessing a Node Assassin must watch for this message and, not finding it, treat any messages as incomplete and corrupt.
All queries and commands terminate with a final <span class="code">EOM</span> on a new line. Any programs accessing a Node Assassin must watch for this message and, not finding it, treat any messages as incomplete and corrupt.


=== 00:0 ===
=== 00:0 - Node Status ===


To request the state of all supported nodes, send:
To request the state of all supported nodes, send:
Line 26: Line 26:
</source>
</source>


This will generate a message like:
This will generate a message such as:
<source lang="text">
<source lang="text">
Node states:
Node states:
Line 37: Line 37:
</source>
</source>


The status is broken down into three values;
The status is broken down into three values:
* Power: <span class="code">P[0|1]</span>
* Power: <span class="code">P[0|1]</span>
* Reset: <span class="code">R[0|1]</span>
* Reset: <span class="code">R[0|1]</span>
Line 70: Line 70:
|}
|}


=== 00:1 ===
=== 00:1 - NA Information ===


This query requests information on the node assassin device itself and is called via:
This query requests information on the node assassin device itself and is called via:
Line 78: Line 78:
</source>
</source>


This will generate a message like:
This will generate a message such as:
<source lang="text">
<source lang="text">
Node info:  
Node info:  

Latest revision as of 15:52, 16 April 2010

 Node Assassin :: Node_Assassin v1.1.4 :: TNAP v1.1.4

TNAP; The Node Assassin Protocol is the protocol that defines how commands are to be passed to a Node Assassin device and what output to expect in return. Generally, you will use telnet to connect to a Node Assassin.

TNAP v1.1.4

TNAP works by listening for a connection on TCP port 238 on IP 192.168.1.66 by default. Both the port and the IP are configurable. Once connected, it uses a very simple protocol.

There are two types of calls:

Queries

Any message starting with 00:x are query commands. That is, the integer represented by x is interpreted to be a specific information request. Currently, two queries are supported:

  • 00:0 - Node states query
  • 00:1 - Node Assassin query

All queries and commands terminate with a final EOM on a new line. Any programs accessing a Node Assassin must watch for this message and, not finding it, treat any messages as incomplete and corrupt.

00:0 - Node Status

To request the state of all supported nodes, send:

 00:0

This will generate a message such as:

Node states:
- Node Count: 04
- Node 01: P0 R0 F1
- Node 02: P0 R0 F1
- Node 03: P1 R1 F0
- Node 04: P0 R0 F0
End Message.

The status is broken down into three values:

  • Power: P[0|1]
  • Reset: R[0|1]
  • Feed: F[0|1].

For the power and reset buttons, a value of 0 indicates that the related switch switch is open. If it is set to 1, the switch is closed (the indicated button is "pressed").

For the Feed value, 0 indicates that there is no power coming from the node's feed and thus, the node is "off" or disconnected. If the feed is 1, then power is detected from the node and the node is known to be "on".

Quick reference table:

Type Code 0 1
Power Switch P Open Closed
Reset Switch R Open Closed
Power Feed F Node is On Node is Off/disconnected

00:1 - NA Information

This query requests information on the node assassin device itself and is called via:

 00:1

This will generate a message such as:

Node info: 
- Node Name: ..... Motoko
- Port Count: .... 04
- NAOS Version: .. v1.1.4.4
- Serial Number: . PR0002
- Build Date: .... 2010-04-03
- MAC address: ... 02:00:00:FF:F0:AA
- IP address: .... 192.168.1.66
- Subnet Mask: ... 255.255.255.0
- Default Gateway: 192.168.1.1
EOM

The above information is from the internal NAOS, not from the configuration file.

Commands

Commands are always given in the form: XX:Y where:

  • XX is the two-digit, zero-padded node number between 01 and max node.
  • Y is the single-digit command being issues.

XX:0 - Release

XX:0

Release the fence on the node if one exists. Specifically, both power and reset switches are opened.

XX:1 - Fence

XX:1

Fence the specified node. Specifically;

  1. The state is checked.
    1. If the node is already fenced, the fence is momentarily released so that it can be re-applied.
  2. The reset switch is closed for one second to immediately disable the node.
  3. The reset switch is opened for one second.
    1. Some machines will not respond to the power button if the reset button is simultaneously pressed.
  4. The power switch is closed.
    1. After five seconds the node's power feed is checked. If the feed is still high, NA waits another 25 seconds and checks again. If the feed is still high, an error is generated.
  5. The reset switch is closed.
    1. At this point, both power and reset are closed, disabling the node's front-panel switches preventing accidental booting of the node before the fence is released.

XX:2 - Boot or Graceful Power Off

XX:2

This will close the power switch for one second and then re-open it. If the node was off, this should initiate a boot. If the node was on, this should initiate shutdown via ACPI. The power feed is checked prior to the one second fence and the returned message reflects whether the node is being booted or shut down.

XX:3 - Force Power Off

XX:3

This is essentially the same as XX:1 except the node is not locked at the end of the fence process. This will close the power switch. After five seconds the node's power feed is checked. If the feed is still high, NA waits another 25 seconds and checks again. If the feed is still high, an error is generated. Regardless of success or failure, the fence is removed.

 

Any questions, feedback, advice, complaints or meanderings are welcome.
Alteeve's Niche! Enterprise Support:
Alteeve Support
Community Support
© Alteeve's Niche! Inc. 1997-2024   Anvil! "Intelligent Availability®" Platform
legal stuff: All info is provided "As-Is". Do not use anything here unless you are willing and able to take responsibility for your own actions.