P4 Language
P4 Overview
●
A language for expressing how packets are 
processed by the data plane of a programmable 
forwarding elements like software switch , NIC , 
router or network appliance.
●
Designed to specify only the data plane 
functionality of the target.
●
It also defines the interface by which control 
plane and data plane communicates.
P4 Language: Objective
●
Protocol Independent
– Define a packet parser
– Define a set of match+action tables
●
Target Independent
– No knowledge of packet­processing device details
– Compiler Driver
●
Reconfigurability
– Allow to change parser and processing
P4 Language Components
●
Data Declarations
– Packet Header and Metadata
●
Parser Programming
– Parser Functions 
– Checksum Units
●
Packet Flow Programming
– Actions
●
Primitive and compound actions
●
Counters, Meters, Registers
– Tables
●
Match Keys
●
Attributes
– Control Functions 
P4 Programmable Switch
●
Data Plane Functionality is defined by the P4 program.
●
Control Plane communicate with the data plane using same channels, but the 
set of tables and other objects in the data plane are no longer fixed.
– P4 compiler generates the API that the control plane uses to communicate 
with the data plane.
ROUTER
<L3>
SWITCH
<L2>
How Packet Flows ?
D1
S1
S2
S3
S4
How many times Packet Passed from L2 Layer and L3 
Layer ?
Encapsulation
Let's Make Router
PHY
Let's Make Router
PHY
MAC
Let's Make Router
PHY
MAC
IP
Let's Make Router
PHY
MAC
IP
Basic Forwarding: Topology
Exercise­1
●
Ipv4 Forwarding
– Key Tasks
●
Update the source and destination MAC addresses
●
Decrement the TTL
● Forward out the correct port
Hands­on
● Goto --> ... /tutorials­master/exercises/
●
Create new folder and named it as myip_forward
●
Open any editor and create new p4 program 
    Example : myip_forward.p4
●
Include core.p4 header file
●
It defines some standard data­types and error codes.
●
For example: declarations of the predefined packet_in and packet_out 
extern objects.
● #include <core.4>
●
What is extern in C ?
<Include Header Files>
● Goto --> ... /tutorials­master/exercises/
●
Create new folder and named it as myipforward
●
Open any editor and create new p4 program 
    Example : ip_forward.p4
●
Include core header file
●
It defines some standard data­types and error codes.
●
For example: declarations of the predefined packet_in and packet_out 
extern objects.
●
What is extern in C ?
 #include<core.4>
●
Include v1model header file
●
For Example:
   #include<v1model.p4>
Create Packet Headers
L2 Header
Filed Name Size(bits)
Source MAC  48
Destination MAC 48
Ethernet Type 16
L2 Header
header ethenet_t {
                 macAddr_t dstAddr;
                 macAddr_t srcAddr;
                 bit<16> etherType;
              }
typedef bit<48> macAddr_t;
To define the alternative name for 
the existing datatype
It is a keyword and hear we are 
grouping the Ethernet­II header files
Write P4 Program
header ipv4_t {
    bit<4>    version;
    bit<4>    ihl;
    bit<8>    diffserv;
    bit<16>   totalLen;
    bit<16>   identification;
    bit<3>    flags;
    bit<13>   fragOffset;
    bit<8>    ttl;
    bit<8>    protocol;
    bit<16>   hdrChecksum;
    ip4Addr_t srcAddr;
    ip4Addr_t dstAddr;
}
typedef bit<32> ipv4Addr_t;
To define the alternative name for 
the existing datatype
Write P4 Program:Combine Header
struct headers {
    ethernet_t   ethernet;
    ipv4_t       ipv4;
}
MAC HeaderIP Header
To group together both these header into one structure 
Create Parser
Write P4 Program: Parser
●
Parser is a function that map packets into 
headers and metadata, written in a state 
machine style.
●
Every parser has three predefined states 
● start
● accept
● reject
●
User can define additional states as well.
●
Each state , execute zero or more statements, 
and then transition to another state (loops are 
OK)
Parse Tree
START
Parse Tree
START
ETHERNET
Parse Tree
START
ETHERNET
IPv4
Parse Tree
START
ETHERNET
ACCEPT
IPv4
Parser Model
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta standard_meta
IN OUT
Code Block
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta standard_meta
IN OUT
parser MyParser (packet_in packet , 
                 out headers hdr, 
                 inout metadata meta ,
                 inout standard_metadata_t standard_metadata )
Parser Declaration
●
Parser      ­­> its a keyword in P4 Language
●
MyParser ­­> Name of Parser
●
(. . . )       ­­> list of parameters
Code Block
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta standard_meta
IN OUT
parser MyParser (packet_in packet , 
                 out headers hdr, 
                 inout metadata meta ,
                 inout standard_metadata_t standard_metadata )
Parser Declaration
state start {
        transition parse_ethernet;
    }
●
Each state has a name and body.
●
It consists of a sequence of statements that describe the processing 
performed when the parser transitions to that state including:
●
Local variable declarations
●
Assignment statements
●
Method calls, which serve following purpose:
●
Invoking function
●
Invoking methods
●
Transitions to other states
Code Block
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta standard_meta
IN OUT
parser MyParser (packet_in packet , 
                 out headers hdr, 
                 inout metadata meta ,
                 inout standard_metadata_t standard_metadata )
Parser Declaration
state start {
        transition parse_ethernet;
    }
parser_ethernet
●
Extract ethernet header
●
Check EtherType field
DEST MAC SRC MAC EtherType
0x0800
0x0806
0x86DD
. . .
. . .
Code Block
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta standard_meta
IN OUT
parser MyParser (packet_in packet , 
                 out headers hdr, 
                 inout metadata meta ,
                 inout standard_metadata_t standard_metadata )
Parser Declaration
state start {
        transition parse_ethernet;
    }
parser_ethernet
●
Extract ethernet header
●
Check EtherType field
DEST MAC SRC MAC EtherType
0x0800    : IPv4
0x0806    : ARP
0x86DD   : IPv6
. . .
. . .
Code Block
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta standard_meta
IN OUT
parser MyParser (packet_in packet , 
                 out headers hdr, 
                 inout metadata meta ,
                 inout standard_metadata_t standard_metadata )
Parser Declaration
state start {
        transition parse_ethernet;
    }
state parse_ethernet {
        packet.extract(hdr.ethernet);
        transition select(hdr.ethernet.etherType) {
            TYPE_IPV4: parse_ipv4;
            default: accept;
        }
    }
Code Block
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta standard_meta
IN OUT
parser MyParser (packet_in packet , 
                 out headers hdr, 
                 inout metadata meta ,
                 inout standard_metadata_t standard_metadata )
Parser Declaration
state start {
        transition parse_ethernet;
    }
state parse_ethernet {
        packet.extract(hdr.ethernet);
        transition select(hdr.ethernet.etherType) {
            TYPE_IPV4: parse_ipv4;
            default: accept;
        }
    }
state parse_ipv4 {
        packet.extract(hdr.ipv4);
        transition accept;
    }
}
Ingress Match/Action
START
ETHERNET
ACCEPT
IPv4
MyParser
packet_in
meta meta
hdr
standard_meta
standard_meta
IN OUT MyIngress
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Ingress Code Block
MyIngress
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
. . . .
. . . .
hdr
meta
standard_meta standard_meta
meta
hdr
Match Action
DST Address * ipv4_forward
* drop 
* noAction
default_action drop
Table Name: ipv4_lpm
S1
S3
S2
H1
H2
H3
10.0.1.1 10.0.2.2
10.0.3.3
PORT :1
PORT :2
PORT :3
PORT :2
PORT :1
PORT :3
PORT :2 PORT :3
PORT :1
MAC : 00:00:00:00:03:03
MAC : 00:00:00:00:01:01  MAC : 00:00:00:02:02:00
MAC : 00:00:00:01:03:00
MAC : 00:00:00:03:03:00 
MAC : 00:00:00:02:03:00
MAC : 00:00:00:03:03:00
MAC : 00:00:00:01:02:00
MAC : 00:00:00:02:02:00
Q. Suppose H1 want to send Data to H2.
S1
S3
S2
H1
H2
H3
10.0.1.1 10.0.2.2
10.0.3.3
PORT :1
PORT :2
PORT :3
PORT :2
PORT :1
PORT :3
PORT :2 PORT :3
PORT :1
MAC : 00:00:00:00:03:03
MAC : 00:00:00:00:01:01  MAC : 00:00:00:02:02:00
MAC : 00:00:00:01:03:00
MAC : 00:00:00:03:03:00 
MAC : 00:00:00:02:03:00
MAC : 00:00:00:03:03:00
MAC : 00:00:00:01:02:00
MAC : 00:00:00:02:02:00
Q. Suppose H1 want to send Data to H2.
S1
S3
S2
H1
H2
H3
10.0.1.1 10.0.2.2
10.0.3.3
PORT :1
PORT :2
PORT :3
PORT :2
PORT :1
PORT :3
PORT :2 PORT :3
PORT :1
MAC : 00:00:00:00:03:03
MAC : 00:00:00:00:01:01  MAC : 00:00:00:02:02:00
MAC : 00:00:00:01:03:00
MAC : 00:00:00:03:03:00 
MAC : 00:00:00:02:03:00
MAC : 00:00:00:03:03:00
MAC : 00:00:00:01:02:00
MAC : 00:00:00:02:02:00
Q. Suppose H1 want to send Data to H2.
S1­runtime.json
Ingress Code Block
MyIngress
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
. . . .
. . . .
hdr
meta
standard_meta standard_meta
meta
hdr
Match Action
DST Address * ipv4_forward
* drop 
* noAction
default_action drop
Table Name: ipv4_lpm
{
 “table”:”MyIngress.ipv4_lpm”,
 “match”: {
     “hdr.ipv4.dstAddr”: [“10.0.2.2”,32]
 },
 “action_name”: “MyIngress.ipv4_forward”,
 “action_params”:{
    “dstAddr”: “00:00:00:02:02:00”,
    “port”: 2
}
Basic Forwarding
S1
S3
S2
H1
H2
H3
10.0.1.1 10.0.2.2
10.0.3.3
PORT :1
PORT :2
PORT :3
PORT :2
PORT :1
PORT :3
PORT :2 PORT :3
PORT :1
MAC : 00:00:00:00:03:03
MAC : 00:00:00:00:01:01  MAC : 00:00:00:02:02:00
MAC : 00:00:00:01:03:00
MAC : 00:00:00:03:03:00 
MAC : 00:00:00:02:03:00
MAC : 00:00:00:03:03:00
MAC : 00:00:00:01:02:00
MAC : 00:00:00:02:02:00
S1­runtime.json S2­runtime.json
S3­runtime.json
Basic Forwarding
S1
S3
S2
H1
H2
H3
10.0.1.1 10.0.2.2
10.0.3.3
PORT :1
PORT :2
PORT :3
PORT :2
PORT :1
PORT :3
PORT :2 PORT :3
PORT :1
MAC : 00:00:00:00:03:03
MAC : 00:00:00:00:01:01  MAC : 00:00:00:02:02:00
MAC : 00:00:00:01:03:00
MAC : 00:00:00:03:03:00 
MAC : 00:00:00:02:03:00
MAC : 00:00:00:03:03:00
MAC : 00:00:00:01:02:00
MAC : 00:00:00:02:02:00
S1­runtime.json S2­runtime.json
S3­runtime.json
Basic Forwarding
S1
S3
S2
H1
H2
H3
10.0.1.1 10.0.2.2
10.0.3.3
PORT :1
PORT :2
PORT :3
PORT :2
PORT :1
PORT :3
PORT :2 PORT :3
PORT :1
MAC : 00:00:00:00:03:03
MAC : 00:00:00:00:01:01  MAC : 00:00:00:02:02:00
MAC : 00:00:00:01:03:00
MAC : 00:00:00:03:03:00 
MAC : 00:00:00:02:03:00
MAC : 00:00:00:03:03:00
MAC : 00:00:00:01:02:00
MAC : 00:00:00:02:02:00
S1­runtime.json S2­runtime.json
S3­runtime.json
Table Entries
?????????
Basic Forwarding
S1
S3
S2
H1
H2
H3
10.0.1.1 10.0.2.2
10.0.3.3
PORT :1
PORT :2
PORT :3
PORT :2
PORT :1
PORT :3
PORT :2 PORT :3
PORT :1
MAC : 00:00:00:00:03:03
MAC : 00:00:00:00:01:01  MAC : 00:00:00:02:02:00
MAC : 00:00:00:01:03:00
MAC : 00:00:00:03:03:00 
MAC : 00:00:00:02:03:00
MAC : 00:00:00:03:03:00
MAC : 00:00:00:01:02:00
MAC : 00:00:00:02:02:00
S1­runtime.json S2­runtime.json
S3­runtime.json
{
 “table”:”MyIngress.ipv4_lpm”,
 “match”: {
     “hdr.ipv4.dstAddr”: [“10.0.3.3”,32]
 },
 “action_name”: “MyIngress.ipv4_forward”,
 “action_params”:{
    “dstAddr”: “00:00:00:01:03:00”,
    “port”: 2
}
Ingress Code Block
MyIngress
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
. . . .
. . . .
hdr
meta
standard_meta standard_meta
meta
hdr
Match Action
DST Address * ipv4_forward
* drop 
* noAction
default_action drop
Table Name: ipv4_lpm
{
 “table”:”MyIngress.ipv4_lpm”,
 “default_action”: true,
 “action_name”:”MyIngress.drop”,
 “action_params”: { }
}
Program Execution 
Execution of P4 Program
mybasic.p4
Execution of P4 Program
mybasic.p4
topology.json
Execution of P4 Program
mybasic.p4
topology.json
Execution of P4 Program
mybasic.p4
Ingress Code Block
MyIngress
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
. . . .
. . . .
hdr
meta
standard_meta standard_meta
meta
hdr
Match Action
DST Address * ipv4_forward
* drop 
* noAction
default_action drop
Table Name: ipv4_lpm
Ingress Code Block
MyIngress
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
. . . .
. . . .
hdr
meta
standard_meta standard_meta
meta
hdr
Match Action
DST Address * ipv4_forward
* drop 
* noAction
default_action drop
Table Name: ipv4_lpm
S1
S3
S2
H1 H2
H2
S1
S3
S2
H1 H2
H2
Ingress Code Block
Ingress Stages
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
Match 
Action
. . . .
. . . .
hdr
meta
standard_meta
standard_meta
meta
hdr
Match Action
DST Address * ipv4_forward
* drop 
* noAction
default_action drop
Ingress Code Block
Match Action
DST Address * ipv4_forward
* drop 
* noAction
default_action drop
Parser Program
●
Parser States
●
One start state
●
Userdefine state
●
Two final states named as accept and reject 
●
Parser Declarations
●
List of Parameters
●
Local Elements
●
Parser States
Parser Program
●
Parser States
●
One start state
●
Userdefine state
●
Two final states named as accept and reject 
●
Parser Declarations
●
List of Parameters
●
Local Elements
●
Parser States
Create Ethernet Header
Simple Switch Architecture
P4 Pipeline
Metadata
Parser
Deparser
* Parser
­ Converts packets data into a metadata
* Match+Action Tables
­ Operate on metadata
* Deparser
P4 Program Section
typedef bit<9>  egressSpec_t;
typedef bit<48> macAddr_t;
typedef bit<32> ip4Addr_t;
.
.
.
parser MyParser(packet_in packet,
                out headers hdr,
                inout metadata meta,
                inout standard_metadata_t 
standard_metadata)
.
.
.
control MyIngress(inout headers hdr,
                  inout metadata meta,
                  inout standard_metadata_t 
standard_metadata) 
Metadata
Parser
Deparser
PISA: Protocol­Independent Switch Architecture
P4­Based Workflow
Self Practice
ROUTER
<L3>
SWITCH
<L2>
Write P4 Program
Load Balancer

More Related Content

PPTX
2016 NCTU P4 Workshop
PDF
Programming Protocol-Independent Packet Processors
PDF
20170925 onos and p4
PDF
Programming the Network Data Plane
PDF
[Webinar Slides] Programming the Network Dataplane in P4
PDF
JS introduction
PDF
Protocol Independence
PPTX
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
2016 NCTU P4 Workshop
Programming Protocol-Independent Packet Processors
20170925 onos and p4
Programming the Network Data Plane
[Webinar Slides] Programming the Network Dataplane in P4
JS introduction
Protocol Independence
(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

What's hot (19)

PDF
Programmable data plane at terabit speeds
PDF
P4 for Custom Identification, Flow Tagging, Monitoring and Control
PDF
Introduction to OpenFlow
PDF
LF_DPDK17_Lagopus Router
PDF
Communication Protocols (UART, SPI,I2C)
PDF
Stacks and Layers: Integrating P4, C, OVS and OpenStack
PPTX
Compiling P4 to XDP, IOVISOR Summit 2017
PDF
Networking and Go: An Epic Journey
PPT
Linkers And Loaders
PDF
Protecting the Privacy of the Network – Using P4 to Prototype and Extend Netw...
PDF
How a BEAM runner executes a pipeline. Apache BEAM Summit London 2018
PDF
Socket Programming using Java
PPT
Compilation
PDF
High Availability on pfSense 2.4 - pfSense Hangout March 2017
PDF
P4-based VNF and Micro-VNF Chaining for Servers With Intelligent Server Adapters
PDF
High Availability Part 2 - pfSense Hangout July 2016
PDF
Transparent eBPF Offload: Playing Nice with the Linux Kernel
PPTX
Troubleshoot tcp
Programmable data plane at terabit speeds
P4 for Custom Identification, Flow Tagging, Monitoring and Control
Introduction to OpenFlow
LF_DPDK17_Lagopus Router
Communication Protocols (UART, SPI,I2C)
Stacks and Layers: Integrating P4, C, OVS and OpenStack
Compiling P4 to XDP, IOVISOR Summit 2017
Networking and Go: An Epic Journey
Linkers And Loaders
Protecting the Privacy of the Network – Using P4 to Prototype and Extend Netw...
How a BEAM runner executes a pipeline. Apache BEAM Summit London 2018
Socket Programming using Java
Compilation
High Availability on pfSense 2.4 - pfSense Hangout March 2017
P4-based VNF and Micro-VNF Chaining for Servers With Intelligent Server Adapters
High Availability Part 2 - pfSense Hangout July 2016
Transparent eBPF Offload: Playing Nice with the Linux Kernel
Troubleshoot tcp
Ad

Similar to P4 foundation (20)

PPTX
Data Engineer's Lunch #44: Prefect
PPTX
A slide share pig in CCS334 for big data analytics
PPTX
S_MapReduce_Types_Formats_Features_07.pptx
PDF
Apache airflow
PDF
STUDY ON EMERGING APPLICATIONS ON DATA PLANE AND OPTIMIZATION POSSIBILITIES
PDF
STUDY ON EMERGING APPLICATIONS ON DATA PLANE AND OPTIMIZATION POSSIBILITIES
PDF
STUDY ON EMERGING APPLICATIONS ON DATA PLANE AND OPTIMIZATION POSSIBILITIES
PPT
REGISTER TRANSFER AND MICROOPERATIONS
PDF
OpenERP - Pentaho Integration, WillowIT
PDF
Exploratory Data Analysis in Spark
PPTX
chapter 1 -Basic Structure of Computers.pptx
PDF
Function Mesh for Apache Pulsar, the Way for Simple Streaming Solutions
PPTX
Apache Crunch
PPTX
lect13_programmable_dp.pptx
ODP
newerahpc grid
PDF
Streamsets and spark at SF Hadoop User Group
PPTX
Computer_System_Architecture en PPT.pptx
PPTX
Computer_System_Architecture of JNTUH PPT.pptx
PPTX
Apache pig
PDF
Log forwarding at Scale
Data Engineer's Lunch #44: Prefect
A slide share pig in CCS334 for big data analytics
S_MapReduce_Types_Formats_Features_07.pptx
Apache airflow
STUDY ON EMERGING APPLICATIONS ON DATA PLANE AND OPTIMIZATION POSSIBILITIES
STUDY ON EMERGING APPLICATIONS ON DATA PLANE AND OPTIMIZATION POSSIBILITIES
STUDY ON EMERGING APPLICATIONS ON DATA PLANE AND OPTIMIZATION POSSIBILITIES
REGISTER TRANSFER AND MICROOPERATIONS
OpenERP - Pentaho Integration, WillowIT
Exploratory Data Analysis in Spark
chapter 1 -Basic Structure of Computers.pptx
Function Mesh for Apache Pulsar, the Way for Simple Streaming Solutions
Apache Crunch
lect13_programmable_dp.pptx
newerahpc grid
Streamsets and spark at SF Hadoop User Group
Computer_System_Architecture en PPT.pptx
Computer_System_Architecture of JNTUH PPT.pptx
Apache pig
Log forwarding at Scale
Ad

More from Rahul Hada (18)

PDF
P4 foundation
PDF
Socio-technical System
PDF
Software Engineering Introduction
PDF
Inheritance
PDF
Building Complex Topology using NS3
PDF
Building Topology in NS3
PDF
NS3 Overview
PDF
1 session installation
ODP
Introduction to Virtualization
PDF
Introduction of Cloud Computing
PDF
Fundamental of Shell Programming
PDF
Support formobility
PDF
Mobile transportlayer
PDF
Mobile Network Layer
PDF
WLAN - IEEE 802.11
PPT
Quality planning
PPT
PPT
P4 foundation
Socio-technical System
Software Engineering Introduction
Inheritance
Building Complex Topology using NS3
Building Topology in NS3
NS3 Overview
1 session installation
Introduction to Virtualization
Introduction of Cloud Computing
Fundamental of Shell Programming
Support formobility
Mobile transportlayer
Mobile Network Layer
WLAN - IEEE 802.11
Quality planning

Recently uploaded (20)

PPTX
Modernising the Digital Integration Hub
PDF
CloudStack 4.21: First Look Webinar slides
PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
Enhancing plagiarism detection using data pre-processing and machine learning...
PDF
Credit Without Borders: AI and Financial Inclusion in Bangladesh
PPTX
Custom Battery Pack Design Considerations for Performance and Safety
PPTX
TEXTILE technology diploma scope and career opportunities
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
PDF
A proposed approach for plagiarism detection in Myanmar Unicode text
PPTX
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
STKI Israel Market Study 2025 version august
PPTX
Benefits of Physical activity for teenagers.pptx
PDF
Consumable AI The What, Why & How for Small Teams.pdf
PPTX
Configure Apache Mutual Authentication
PDF
Zenith AI: Advanced Artificial Intelligence
PPTX
Chapter 5: Probability Theory and Statistics
PPTX
Build Your First AI Agent with UiPath.pptx
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Modernising the Digital Integration Hub
CloudStack 4.21: First Look Webinar slides
Module 1.ppt Iot fundamentals and Architecture
Enhancing plagiarism detection using data pre-processing and machine learning...
Credit Without Borders: AI and Financial Inclusion in Bangladesh
Custom Battery Pack Design Considerations for Performance and Safety
TEXTILE technology diploma scope and career opportunities
1 - Historical Antecedents, Social Consideration.pdf
MicrosoftCybserSecurityReferenceArchitecture-April-2025.pptx
A proposed approach for plagiarism detection in Myanmar Unicode text
GROUP4NURSINGINFORMATICSREPORT-2 PRESENTATION
Taming the Chaos: How to Turn Unstructured Data into Decisions
STKI Israel Market Study 2025 version august
Benefits of Physical activity for teenagers.pptx
Consumable AI The What, Why & How for Small Teams.pdf
Configure Apache Mutual Authentication
Zenith AI: Advanced Artificial Intelligence
Chapter 5: Probability Theory and Statistics
Build Your First AI Agent with UiPath.pptx
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor

P4 foundation