<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic TCL Script that triggers commands if MAC Address matches in ExtremeSwitching (EXOS/Switch Engine)</title>
    <link>https://community.extremenetworks.com/t5/extremeswitching-exos-switch/tcl-script-that-triggers-commands-if-mac-address-matches/m-p/15405#M130</link>
    <description>Hi Folks,&lt;BR /&gt;
I've written a TCL script that looks for a specific MAC OUI in the FDB table and triggers certain commands if a match has been found. &lt;BR /&gt;
&lt;BR /&gt;
The issue with this script is that I want to set a specific "Port Profile". These "Port Profiles" are deployed from the NetSight. The Script looks for "IMP_AccessPoints" and returns the number of the line where it found the term. Ever since I deleted some of the "Port Profiles" in NetSight the line number isn't equal to the PID anymore. &lt;BR /&gt;
&lt;BR /&gt;
e.g.&lt;BR /&gt;
&lt;BR /&gt;
1 - Guest&lt;BR /&gt;
2 - WAN&lt;BR /&gt;
5 - IMP_AccessPoints&lt;BR /&gt;
&lt;BR /&gt;
So my Script would return the number "3" instead of 5. Can someone help me out? Maybe someone has an idea how to fix my script.&lt;BR /&gt;
&lt;BR /&gt;
#MAC OUI&lt;BR /&gt;
#&lt;B&gt;@VariableFieldLabel&lt;/B&gt; "MAC OUI Number 1 (xx:xx:xx:)"&lt;BR /&gt;
&lt;BR /&gt;
set var MAC1 d8:84:66:&lt;BR /&gt;
set var myWaitVar $TCL(after [expr 2000 * 6])&lt;BR /&gt;
set var CLI.OUT " "&lt;BR /&gt;
show fdb ports $EVENT.LOG_PARAM_0 | include Default&lt;BR /&gt;
set var list1 $TCL(split ${CLI.OUT})&lt;BR /&gt;
set var list2 $TCL(string range $(list1) 0 &lt;span class="lia-unicode-emoji" title=":smiling_face_with_sunglasses:"&gt;😎&lt;/span&gt;&lt;BR /&gt;
if (!$match($list2, $MAC1)) then&lt;BR /&gt;
    set var CLI.OUT " "&lt;BR /&gt;
    show edp ports $EVENT.LOG_PARAM_0&lt;BR /&gt;
    set var edp1 $TCL(split ${CLI.OUT} \n)&lt;BR /&gt;
    set var range1 $TCL(string range $(edp1) 235 270)&lt;BR /&gt;
    set var edp2 $TCL(regexp ${EVENT.LOG_PARAM_0} $(range1))&lt;BR /&gt;
    create log entry "($edp2)"&lt;BR /&gt;
    if ($edp2 == 0) then&lt;BR /&gt;
        clear netlogin state port $EVENT.LOG_PARAM_0&lt;BR /&gt;
        disable netlogin ports $EVENT.LOG_PARAM_0 dot1x web-based mac&lt;BR /&gt;
        set var CLI.OUT " "&lt;BR /&gt;
        show policy profile&lt;BR /&gt;
        set var pol1 $TCL(split ${CLI.OUT} \n)&lt;BR /&gt;
        set var pol2 $TCL(lsearch -regexp $pol1 {IMP_AccessPoints})&lt;BR /&gt;
        set var polport $pol2&lt;BR /&gt;
        configure policy rule admin-profile port $EVENT.LOG_PARAM_0 port-string $EVENT.LOG_PARAM_0 admin-pid $polport&lt;BR /&gt;
        create log entry "NETLOGIN_DISABLED_PASSED"&lt;BR /&gt;
        configure ports $EVENT.LOG_PARAM_0 display-string "EXN-AccessPoint"&lt;BR /&gt;
        create log entry "DISPLAY_STRING_COMMAND_PASSED"&lt;BR /&gt;
        set var CLI.OUT " "&lt;BR /&gt;
    else&lt;BR /&gt;
    endif&lt;BR /&gt;
    else&lt;BR /&gt;
    create log entry "Unknown_device_connected_on_port_($EVENT.LOG_PARAM_0)"&lt;BR /&gt;
endif&lt;BR /&gt;</description>
    <pubDate>Tue, 26 Jun 2018 12:41:00 GMT</pubDate>
    <dc:creator>Dominique_Ehrli</dc:creator>
    <dc:date>2018-06-26T12:41:00Z</dc:date>
    <item>
      <title>TCL Script that triggers commands if MAC Address matches</title>
      <link>https://community.extremenetworks.com/t5/extremeswitching-exos-switch/tcl-script-that-triggers-commands-if-mac-address-matches/m-p/15405#M130</link>
      <description>Hi Folks,&lt;BR /&gt;
I've written a TCL script that looks for a specific MAC OUI in the FDB table and triggers certain commands if a match has been found. &lt;BR /&gt;
&lt;BR /&gt;
The issue with this script is that I want to set a specific "Port Profile". These "Port Profiles" are deployed from the NetSight. The Script looks for "IMP_AccessPoints" and returns the number of the line where it found the term. Ever since I deleted some of the "Port Profiles" in NetSight the line number isn't equal to the PID anymore. &lt;BR /&gt;
&lt;BR /&gt;
e.g.&lt;BR /&gt;
&lt;BR /&gt;
1 - Guest&lt;BR /&gt;
2 - WAN&lt;BR /&gt;
5 - IMP_AccessPoints&lt;BR /&gt;
&lt;BR /&gt;
So my Script would return the number "3" instead of 5. Can someone help me out? Maybe someone has an idea how to fix my script.&lt;BR /&gt;
&lt;BR /&gt;
#MAC OUI&lt;BR /&gt;
#&lt;B&gt;@VariableFieldLabel&lt;/B&gt; "MAC OUI Number 1 (xx:xx:xx:)"&lt;BR /&gt;
&lt;BR /&gt;
set var MAC1 d8:84:66:&lt;BR /&gt;
set var myWaitVar $TCL(after [expr 2000 * 6])&lt;BR /&gt;
set var CLI.OUT " "&lt;BR /&gt;
show fdb ports $EVENT.LOG_PARAM_0 | include Default&lt;BR /&gt;
set var list1 $TCL(split ${CLI.OUT})&lt;BR /&gt;
set var list2 $TCL(string range $(list1) 0 &lt;span class="lia-unicode-emoji" title=":smiling_face_with_sunglasses:"&gt;😎&lt;/span&gt;&lt;BR /&gt;
if (!$match($list2, $MAC1)) then&lt;BR /&gt;
    set var CLI.OUT " "&lt;BR /&gt;
    show edp ports $EVENT.LOG_PARAM_0&lt;BR /&gt;
    set var edp1 $TCL(split ${CLI.OUT} \n)&lt;BR /&gt;
    set var range1 $TCL(string range $(edp1) 235 270)&lt;BR /&gt;
    set var edp2 $TCL(regexp ${EVENT.LOG_PARAM_0} $(range1))&lt;BR /&gt;
    create log entry "($edp2)"&lt;BR /&gt;
    if ($edp2 == 0) then&lt;BR /&gt;
        clear netlogin state port $EVENT.LOG_PARAM_0&lt;BR /&gt;
        disable netlogin ports $EVENT.LOG_PARAM_0 dot1x web-based mac&lt;BR /&gt;
        set var CLI.OUT " "&lt;BR /&gt;
        show policy profile&lt;BR /&gt;
        set var pol1 $TCL(split ${CLI.OUT} \n)&lt;BR /&gt;
        set var pol2 $TCL(lsearch -regexp $pol1 {IMP_AccessPoints})&lt;BR /&gt;
        set var polport $pol2&lt;BR /&gt;
        configure policy rule admin-profile port $EVENT.LOG_PARAM_0 port-string $EVENT.LOG_PARAM_0 admin-pid $polport&lt;BR /&gt;
        create log entry "NETLOGIN_DISABLED_PASSED"&lt;BR /&gt;
        configure ports $EVENT.LOG_PARAM_0 display-string "EXN-AccessPoint"&lt;BR /&gt;
        create log entry "DISPLAY_STRING_COMMAND_PASSED"&lt;BR /&gt;
        set var CLI.OUT " "&lt;BR /&gt;
    else&lt;BR /&gt;
    endif&lt;BR /&gt;
    else&lt;BR /&gt;
    create log entry "Unknown_device_connected_on_port_($EVENT.LOG_PARAM_0)"&lt;BR /&gt;
endif&lt;BR /&gt;</description>
      <pubDate>Tue, 26 Jun 2018 12:41:00 GMT</pubDate>
      <guid>https://community.extremenetworks.com/t5/extremeswitching-exos-switch/tcl-script-that-triggers-commands-if-mac-address-matches/m-p/15405#M130</guid>
      <dc:creator>Dominique_Ehrli</dc:creator>
      <dc:date>2018-06-26T12:41:00Z</dc:date>
    </item>
  </channel>
</rss>

